JVM知识点总结

简介: JVM知识点总结

1.JVM是什么?

jvm就是java虚拟机

功能:它只识别字节码文件,能够将.class文件中的字节码指令进行识别并调用系统API,

运行环境:它是可运行在操作系统之上的,它与硬件没有直接的交互,

包括:一套字节码指令集,一组寄存器,栈,堆,方法区,垃圾回收(GC),本地方法栈

2.jvm运作在java类的那个过程?

运行过程:java源文件-----编译器----字节码文件(.class文件)—jvm(解释器)-----编译成特定机器上的机器码

科普类加载器(ClassLoader):本身也是一个类,其实质是把类文件从硬盘中读取到内存中。

类加载分为:隐式加载:通过new创建,显示加载:通过Class.formName (多用于反射)

类加载器有哪些:启动类加载器、扩展类加载器、应用程序类加载器、自定义类加载器(通过继承ClassLoader类来实现)

3.JVM后台系统线程主要有?

虚拟机线程:线程等待jvm到达安全点操作出现

周期性任务线程:负责定时器时间

GC线程:垃圾回收

编译器线程:运行时动态编译字节码成本地品台相关机器码

信号分发线程:这个线程接受到jvm的信号并调用适当的jvm方法处理

科普

栈帧:是用来储存数据和部分过程结果的数据结构,同时也被用来处理动态链接

永久代:用于儲存被jvm加载的类信息,常量,静态变量

4.jvm对象创建流程

第一步:虚拟机遇到new指令先去检查是否在常量池中并去检查是否已被加载、解析、初始化(对静态变量和静态方法进行初始化)

第二步:是否被加载过,未被加载则加载类(类加载器ClassLoader)

第三步:类加载检查后(class文件的正确性),内存分配

第四步:确定内存分配大小,在堆中进行划分

第五步:内存大小划分两种情况: 1.指针碰撞(通过挪·动指针划分空间)-----2.列表划分(在表格中找到空间划分)、

第六步:空间申请完成之后,jvm将内存空间都初始为0

第七步:jvm对对象进行必要设置(对象哈希值、GC年代)

第八步:jvm创建对象结束,java程序执行init开始

5.GC垃圾回收

5.1GC作用:因为编程人员会忘记内存回收或错误的内存回收导致程序不稳定甚至崩溃,GC可以做到将不合法的内存自动回收实现清理内存的目的

5.2如何确定为垃圾:引用计数法、可达性分析

5.3常见的垃圾回收算法:分代复制垃圾回收、标记-清除垃圾回收、标记-整理垃圾回收

5.4finalize()方法一般用于GC中对象清理,内存充足不清理,主要用途:回收特殊内存(JNI (java Native interface))

5.9科普

内存泄漏:所谓的内存泄露就是指一个不在被程序使用的对象一直占据在内存中。java中也可能存在内存泄漏(长生命周期引用短生命周期,例:缓存系统 )

深拷贝和浅拷贝:简单说就是复制、克隆, 区别:是否开辟新空间

双亲委派模式:是当一个类加载器请求时,不会自己类加载,会委派父类去加载,如果父类处理不了会反馈给子类

目录
相关文章
|
8月前
|
存储 算法 安全
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
110 0
|
5月前
|
存储 缓存 算法
JVM核心知识点整理(内存模型),收藏再看!
JVM核心知识点整理(内存模型),收藏再看!
JVM核心知识点整理(内存模型),收藏再看!
|
存储 算法 Java
Java虚拟机相关知识点1
Java虚拟机相关知识点
|
存储 缓存 监控
JVM关键知识点整理,从入门到提高到实践
Java 虚拟机定义了各种在程序执行期间使用的运行时数据区域。这些数据区域有一些是在Java虚拟机启动时创建的,并在Java虚拟机退出时销毁,有一些数据区域是每个线程独有的,在线程创建时创建,在线程销毁时销毁,根据《Java虚拟机规范》的规定,Java虚拟机运行时所需要管理的数据区域主要如下图所示:
364 0
JVM关键知识点整理,从入门到提高到实践
|
存储 缓存 算法
Java虚拟机相关知识点2
Java虚拟机相关知识点
|
存储 缓存 架构师
京东架构师呕心整理:jvm与性能调优有哪些核心技术知识点
相信很多人对于性能调优都不陌生,为了获得更好的系统性能,或者是为了满足不断增加的业务需求。都需要用到我们的性能调优。所以性能优化在面试中出现的频率特别高,这篇文章我主要给大家整理了大厂里面关于jvm和性能调优用到的一些核心技术知识点。
126 0
|
算法 Java 程序员
阿里P8大牛精心整理JVM性能优化知识点+最新JVM面试题(附答案)
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。它不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。
|
存储 缓存 Java
JVM内存结构详细总结(结合自身使用经历介绍各个知识点使用场景)
如图JVM运行时数据区域划分为以下6个主要部分:①程序计数器,②虚拟机栈,③本地方法栈,④虚拟机堆,⑤方法区,⑥直接内存,下面对6个部分详细总结,希望可以对路过的朋友有所帮助。
140 0
JVM内存结构详细总结(结合自身使用经历介绍各个知识点使用场景)
|
存储 算法 Java
【Java】总结一下JVM知识点
总结一下JVM知识点
118 0
【Java】总结一下JVM知识点