The MEJ32 JVM code is size is less than 30KB and requires ~1.5KB of RAM. This excludes Java libraries (they are dependent on your application) and threads stack/heap (also dependent of your application).
To get a better overview of the final application size, you can use our platform reference implementation and select which libraries you want to include.
For a mono sandbox platform when you generate the firmware:
You can check the device developer guide, look for memory map and elftomap to understand how to generate the .map memory map file:
For a application running on a multi sandbox VEE (firmware) your memory map will only contain the Java application, not the firmware.
3> In the multi sandbox demo firmware, the QSPI flash is used for resources (graphical, fonts…). It can of course be changed and decided in the platform source/configuration.
4> yes, in particular the display framebuffer are located in external RAM.