1.new 关键字创建对象
new创建对象会增加耦合度。无论使用什么框架,都要减少new的使用以降低耦合度。
2.反射机制创建对象
(1)Class类的newInstance方法:
Class c = Class.forName("com.briup.text");
Hello h = (Hello)c.newInstance();
(2)Constructor类的newInstance方法
Class c = Class.forName("com.briup.text");
Constructor constructor = c.getConstruction();
Hello h =(Hello) constructor.newInstance();
3.clone();
Hello h1 = new Hello();
Hello h2 = (Hello)h1.clone();
4.序列化机制(使用序列化时,要实现实现Serializable接口,将一个对象序列化到磁盘上,而采用反序列化可以将磁盘上的对象信息转化到内存中)
Hello h = new Hello();
File f = new File("hello.obj");
FileOutputStream fos = new FileOutputStream(f);
ObjectOutputStream oos = new ObjectOutputStream(fos);
FileInputStream fis = new FileInputStream(f);
ObjectInputStream ois = new ObjectInputStream(fis)
//序列化对象,写入到磁盘中
oos.writeObject(h);
//反序列化对象
Hello newHello = (Hello)ois.readObject();
注意事项:除了new创建对象,其他都需要类型的强制转换
经典面试题:创建对象一定要new吗,请举例说明