Java对象创建方式及JVM对字符串处理
作者:网络转载 发布时间:[ 2013/4/26 10:57:39 ] 推荐标签:
1、Java程序中创建对象的5种常见方式
在讲Jvm对字符串的处理之前,我们先来讲一下,在Java中,常见的5种创建对象的方式:
1)通过关键字new调用构造器创建Java对象,eg:String str = new String("hello");
2)通过Class对象的newInstance()方法调用构造器创建Java对象,eg:Class.forName("com.mysql.jdbc.Driver").newInstance();
3)通过Java的反序列化机制从IO流中恢复Java对象,eg:
package test;
import java.io.Serializable;
public class Person implements Serializable {
static final long serialVersionUID = 1L;
String name; // 姓名
public Person() {}
public Person(String name) {
super();
this.name = name;
}
}
package test;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ObjectIo {
public static void main(String[] args) throws Exception {
Person p = new Person("小明");
FileOutputStream fos = new FileOutputStream("d:/objectIoTest.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(p);
oos.flush();
oos.close(); //前面这几行都是为了下面几行通过Java的反序列化机制从IO流中恢复Java对象作准备
//下面才是开始通过Java的反序列化机制从IO流中恢复Java对象
FileInputStream fis = new FileInputStream("d:/objectIoTest.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
Person person = (Person) ois.readObject();
System.out.println("这个人是 : " + person.name);
}
}
运行结果:
4)通过Java对象提供的clone()方法复制一个新的Java对象,eg:
package test;
/**
* 必须实现Cloneable接口,并且重写clone()方法
* @ClassName: Base
* @author 小学徒
* @date 2013-3-28
*/
public class Base implements Cloneable{
int i = 20;
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
package test;
public class CloneTest {
public static void main(String[] args) throws Exception {
Base b = new Base();
Base c = (Base) b.clone();
System.out.println("b和c是同一个对象? " + (c == b));
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11