java的内存到底分为几个区?有的说就是栈和堆,有的说还有代码段、常量区等? 如题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 逻辑上分为 java堆、java栈、方法区、程序计数器、本地方法栈五个部分 一、 java内存结构 1. Heap(堆):实例分配的地方,通过-Xms与-Xmx来设置 2. MethodArea(方法区域):类的信息及静态变量。 对应是Permanet Generation, 通过-XX:PermSize来设置 3. JavaStack(java的栈):虚拟机只会直接对Javastack执行两种操作:以帧为单位的压栈或出栈。通过-Xss来设置, 若不够会抛出StackOverflowError 4. ProgramCounter(程序计数器):每一个线程都有它自己的PC寄存器,也是该线程启动时创建的。PC寄存器的内容总是指向下一条将被执行指令的饿地址,这里的地址可以是一个本地指针,也可以是在方法区中相对应于该方法起始指令的偏移量。 5. Nativemethodstack(本地方法栈):保存native方法进入区域的地址 到这个页面:http://download.oracle.com/javase/cmn/spec_index.html下载Java Virtual Machine Specification翻到第二章,就明白了这可是最权威的资料 Method Area、pc Register、Native Method Stacks、Runtime Constant Pool这些都是属于栈的吗?那英文文档看得很吃力,哎。。 被thinking in java搞乱了。 Java Stack才是栈,其他都不是 1. Heap(堆):新生代,旧生代,还有持久代2. MethodArea(方法区域):类的信息及静态变量。 3. JavaStack(java的栈):一般局部变量,和内联的时候的对象会放在这里 JFrame窗口通过jni调用vc++代码,为什么不能直接调用呢? 马上结贴,ArrayList如何移除所有元素 有人面试过中华网吗 java中的content-type是什么 请教关于UDP SOCKET丢包的问题 java 如何取的硬盘的序列号,不需要取的网卡的序列号 java拆串问题 有没有将.class文件转化成特定平台下的可执行文件(比如,.exe) 请问java中有类似vc的atof和atoi的语句吗? JAVA程序怎样快速访问oracle数据库的一张大表 引入包的时候,import java.sql.*和分别引入有区别么? java.net.SocketException: No buffer space available (maximum connections reached?): connect
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货