If you have a 64-bit JVM, it will fully utilize the 64-bit hardware. There is no need to specify any options to do that.
The -server and -client options distinguish between two JVMs that behave slightly differently when it comes to compiling bytecode to native code, some slight differences in heap management, and a few other differences. But they both make use of the 64-bit hardware.
You do not need the -d64 option to run in 64-bit mode.
Thanks 4 the explaination
so from those 3 which is the best one in a memory intensive web app ? (outofmemeory heap error often happen in development and testing in 32bit with less than 10 concurrent users, and when in production mode it must be able to handle 100-300 concurrent users) on a x86_64 multi-processor server with 32 giga of fb RAM
First, there are several variations of out-of-memory errors and each one has a different solution. Exactly what error are you seeing?
If you are getting an "out of heap space" error with only 10 users, then you are either working with large data items (can happen is you load large XML documents) or you have a memory leak. If you have a memory leak then increasing the heap size will not help.
Having a large heap is not always a good thing - the larger the heap the longer it will take to do a full garbage collection.
You really need to analyze the heap usage of your program. Search for some of my posts in the performance tuning forums for suggestions. Also see my presentation at http://www.cecmg.de/doc/tagung_2007/agenda07/24-mai/2b3-peter-johnson/index.html