欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java虚拟机深入理解

程序员文章站 2022-07-14 21:06:53
...
   周志朋老师写的“深入理解Java虚拟机”中的第二章,是很重要的一章,个人认为,作为一个java程序员一定要将Java最经典最有价值的“Java虚拟机”搞懂,就算是搞不全懂,也要能说出个中原理,这才不愧为一名java程序员。
   很多人说Java开始落后了,Java不行了,转行吧,但无论怎样,我还是觉得这十几年的巅峰宝座不是空谈而来的,他曾经带给人们的价值远远大于如今的过错,即使是和没落的贵族相处几年,收获也会颇为丰盛。所以不要一窝蜂的去追主流语言,搞会当下的一样,还愁搞不定其他语言吗?他们都属于同一个科种的。。。
    表达了一下想法,就及时stop,还是回过头来学习Java虚拟机。
    反复读了2.2.2java虚拟机栈,大概明白其中含义。总结为以下几点:
    1、Java虚拟机栈和程序计数器一样,是每个线程对应一个,也就是说,如果启动了n个线程,那么就有n个程序计数器及n个java虚拟机栈,栈的生命周期与线程是相同的。
    2、每个方法执行时都会创建自己对应的一个栈帧,虚拟机就会把这个栈帧压入到这个方法对应的线程的Java虚拟机栈中。但方法执行完成时再将该栈帧弹出对应的java虚拟机栈中。
    3、任何线程都不能访问另一个线程的程序计数器(PC寄存器)和java虚拟机栈
    4、栈帧中存储着:局部变量表(包括:基本数据类型、对象引用、returnAddreess类型)、操作数栈、动态链接、方法出口等。
    Java虚拟机栈与线程是一对一的关系,方法与栈帧是一对一的关系,线程与方法是一对多的关系,所以线程与栈帧是一对多的关系,所以java虚拟机与栈帧是一对多的关系。oh,我懂。
    局部变量表的内存空间在编译期间就是可知的,方法运行期间是不可被改变的。

   
相关标签: Java虚拟机