not exabyte-size... it can cause problems with >4GB data :)

didn't know about the allocation algorithm. It would be good to add a comments to avoid some error in the future. 

in JDK6, it is only available ```Long.compareTo(Long)```. I think the inline would work better.