¿Cambiar el tamaño de almacenamiento dinámico jvm usando -Xmx1g hace uso de 1 gb de RAM o 1 gb de disco duro?

-Xmx y los otros parámetros de memoria se refieren a la memoria virtual del sistema operativo, por lo que idealmente debería ser RAM, aunque el sistema operativo puede optar por usar el intercambio si esto no es suficiente. Por lo tanto, el tamaño debe ser lo suficientemente grande como para acomodar su aplicación, pero lo suficientemente pequeño para la memoria física. El intercambio ralentizará enormemente su programa.

El tamaño depende de la aplicación: dependiendo de lo que esté sucediendo, el programa puede elegir llenar toda la memoria disponible en un caché y luego usar referencias suaves y débiles para adaptarse. O puede haber otros parámetros ajustables.

Para programas de ese tamaño, puede haber alguna carga dinámica de clase o incluso generación en curso. Aquí es donde entra PermGen (o Metaspace en Java 8, aunque todavía no lo he usado).
Java 8: de PermGen a Metaspace

Dependiendo de su JVM, es posible que necesite activar punteros comprimidos:
Mejoras de rendimiento de la máquina virtual Java ™ HotSpot