jvm学习
m努力努力再努力
就这样一直努力下去吧~
展开
-
【深入理解JAVA虚拟机学习笔记一】JAVA虚拟机运行时的数据区
程序计数器(Program Counter Register) 在虚拟机的概念模型中,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理等基础功能都需要依赖这个计数器完成。 如果线程正在执行一个Java方法,这个计数器记录的时正在执行的虚拟机字节码指令的地址; 如果正在执行的时Native方法,这个计数器值为空(Undefined) 此内存区...原创 2019-06-05 19:56:26 · 192 阅读 · 0 评论 -
【深入理解JAVA虚拟机学习笔记二】栈,堆,方法区三者关系
在我们访问一个对象时,JAVA虚拟机内部是通过栈上的reference数据来操作堆上的具体对象,同时方法区又存储着这个对象的类型数据即对象所属的类的信息。我们可以通过调用关系来了解堆、栈、方法区三者。 JAVA虚拟机规范中只规定了一个指向对象的引用,并没有定义这个引用应该通过哪种方式去定位、去找到对象所在堆中的具体位置,所以对象的方法方法是取决于虚拟机实现而定的。 现在主流的方法方式有两种:使用句...原创 2019-06-06 19:13:24 · 470 阅读 · 1 评论 -
【深入理解JAVA虚拟机学习笔记三】栈溢出,堆溢出,直接内存溢出,内存泄漏,以及异常信息
由于在Hotspot虚拟机中中不区分虚拟机栈和本地方法栈,因此通过-Xoss修改参数是无效的,可以通过修改-Xss设定。 如果线程请求的栈深度大于虚拟机允许的最大深度,将抛出StackOverflowError异常。 如果虚拟机在扩展栈时无法申请到足够的内存空间,将抛出OutOfMemoryError异常。 这两种异常有一些重叠的部分:当栈空间无法继续分配时,到底是内存太小,还是已经使用的栈空间过...原创 2019-06-07 11:59:08 · 1131 阅读 · 0 评论