jvm基础知识(一)

此篇博客只是本人学习的笔记,如有不足之处还望指出。

情景介绍

java文件的运行需要通过编译生成class文件,再交由jvm(Java virtual machine)运行产生机器代码。期间由java文件->class文件->对应的机器代码。java可以被认为一次编译,处处运行。只要有class文件就可以在有jvm的地方运行。jvm在粗略上是由类加载器、方法执行引擎、运行时内存组成的。总的来说jvm就是一个运行在本地机器的代码,是由c语言编写的。

第一部分 jvm内存模型

1.总体

jvm内存可划分为堆、Java虚拟机栈、方法区、pc寄存器、本地方法栈。其中堆、方法区是线程共享的,java虚拟机栈、PC寄存器、本地方法栈是线程私有的

2.堆

堆是jvm存放对象实例的内存空间,也是垃圾收集的主要地方(方法区并不是GC的主要地方),现代的Hotstop虚拟机使用的是分代回收,将堆划分为年轻代、老年代(GC的作用范围不只在这两个还要包括方法区)。

一.垃圾回收算法

较为流行的垃圾收集器cms,G1等(还有一个新的垃圾收集器ZGC在java10,11中引入),基本上都是使用以下三种算法实现,标记清除算法、复制算法、标记整理算法,引用计数法。

posted @ 2019-12-08 20:25  废废材  阅读(141)  评论(0)    收藏  举报