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的栈):一般局部变量,和内联的时候的对象会放在这里 如果自己定义了一个异常类,那么传给这个类实参是什么呢?? 如果去掉字符串中的美元符号及大括号,用正则表达式 在网页上显示用户客户端的硬盘信息?? 求助,关于ant和jdk1.5 EJB处理数据库事务,多线程的疑问? 急求SQL问题与JAVA程序问题。。。。 如何用java编写一个程序把ip转化为域名? jdbc对数据库操作问题 Java的拷贝构造函数如何写? JTextArea输入字符时怎样捕获,想在按回车时捕获输入 引入包的时候,import java.sql.*和分别引入有区别么? java.net.SocketException: No buffer space available (maximum connections reached?): connect
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货