public class Test2 {
public static void main(String[] args) {
//获取类对象的三个方法
try {
//第一种方式:此方式必须写类全名。c2引用保存保存内存地址指向堆中的对象,该对象代表的是User整个类
//执行静态语句块
Class cl1 = Class.forName("com.hx.shopping.test.A");//将A.class文件装载到JVM中的 过程
Object obj = cl1.newInstance();//调用A的无参构造方法
System.out.println(obj);//com.hx.shopping.test.A@15db9742
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
//第二种方式:Java中每个类型都有class属性
//不会执行静态语句块
Class cl2 = A.class;
//第三种方式:Java语言中任何一个Java对象都有getClass方法
//执行静态语句块
A cl3 = new A();
cl3.getClass();
//其中,因为User这个类在JVM中只有一个,所以c1,c2,c3的内存地址是相同的,指向堆中唯一的一个对象
try {
Class c = Class.forName("java.util.Date");
Object obj2 = c.newInstance();
if(obj2 instanceof Date){
Date date = (Date)obj2;
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date));
//2018-04-13 11:25:29 648
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
class A {
A(){
System.out.println("A类构造方法……");
}
static {
System.out.println("A类静态语句块……");
}
}
public static void main(String[] args) {
//获取类对象的三个方法
try {
//第一种方式:此方式必须写类全名。c2引用保存保存内存地址指向堆中的对象,该对象代表的是User整个类
//执行静态语句块
Class cl1 = Class.forName("com.hx.shopping.test.A");//将A.class文件装载到JVM中的 过程
Object obj = cl1.newInstance();//调用A的无参构造方法
System.out.println(obj);//com.hx.shopping.test.A@15db9742
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
//第二种方式:Java中每个类型都有class属性
//不会执行静态语句块
Class cl2 = A.class;
//第三种方式:Java语言中任何一个Java对象都有getClass方法
//执行静态语句块
A cl3 = new A();
cl3.getClass();
//其中,因为User这个类在JVM中只有一个,所以c1,c2,c3的内存地址是相同的,指向堆中唯一的一个对象
try {
Class c = Class.forName("java.util.Date");
Object obj2 = c.newInstance();
if(obj2 instanceof Date){
Date date = (Date)obj2;
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date));
//2018-04-13 11:25:29 648
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
class A {
A(){
System.out.println("A类构造方法……");
}
static {
System.out.println("A类静态语句块……");
}
}