世界上就两件事:“关你屁事”和“关我屁事”
JVM Learn 03 理解类的初始化的一个简单例子
这是一个经典例子,很多面试题中出现过。首先引入正常的情况: 1package com.test.jvm.learn01; 2 3public class Main2 { 4 public static void main(String[] args) { 5 System.out.println(Counter.counter1); 6 System.out.println(Counter.counter2); 7 } 8} 9 10 11package com.test.jvm.learn01; 12 13public class Counter { 14 15 public static int counter1; 16 public static int counter2 = 0; 17 public static Counter counter = new Counter(); 18 19 private Counter() { 20 counter1++; 21 counter2++; 22 System.out.println(counter1); 23 System.out.println(counter2); 24 } 25 26 public static Counter
JVM Learn 04 类加载器(一)
基本概念 java的类加载器(class loader),用来将java的字节码文件(.class)读取到内存中,生成一个Java.lang.Class对象。通过Class类的newInstance()方
JVM Learn 05 类加载器(二)
父子类加载器的命名空间 类A中引用了类B,那么加载类B时,由类A的类加载器按照双亲委托机制尝试加载。子类加载器加载的类可以引用父类加载器加载的类,而父类加载器加载的类不能引用子类加载器加载的类。 测试案例
JVM Learn 06 类加载器(三)
继续前面两篇类加载器的内容,本篇补充总结类加载的一些关键问题。 Java的类加载器本身如何被加载? Java的根类加载器(Bootstrap Class Loader),由C++编写,它是内建在JVM方法区内的一块字
JVM Learn 07 Launcher源码解析
这次重新阅读了一下sun.misc.Launcher这个类的源码,这里总结一下。