JVM内存模型
通俗的讲JVM就是一个虚拟机。编译和运行文件的一种软件。
栈:线程私有的,创建线程虚拟机会分配默认的空间。
堆:对象存放的空间。
本地方法栈:native method。
程序计数器:线程嵌套调用方法会存放数据,这时栈帧数据是以队栈的方式存储(FILO)。
元空间:1.8后静态成员存放位置,1.8之前是永久代。
JVM分哪些部分(个人认为分五部分)
类加载器
类加载器就是把类文件加载到虚拟机中,也就是说通过一个类的全限定名来获取描述该类的二进制字节流。
内存管理
规定了线程和内存之间的一些关系。
垃圾回收算法
程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了。
垃圾收集器
对识别出的垃圾对象进行清理。
JVM调优
什么叫调优?就是根据现有的业务场景,选择合适的垃圾收集器,配置一套最优的参数。