public static void main(String[] args) throws ClassNotFoundException {
Class<?> aClass = Class.forName("com.wy.five.TestDaoImpl");
System.out.println(aClass);
TestDaoImpl testDao = new TestDaoImpl();
System.out.println(testDao.getClass());
Class<TestDaoImpl> testDaoClass = TestDaoImpl.class;
System.out.println(testDaoClass);
System.out.println(aClass == testDao.getClass());
System.out.println(aClass == testDaoClass);
}
class com.wy.five.TestDaoImpl
class com.wy.five.TestDaoImpl
class com.wy.five.TestDaoImpl
true
true
通过上述比较三个对象的结果可以得出一个结论:同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,无论通过哪一种方式获取的Class对象都是同一个。