Buenas,
El proceso de java incluye no solo a tu programa, sino a toda la JVM sobre la que se está ejecutando tu código además de analizar, optimizar, precompilar y gestionar recolección de basura.
Por otro lado, la JVM crea los distintos espacios de memoria necesarios para la ejecución, entre los que destaca el Heap, que es donde se almacenan los objetos. Si juegas con los parámetros de arranque java, especialmente -Xms y -Xmx, seguramente podrás optimizar algo la memoria utilizada. Échale un vistazo a los comandos:
http://docs.oracle.com/javase/8/docs...dows/java.html
Otros lenguajes como por ejemplo Python consumen algo menos de memoria, aunque son muuucho más lentos que java:
http://benchmarksgame.alioth.debian....hon3&data=u32q
Si quieres consumir realmente poco y tener el máximo rendimiento, tendrás que producir código que sea ejecutable directamente por el procesador y prescindir de comodidades como la gestión automática de memoria, la introspección, etc. Programar en C o en C++ sería lo mejor en este caso.
Respecto a lo de crear el .exe, yo nunca le he visto ningún tipo de utilidad. Desde hace muchísimo tiempo, en Windows, si tienes instalado Java, basta con hacer doble clic sobre el jar para que se ejecute, igual que si fuera un exe. Por otro lado, crear un instalador en Java con su sqlite o similar embebida es igual de complicado o trivial que hacerlo para una aplicación nativa. ¿Cual es la diferencia?
http://nsis.sourceforge.net/Java_Lau...E_installation
Un saludo