JVM in a nut shell

从项目可靠性和人力资源方面考虑,PM决定用Java构建next generation system. 所以现在,让我们开始JAVA之旅。
JVM的内存里面,大概可以分为方法区和堆、栈:
方法区里面存放由ClassLoader加载进来的对象"模板"(对象方法、静态数据、对象协同数据……)
Java运行时的对象都是创建在堆里的
栈和C++的栈的概念差多,栈帧是指一个子程序(方法)的栈框架,由于是JVM上的栈,所以栈不必是一个连续的内存、由于是JVM,字节码
是不直接和CPU 寄存器打交道的(也就是字节码中没有操作CPU 寄存器的指令)、而且栈中的数据都是以字长(如32bit)为单位,byte等都会
以一个int的空间来压入栈中,long和double总是有64bit(两字长),一样压入栈中。 int 等不是对象,而是基本数据类型,所以可以直接
入栈,否则像其它对象就要先在堆中创建,然后再压入引用了。和C++中一样,每个线程都有自已单独的栈空间。

你可能感兴趣的:(JVM in a nut shell)