
JVM
闫二白
单身汪一枚
展开
-
JVM-初识java虚拟机(一)-- jvm内存模型及对象管理
引言:什么是jvmJvm是一个虚拟机,是运行字节码(class)文件的机器(只要是字节码就可以,并不一定是java)1.Jvm内存模型引言:Java内存模型(JavaMemory Model ,JMM)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。(jmm是jvm的一种规范,定义了jvm的内存模型...原创 2019-08-03 12:12:37 · 246 阅读 · 0 评论 -
JVM-初识java虚拟机(二)---垃圾回收机制详解
对象如何回收?4.1对象是否已经死亡4.1.1引用计数法基本概念:此对象有一个引用,则+1;删除一个引用,则-1。只用收集计数为0的对象。优点:效率高缺点:很难解决对象之间的重复引用问题(虽然两个对象不可能再被访问,但是他们之间相互引用)4.1.2 GC-Root可达性分析算法(Java虚拟机采用该方式判断)引言:可作为GC-Roots的对象栈帧中的本地变量表中引用的对象...原创 2019-08-03 19:26:12 · 392 阅读 · 0 评论 -
JVM-初识java虚拟机(三)---- 类加载机制
类加载机制5.1 什么是类的加载JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在堆(并不一定在堆中,HotSpot在方法区中)中生成一个代表这个类的java.lang.Class 对象,作为方法区类数据的访问入口。5.2 类的生命周期JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。其中加载、检...原创 2019-08-03 20:43:00 · 187 阅读 · 0 评论 -
JVM-初识java虚拟机(五)---Class类文件的结构及JVM指令手册
Class类文件Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,中间没有任何分隔符。Class文件的结构只有两种数据类型:无符号数和表。无符号数以u1、u2、u4和u8来代表1个字节、两个字节、四个字节和八个字节的无符号数,可以用来描述数字、索引引用、数值量或者按UTF-8编码的字符串值。表是有多个无符号数或者其他表作为数据项构成的复合数...原创 2019-08-04 01:03:57 · 195 阅读 · 0 评论 -
JVM-初识java虚拟机(四)---- 线程上下文类加载器
线程上下文类加载器(ThreadContextClassLoader)引言:SPI机制简介SPI的全名为Service Provider Interface,主要是应用于厂商自定义组件或插件中。在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下java SPI机制的思想:我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块、xml解析模块、jd...原创 2019-08-04 22:38:50 · 215 阅读 · 0 评论 -
JVM-finalize()的简单介绍
引言:我们知道Java是自动回收对象的,而C、C++需要手动回收对象(析构函数),但是Java的垃圾回收机制并不是万能的,垃圾回收只能回收内存,而且只能回收内存中由Java创建对象方式(堆)创建的对象所占用的内存,无法回收其它资源,比如文件操作的句柄、数据库的连接、本地对象(通过JNI创建的对象)等,为了解决这个问题Java为我们提供了finalize这个方法来完成“非内存资源”的清理工作。f...原创 2019-08-16 23:16:16 · 469 阅读 · 0 评论