上QQ阅读APP看书,第一时间看更新
2.2.13 类对象的单例性
每一个*.java文件都对应一个类(Class)的实例,在内存中是单例的,测试代码如下:
class MyTest { } public class Test { public static void main(String[] args) throws InterruptedException { MyTest test1 = new MyTest(); MyTest test2 = new MyTest(); MyTest test3 = new MyTest(); MyTest test4 = new MyTest(); System.out.println(test1.getClass() == test1.getClass()); System.out.println(test1.getClass() == test2.getClass()); System.out.println(test1.getClass() == test3.getClass()); System.out.println(test1.getClass() == test4.getClass()); // System.out.println(); // SimpleDateFormat format1 = new SimpleDateFormat(""); SimpleDateFormat format2 = new SimpleDateFormat(""); SimpleDateFormat format3 = new SimpleDateFormat(""); SimpleDateFormat format4 = new SimpleDateFormat(""); System.out.println(format1.getClass() == format1.getClass()); System.out.println(format1.getClass() == format2.getClass()); System.out.println(format1.getClass() == format3.getClass()); System.out.println(format1.getClass() == format4.getClass()); } }
程序运行结果如下:
true true true true true true true true
Class类用于描述类的基本信息,包括有多少个字段,有多少个构造方法,有多少个普通方法等,为了减少对内存的高占用,在内存中只需要保存1份Class类的对象就可以了,所以被设计为单例。