![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 56
谷咕咕
正经人谁喜欢写代码
展开
-
JVM:执行引擎
当java虚拟机启动时会根据预定义的规范对字节码采用逐行解释的方式执行,将每条字节码文件中的内容翻译为对应平台的本地机器指令执行。解释器的执行速度比JIT编译器速度慢。随着时间的推移,即时编译器发挥作用,根据热点探测功能,将有价值的字节码编译为本地机器指令,以换取更高的程序执行效率。方法被调用会判断是否已编译,如果是就执行编译后的代码,否则就方法调用计算器+1,然后判断是否超过阈值,没有就解释器执行,超过了就jit编译器后台执行。jvm的执行引擎输入输出是一致的:输入二进制字节码,输出的执行结果。原创 2022-08-25 09:55:36 · 316 阅读 · 0 评论 -
JVM:直接内存
JVM:直接内存原创 2022-08-23 11:09:40 · 148 阅读 · 0 评论 -
JVM:对象的实例化、内存布局与访问定位
JVM:对象的实例化、内存布局与访问定位原创 2022-08-23 10:50:20 · 84 阅读 · 0 评论 -
JVM:运行时数据区-方法区
方法区类似于常规语言的编译代码的存储区或类似于操作系统进程中的“文本”段。它存储每个类的结构,例如运行时常量池、字段和方法数据,以及方法和构造函数的代码,包括在类和实例初始化和接口初始化中使用的特殊方法,方法区是在虚拟机启动时创建的。内存溢出:**溢出就是就是对象必须活着,但是空间不够,**调大对空间大小,或者优化代码,减少作用域,能定义在方法内的不要定义为全局的。2加载该类的类加载器已经被回收,这个条件除非是经过精心设计的可替换类加载器的场景,如OSGi、JSP的重加载等,否则通常是很难达成的。原创 2022-08-22 15:24:44 · 266 阅读 · 0 评论 -
JVM:运行时数据区-堆
一个jvm实例对应一个进程对应多个线程,因此对空间是线程共享的。jvm启动就创建,也是jva虚拟机可管理的最大内存空间。单也有划分私有空间。堆在物理上可不连续,但是逻辑上连续所有的对象和数组运行时分配在堆上,是GC的重点。栈中的局部变量表,存放对象的引用,指向堆,栈出手,堆中的对象并不会马上消失,而是在GC的时候回收。默认新生代1,老年代2HotSpot中,Eden空间和另外两个Survivor空间的缺省所占的比例是8:1:1。原创 2022-08-20 16:28:51 · 148 阅读 · 0 评论 -
JVM:JDK中jvisualvm.exe中没有VisualGc界面
JVM:JDK中jvisualvm.exe中没有VisualGc界面原创 2022-08-19 10:41:18 · 666 阅读 · 0 评论 -
JVM:本地方法栈
JVM:本地方法栈原创 2022-08-16 19:10:22 · 286 阅读 · 0 评论 -
JVM:本地方法接口
sun`java,sun的解释器就是用c实现的,thread中的setPriority0是用java实现的但是,他调用的本地方法,setPriority0使用本地方法实现的。为了效率,或者其他业务,与java外交互,例如操作系统或硬件之间交换信息是的情况。他为我提供了一个非常简单的接口,而且我们无需了解java以外的东西。本地方法接口由Native修饰,Native method就是一个java调用非java方法,初衷是融合c和c++ 程序。例如:Object.getClass();...原创 2022-08-15 21:55:38 · 275 阅读 · 0 评论 -
JVM :运行时数据区-虚拟机栈
优点:跨平台,指令集小,编译器容易实现缺点:性能下降实现同样的工能需要更多的指令集栈是运行时的单位,而堆是存储的单元每个线程在创建是辉创建一个虚拟机栈,其内部保存的一个个栈帧队里着一次次的java方法的调用。生命周期:与线程一致。主管java程序的运行,他保持方法的局部变量,部分结果,并参与方法的调用和返回。快,仅次于pc寄存器,无gc,可能oom。只能进出栈两个操作。栈的异常stackoverflowerror 死循环线程请求分配栈容量超过java虚拟机栈的最大容量。...原创 2022-08-09 21:49:16 · 275 阅读 · 0 评论 -
JVM:运行时数据区-PC寄存器(程序计数器)
每一个线程都有一个pc寄存器,pc寄存器会存储当前线程正在执行的java方法的jvm的指令地址如果是本地方法就是undefined(本地方法指c或c++的代码)。用来存储指向一下条指令的地址,即将要执行的指令代码,由执行引擎读取下一条指令。3.javap反编译id后的代码,左边的就是指令地址,右边的即为指令代码,JVM的pc寄存器也叫程序计数器,是对物理pc寄存器的一种抽象虚拟。,执行引擎去pc寄存器中读取存储指令地址对应的指令代码。为什么使用pc寄存器记录当前线程的执行地址呢?栈和pc寄存器无gc。...原创 2022-07-31 21:11:45 · 1049 阅读 · 0 评论 -
jvm:类加载子系统干什么的?由什么组成?需要记住哪些八股文?
jvm:类加载子系统干什么的?由什么组成?需要记住哪些八股文?原创 2022-07-25 19:08:38 · 174 阅读 · 0 评论