FLAC files are essentially doing the same thing ZIP files are doing. Try putting a WAV file into a ZIP file and you'll see that the file size will decrease substantially. Now unzip that file and you'll get your original WAV file back, exactly the same, bit for bit. FLAC does the same thing, except the compression algorithms are geared specifically for audio data so that better compression ratios are achieved (smaller file sizes). The compression algorithms essentially rearranges data so that it is more compact; nothing is discarded (hence the term 'lossless').
MP3 goes a step further, not only rearranging data, but actually discarded some of that data, data which then cannot be retrieved (hence the term 'lossy'). Put simply, if two sounds are very close to each other in terms of pitch and amplitude, humans cannot easily distinguish those two sounds and you will perceive them as one sound. The compression algorithms take this behaviour into account and identifies parts of the sound which it thinks you will not hear (because they are too 'close' sounding) and then combines them into one sound, hence requiring less data. The lower the bitrate, the more aggressive the algorithm is at deciding which sounds it thinks you will not hear. Of course, the actual mathematics behind all this is tremendously complex, but you get the basic idea and hopefully some appreciation as to just how amazing the technology is behind those 'crappy' mp3 files.
So what does this all mean to you? All other things being equal (source material, DAC, amp, cabling, software, etc), an
MP3 at 320k, should be indistinguishable from the source audio. I can tell apart
192k MP3 file from the source audio, if I look for specific parts in specific songs and
128k MP3 files I can readily tell apart. That said, this is under blind testing conditions (I don't know what file I'm listening to beforehand), using a decent sound card and headphones and 'analysing' the music rather than listening to it.