![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM虚拟机
文章平均质量分 75
皮先生k
这个作者很懒,什么都没留下…
展开
-
Java——JVM虚拟机(四)
JVM中有哪些常见的垃圾回收器?各自的特点是什么?Java发展至今,已经推出了好几代的垃圾回收器,包括Serial、ParNew、Parallel、CMS、G1以及Java11中最新的ZGC,每一代的GC都是堆上一代的改进和完善。新生代使用的垃圾回收器主要有:Serial串行收集器(1)单线程收集器,在单核CPU架构下,JDK3之前新生代的回收器的唯一选择。(2)它与应用线程的执行是串行的,也即是说,执行应用线程的时候,不会执行GC,执行GC的时候不会执行应用线程。(3)在CPU单核架构下原创 2021-10-23 13:43:19 · 74 阅读 · 0 评论 -
Java——JVM虚拟机(三)
对于堆内存,虚拟机如何进行分代管理?分代:JVM根据对象在内存中存活时间的长短,把堆内存分为新生代和老年代新生代:由Eden区+(S0+S1) Survivor区组成大部分情况下,对象优先分配到Eden区,如果对象实在太大,新生代整个都放不下的话,可直接放在老年代区当Eden区满时,JVM会触发一次Minor GC(回收速度快)Minor GC(1)当Eden满了之后,进行Minor GC,将需要保存的数据复制到S0中(2)当下一次Eden满了之后,进行Minor GC,将原来S0存原创 2021-10-23 12:08:31 · 99 阅读 · 0 评论 -
Java——JVM虚拟机(二)
1、JDK8后的虚拟机内存包含哪几个部分?做了哪些调整和改进?JDK8之前的架构堆堆是JVM内存管理的最大一块区域,主要目的是存放对象的实例所有新创建的对象实例和数组都会在堆上为其分配内存空间线程共享是垃圾收集器的主要管理区域,堆内存中可以存在物理上不连续的空间,只要逻辑上是连续的即可如果在堆中没有内存完成实例分配,将会抛出OutOfMemoryError栈Java栈也称为虚拟机栈,是线程私有的Java栈中存放的是一个个栈帧,没有栈帧对应一个被调用的方法,在栈帧中包括:·原创 2021-10-23 10:42:28 · 65 阅读 · 0 评论 -
Java——JVM虚拟机(一)
1、Java代码程序是如何运行起来的?jar包:将.class为后缀的Java程序代码打包为jar包,在服务器后台通过java -jar的命令运行程序;war包:将程序代码打包为war包,将其部署在例如Tomcat 的服务器上进行运行。(1)我们的Java程序是以.java为后缀的文件,会通过编译器将代码编译为.class后缀的字节码文件,以供JVM识别和运行;(2)Java的平台无关性,实现的基础就是虚拟机JVM和字节码存储格式。不同的操作系统可能对应不同版本的JVM,这些不同版本的JVM都可原创 2021-10-23 09:45:04 · 107 阅读 · 0 评论