欢迎来到Zgxh的博客
编译与优化 编译与优化
1. 逃逸分析逃逸是指一个对象在某个方法中被创建后,会被其他方法或其他线程所引用。 方法逃逸:该对象被作为参数传递到其他方法中。 线程逃逸:该对象被关联到其他线程中可以访问到的实例变量中。 线程逃逸的逃逸程度比方法逃逸更高。 如果能证明
2020-11-07
Java 四种引用类型 Java 四种引用类型
四种引用类型1. 强引用强引用就是最普通的引用方式。 GC 时,只要堆中的对象实例存在强引用与之关联,则绝不会被垃圾回收。 Object o = new Object(); 方法中的局部变量的强引用会在方法退出栈帧后自动销毁引用。 对于类的
2020-10-22
垃圾回收机制 垃圾回收机制
Java 垃圾回收 GC 1. 方法区的垃圾回收方法区的垃圾回收主要针对:废弃的常量和不再使用的类型信息。 废弃的常量,比如常量池中的字面量,如字符串池中的某个字符串的值已经不与任何字符串对象相同。 回收类型信息又被称为类型卸载。回收条件
2020-09-26
Java 类加载机制 Java 类加载机制
Java 类加载机制总结类加载是把字节码 .class 文件加载到内存里,从而生成对应类的 Class 对象,同一个类只有一个 Class 对象。当该类需要被实例化的时候,即用 new 关键字来创建对象时,JVM 会去获取该 Class 对
2020-09-26
JVM 内存结构 JVM 内存结构
JVM内存区域划分JVM运行时数据区分为:堆、方法区、栈(虚拟机栈、本地方法栈)、程序计数器。 1. 程序计数器 Program Counter 线程私有,是当前线程的字节码行号指示器。 如果线程执行 Java 方法,指示字节码指令的地址
2020-09-26
字节码执行引擎 字节码执行引擎
JVM 字节码执行引擎JVM 作为字节码与操作系统之间的中间件,实现了 java 的跨平台性。 JVM 输入的是字节码文件,执行引擎(Execution Engine) 的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。简单
2020-09-26
堆中的对象内存分布 堆中的对象内存分布
Java 堆中的对象内存1. java中的对象指向问题public class HeapMemory { private Object obj1 = new Object(); public static void ma
2020-09-26
JVM 基础 JVM 基础
JVM 基础1. Java 程序的执行流程 java 程序首先经过编译器 javac 的编译,然后交给虚拟机 java。 字节码的运行过程: 通过类装载子系统来加载数据到运行时数据区 通过字节码执行引擎来执行代码
2020-09-26