
Java虚拟机
AE86上山啦
这个作者很懒,什么都没留下…
展开
-
Java中对类进行初始化(主动引用,被动引用)
一个类的整个生命周期包括:加载,验证,准备,解析,初始化,使用,卸载 这里主要介绍一下必须对类进行“初始化”的5种情况 1、遇到new,getstatic,putstatic,invokestatic这四条字节码指令时; 2、对类进行反射调用时,如果类没有进行过初始化,则需先触发其初始化; 3、当初始化一个类时,其父类还没初始化,则需先触发其父类初始化;(PS:当一个接口在初始化时,并不要...原创 2019-03-29 22:43:27 · 826 阅读 · 0 评论 -
Java类加载的过程
Java虚拟机中类加载的过程包括加载、验证、准备、解析和初始化这五个阶段 一、加载 此阶段虚拟机完成3件事情: 通过一个类的全限定名来获取定义此类的二进制字节流。 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。 其中,获取二进制字节流不一定是从Class文件中获取,例如...原创 2019-03-30 12:58:15 · 191 阅读 · 0 评论 -
双亲委派模型
从 Java 虚拟机的角度来讲,只存在以下两种不同的类加载器: 启动类加载器(Bootstrap ClassLoader),使用 C++ 实现,是虚拟机自身的一部分; 所有其它类的加载器,使用 Java 实现,独立于虚拟机,继承自抽象类 java.lang.ClassLoader 从Java开发人员的角度来看,可分为以下三种类加载器; 启动类加载器(Bootstrap ClassLoader...原创 2019-03-30 19:56:52 · 186 阅读 · 0 评论 -
类加载器
“加载”是“类加载”过程中的一个阶段,加载过程完成以下三件事情: 通过一个类的全限定名来获取定义此类的二进制字节流。 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。 其中,“通过一个类的全限定名来获取定义此类的二进制字节流”这个动作是在虚拟机外部实现的,以便让程序自己决定如...原创 2019-08-15 16:40:52 · 280 阅读 · 0 评论