¿Cual es la memoria por defecto en Java?

Para comprobar la memoria por defecto en java en cualquier equipo, podemos utilizar el siguiente comando

root@casa:~# java -XX:+PrintFlagsFinal 2>&1 | egrep 'MaxPermSize|MaxHeapSize' |awk '{megas=$4/1024/1024; parametros=$2; print parametros " - "megas "MB"}'
MaxHeapSize - 376MB
MaxPermSize - 82MB

La asignación de memoria por defecto en java es de 1/4 de la memoria disponible (MaxHeapSize). De esta forma, podemos ver como en un equipo con 768MB de RAM obtenemos un valor de 186MB

root@casa:~# java -XX:+PrintFlagsFinal -version 2>&1 | grep MaxHeapSize 
uintx MaxHeapSize := 195035136 {product}

Y en el mismo equipo tras ampliarle la memoria a 1.5GB de RAM, vemos lo siguiente

root@casa:~# java -XX:+PrintFlagsFinal -version 2>&1 | grep MaxHeapSize 
uintx MaxHeapSize := 394264576 {product}

Así pues, como regla general, la cantidad de memoria por defecto en java es de 1/4 de la RAM disponible en el equipo en el momento de lanzar el proceso. En versiones antiguas de java, la cantidad de memoria por defecto en java estaba limitada por 1/4 de la RAM o 1 GB, lo que fuese menor. A partir de memorias modernas, este comportamiento ha sido modificado y si tienes una versión de java 6 o superior deberías utilizar la regla del 1/4 como el valor por defecto en tu equipo.