is
zhou

jvm简介

GC算法简介

zhouchong阅读(24)评论(0)

概述 在开始之前,需要明确的一点是,这里谈到的垃圾回收算法针对的是JVM的堆内存,栈基本上不存在垃圾回收方面的困扰。 标记-清除算法(Mark-Sweep) 最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如同它的名字一样,算...

多态性实现机制——静态分派与动态分派

zhouchong阅读(25)评论(0)

方法解析 Class 文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在 Class 文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给 Java 带来了更强大的动态扩展能力,使得可以在类运行期间才...

GC简介

zhouchong阅读(28)评论(0)

关于GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战...

类的加载

zhouchong阅读(32)评论(0)

类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,...

类初始化

zhouchong阅读(29)评论(0)

类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的 Java 程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化: 遇到 new、getstatic、putstatic、invokestatic 这四条...

JVM内存管理——杂谈(借此也论一论obj=null)

zhouchong阅读(24)评论(0)

各位园友好,LZ是从某网站转战过来的博主,看到这里很多博主都称看友们为园友,LZ斗胆模仿一下,不过以前,LZ其实都是称看友们为猿友的。之前LZ在某网站已经写了一系列文章,已经全部复制到了园内的新博客,主要是设计模式的内容,各位有兴趣的也可以...

两个对象相互引用会不会被GC?

zhouchong阅读(28)评论(0)

两个对象相互引用会不会被GC?   两个对象相互引用,与会不会被GC没有直接关系。判断某个对象是否被GC采用的是GC Roots可达性来决定是否会被GC回收。 如果其他所有对象都没有引用这两个对象,即时这两个对象相互引用,也会被G...

java是如何实现跨平台的

zhouchong阅读(27)评论(0)

Java要想实现Write Once and Run Anywhere(WORA)的根本原因是jvm的存在。 Java虚拟机(Java Virtual Machine,简称 JVM)。JVM也是一个软件,不同的平台有不同的版本。 我们编写的...

javac 编译与 JIT 编译

zhouchong阅读(27)评论(0)

编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行: 其中绿色的模块可以选择性实现。很容易看出,上图中间的那条分支是解释执行的过程(即一条字节...

java 中类的加载顺序

zhouchong阅读(26)评论(0)

1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化 2、只有在调用new方法时才会创建类的实例 3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本...