在面试中可能会问到的这么一个问题:请说出Java中创建对象的几种方式。
下面我列举了Java中创建对象的几种方式:
方案一:通过new来创建对象,最常见的一种方式
方案二:得到类的字节码对象,在通过调用newInstance方法返回类的对象
方案三:通过Class.forName(),里面包名加类名,返回字节码对象,在通过调用newInstance方法返回类的对象
见示例代码:
public class Cat { public Cat() { System.out.println("Cat()"); } } class TestCat{ public static void main(String[] args) throws Exception { // 方案一: Cat cat = new Cat(); // 方案二:得到cat类的字节码对象,在通过调用newInstance方法返回cat对象 Class<Cat> clazz = Cat.class; Cat cat1 = clazz.newInstance(); // 方案三:通过Class.forName(),里面包名加类名,返回字节码对象,在通过调用newInstance方法返回cat对象 Class<?> aClass = Class.forName("其他代码.Cat"); Cat cat2 = (Cat) aClass.newInstance(); } }
运行结果:
Cat() Cat() Cat()
没毛病,构造方法调用了三次。