面试题_类加载机制

创建对象在后:

面试题_类加载机制_第1张图片

测试结果是:

1

 

创建对象在前:

面试题_类加载机制_第2张图片

测试结果是:

1

Why?

这就涉及到“类加载机制”了。

通常地,javac工具把代码编译成class文件,java工具把class文件加载到虚拟机,虚拟机吧class文件加载到内存。

而虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。


附上代码,方便检验:

package jvmTest1;

public class SingleTon {
	private static SingleTon singleTon = new SingleTon();
	public static int count1;
	public static int count2 = 0;
	
	
	private SingleTon() {
		count1++;
		count2++;
	}
	
	public static SingleTon getSingleTon() {
		return singleTon;
	}
	
	// -------------------------------------------------------------------
	
	public static void main(String[] args) {
		SingleTon.getSingleTon();
		System.out.println(SingleTon.count1);
		System.out.println(SingleTon.count2);
	}
}

 

你可能感兴趣的:(面试题,jvm)