As of J2SE 5.0, the default max heap is no longer 64M. For server class machines (as according to http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html ), which the 64-bit server would be, the VM would by default be the server VM and the heap boundaries would be (excerpted from http://java.sun.com/j2se/1.5.0/docs/guide/vm/gc-ergonomics.html ):
initial heap size: Larger of 1/64th of the machine's physical memory on the machine or some reasonable minimum.
maximum heap size: Smaller of 1/4th of the physical memory or 1GB.
So, it's not perfect, but it's a lot more reasonable than the pre-5.0 days.
I agree that it's better to just statically define the min and max to the same number -- I personally haven't seen it result in VM crashes, but I have seen noticable pauses due to allocating additional heap.