Not that I know, this is just guessing:
There isn't really a way to properly dispose of objects (interpreted as "free the used memory") in Java. As I expect you know, you have to have no active references to them and then the gc will take care of it in it's next sweep. The absolute best you can do is dispose of all references and then ask the gc to collect, which is a bad idea unless you know exactly what you are doing (or so I'm told, far too scared to try it myself). So there is no way this method could actually dispose of the data.
What this method does do, is to give you a way of documenting in your code that this WaveData is done with and you shouldn't be using it any more. Which if you ask my opinion is quite useful. It's like marking a variable as private, it's only real purpose is to help the programmer out, it doesn't actually do anything in compiled code (OK reflection, that is kind of untrue but you get the picture).
Perhaps this method would be more effective if it assigned "null" to "data" as this would encourage Java to get rid of it and any attempt to use the WaveData instance after dispose() had been called would then fail. Potentially this is even more useful. Or maybe not, I leave it to smarter people to decide.