1) Class loader: Class loader is used to load class files.
2) Class (Method) Area: Class (Method) Area stores per-class structures such as the runtime constant pool, field and method data, the code for methods.
3) Stack: In stack memory area all local variables stores and each thread has private JVM stack and it created at the same time as thread.
4) Heap: It is the runtime data area in which objects are allocated.
These are the main memory area.