Note that the resolution of currentTimeMillis() is not very good on all operating systems - on some systems the timer goes in steps of 50 ms, which is too long to time quick running methods.
Also note that the JVM does a lot of sophisticated optimizations and that makes timing your code this way very hard. The JVM will most likely throw away the empty loop in your method completely, because it's smart enough to understand that the loop has no effect at all. You then think you are timing the loop, while in reality the loop isn't even run at all.
If you really want to measure the performance of your code, use profiling software instead of trying to do it with a timer yourself. Note that the JDK includes a tool for this, JVisualVM.