JVM
文章平均质量分 87
春暖花开QAQ
这个作者很懒,什么都没留下…
展开
-
类加载机制
1、JVM的主要组成部分及其作用(1)Class loader(类装载):根据给定的全限定名类名(java.lang.Object)来装载class文件到运行时数据区的方法区(2)Execution engine(执行引擎):执行classes中的指令(3)Native Interface(本地接口):与native libraries交互,是其它编程语言交互的接口。(4)Runtime data area(运行时数据区):JVM内存**作用:**首先通过编译期把java源码转化成字节码,类加载原创 2021-09-08 17:52:10 · 88 阅读 · 0 评论 -
垃圾回收器
垃圾回收器垃圾回收器分类1、按线程数分:可以分为串行垃圾回收器和并行垃圾回收器(1)串行回收是指在同一时间内只允许一个CPU进行垃圾回收操作,此时工作线程停止,直到垃圾回收操作结束。(适合单核cpu或者应用内存硬件较差的场合)(2)并行收集可以多个CPU同时进行垃圾回收,因此提升了应用的吞吐量,不过并行回收和串行回收一样,使用stw机制2、按工作模式分:可以分为并发式垃圾回收器和独占式垃圾回收器(1)并发式垃圾回收器与应用线程交替工作,以尽可能减少应用程序的停顿时间。(2)独占式垃圾回收器一旦原创 2021-07-26 19:24:17 · 81 阅读 · 0 评论 -
垃圾回收算法
1、主要发生位置(1)GC主要发生于堆和方法区(2)次数上讲,频繁young区,较少old区,基本不元空间2、垃圾回收相关算法判断对象是否存活,有两种方式:引用计数算法和可达性分析算法(1)引用计数算法:对每一个对象保存一个整形的程序计数器属性,用来记录对象被引用的情况。对于一个对象A,如果有一个对象引用了A,则A的引用计数器加1,引用失效就减1,如果引用计数器为0,就表示对象没有被引用。优点:实现简单,垃圾判定效果高,回收没有延迟性。缺点:增加存储空间开销,更新引用计数器增加了时间开销,无原创 2021-07-25 20:26:56 · 124 阅读 · 0 评论 -
JVM方法区
1、堆栈方法区的关系创建对象Person类(对象数据类型)放在方法区,对象实例数据放在堆中方法区可以看做是独立于java堆的内存空间2.2、 方法区的基本理解(1)方法区和堆一样,是各个线程共享的内存区域(2)方法区在JVM启动的时候就被创建,但实际物理地址和堆一样都是不连续的。(3)方法区的大小,和堆空间一样,可以固定大小和扩展。(4)方法区的大小决定了系统了可以保存多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同样会抛出内存溢出错误。java.lang.OutOfMemoryE原创 2021-07-21 10:48:12 · 232 阅读 · 0 评论 -
JVM对象实例化以及String
1、创建对象的方式(1)new(2)class的newinstance方法:反射的方式,只能调用空参构造器,权限必须是public(3)constructor的newinstance方法:反射的方式,可以调空参、带参的构造器,权限没有要求(4)使用clone():不调用任何构造器,要求当前的类实现cloneable接口,来实现clone()(5)使用反序列化:从文件、网络中获取一个对象的二进制流2、创建对象的过程(1)判断对象对应的类是否加载、连接、初始化(2)为对象分配内存,如果内存规整原创 2021-07-25 12:01:02 · 110 阅读 · 0 评论 -
JVM内存以及作用
1、JVM的主要组成部分及其作用(1)Class loader(类装载):根据给定的全限定名类名(java.lang.Object)来装载class文件到运行时数据区的方法区(2)Execution engine(执行引擎):执行classes中的指令(3)Native Interface(本地接口):与native libraries交互,是其它编程语言交互的接口。(4)Runtime data area(运行时数据区):JVM内存**作用:**首先通过编译期把java源码转化成字节码,类加载原创 2021-11-29 20:14:37 · 342 阅读 · 0 评论