JVM学习(十一)--自定义类加载器深入详解

自定义类加载器深入详解前言本篇将通过一个实例来对自定义类加载器进行深入详解代码public class MyTest16 extends ClassLoader{ private String classLoaderName; private final String fileExtension = ".class"; public MyTe...

Java 2019-12-03 AM 2007次 0条

JVM学习(十)--ClassLoader源码解析与实例剖析

ClassLoader源码解析与实例剖析前言本节课讲述类加载器源码解析和用实例对源码进行剖析,下面文章转载自ClassLoader源码分析与实例剖析,希望可以给大家带来一些帮助文章public abstract class ClassLoader extends ObjectA class loader is an object that is responsible for loading...

Java 2019-12-01 AM 6377次 5条

JVM学习(九)--不同的类加载器作用与加载动作分析

不同的类加载器作用与加载动作分析前言本篇讲述JVM中不同的类的加载器作用与加载动作分析,内容讲的有点抽象,小编一时也不知道笔记该怎样整理,还好在网上搜到两篇写的很不错的文章,转载一下实例​ 类加载器的层次关系类加载器的父亲委托机制,也叫双亲委托机制,从上到下它们之间是包含关系,也就是系统类加载器中包含用户自定义类加载器代码这段程序打印出系统类加载器到最上...

Java 2019-11-30 PM 5276次 2条

JVM学习(八)--类加载器与类初始化深度剖析

类加载器与类初始化深度剖析前言本篇是关于JVM学习笔记的一些整理代码1class Parent{ static int a = 3; static{ System.out.println("Parent static block"); } } class Child extends Parent{ static int b ...

Java 2019-11-28 AM 7625次 6条

JVM学习(七)-- 初始化对于类与接口的异同深入解析

初始化对于类与接口的异同深入解析前言类的初始化时机当Java虚拟机初始化一个类时,要求它的所有父类都已经被初始化,但是这条规则不适用与接口。1.在初始化一个类时,并不会先初始化它所实现的接口。2.在初始化一个接口时,并不会先初始化它的父接口。因此,一个父接口并不会因为它的子接口或者实现类的初始化而初始化,只有当程序首次使用特定接口的静态变量时,才会导致该接口的初始化。接下来的文章中将举例说明...

Java 2019-11-17 PM 4113次 2条

JVM学习(六)--类加载器深入解析及重要特性剖析

类加载器深入解析及重要特性剖析前言今天对之前学习的JVM一些知识点进行一下总结,整理的有点乱,都是一些需要记忆的知识点,大家没事可以多看看。一、类的生命周期该图描述了整个类完整的生命周期:从磁盘上开始加载-->进入到内存当中-->销毁。<clinit>:表示对类的静态变量的初始化<init>:表示对实例变量的初始化上图包含类的执行过程:加载-->连接...

Java 2019-11-16 PM 3224次 1条

JVM学习(五)--类加载器准备阶段和初始化阶段的重要意义分析

类加载器准备阶段和初始化阶段的重要意义分析前言本篇将通过一个代码示例和对示例进行演变,来探讨一下类加载器准备阶段和初始化阶段的重要意义。代码1public class MyTest6 { public static void main(String[] args) { Singleton singleton = Singleton.getInstance(); ...

Java 2019-11-15 AM 4257次 2条

JVM学习(四)--编译期常量与运行期常量的区别以及数组创建本质分析

编译期常量与运行期常量的区别以及数组创建本质分析一、编译器常量与运行期常量的区别下面我们看一段代码public class MyTest2 { public static void main(String[] args) { System.out.println(MyParent2.str); } } class MyParent2{ public ...

Java 2019-11-14 AM 4285次 2条

JVM学习(三)--常量的本质含义

JVM学习(三)--常量的本质含义代码public class MyTest2 { public static void main(String[] args) { System.out.println(MyParent2.str); } } class MyParent2{ public static String str = "hell...

Java 2019-11-13 AM 2146次 0条

JVM学习二 -- Java程序对类的使用方式

Java程序对类的使用方式前言Java程序对类的使用方式可分为两种1.主动使用2.被动使用所有的Java虚拟机实现必须在每个类或接口被Java程序"首次主动使用"时才初始化他们一、主动使用(七种)1.创建类的实例(new出来一个class对象)2.访问某个类或接口的静态变量,或者对该静态变量赋值(对静态变量赋值和对静态变量取值)3.调用类的静态方法4.反射(如Class.forName("c...

Java 2019-10-16 PM 1910次 0条