几个对象生成方法 1 new一个对象2 clone一个对象3 reflect一个对象4 反序列化一个对象请高手略微指点,比较一下 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.直接实例化2.克隆一个对象,对其副本操作,不影响被克隆的对象.同时分深度克隆个浅克隆3.反射机制 每个类都有.getClass().getDeclaredFields()等方法,该机制是使用这种方法实现 反射.反射机制用于运行后才能知道类名的http://community.csdn.net/Expert/TopicView.asp?id=5228171 另外一个兄弟写的4.反序列化对象?不太了解,学习中.等待更加详细的解释 呵呵! 1 new一个对象调用构造函数,创建对象,系统重新分配内存,再初始化数据2 clone一个对象直接分配内存,拷贝数据(分深度浅度),比new效率要高很多3 reflect一个对象通过String来得到对象。最终还是new了一个,比较消耗资源,但使用灵活。很多地方必须用这种方法来获得对象4 反序列化一个对象通过流来构造对象,类似于反射。比较消耗资源。对象必须是可序列化的。一般用于对象传输 new 是最高效的分配就是分配,怎么会有重新?怎么还有直接分配的说法?难道还有间接分配? clone才是最高效的clone直接把内存数据拷贝过去,变量不用赋默认值,不需要调用构造函数new方法实际上是先分配内存,然后变量赋默认值,然后调用构造函数这就是为什么建议使用clone而不是newclass A implements Cloneable{ private static A a=new A(); private A(){ } public static A newInstance(){ try { return (A) a.clone(); } catch (CloneNotSupportedException ex) { return null; } } public Object clone() throws CloneNotSupportedException { return super.clone(); }}上面是一个比较常见的通过静态方法得到对象的类,一般情况下建议采用clone的方式来做,这样效率高 反序列化主要用于网络间传输对象比如在WEB SERVICE应用中如果需要传输一个自定义的类首先把对象序列化成字符串把这个字符串传输到接收端接收端把这个字符串反序列化成一个类简单的比喻,实际情况更复杂一些 根据XSD验证XML java 实现视频共享 程序编译通过,但运行后只要输入一个数就会抛出异常,求解答! 连接sql server 2000出错,麻烦大家帮忙! 关于一个Java中Date()类的奇怪问题 请问java的多语言支持问题 求简洁的方法:Java中计算小数点问题 acrobat reader 5.o的问题 哪儿有java2类库的电子书?! split()方法使用的疑问,关于分隔符。 javad的C/S程序怎样得到网络WEB服务器上的某个目录中的文件 请教大家一个问题,菜鸟问题!
2.克隆一个对象,对其副本操作,不影响被克隆的对象.同时分深度克隆个浅克隆
3.反射机制 每个类都有.getClass().getDeclaredFields()等方法,该机制是使用这种方法实现
反射.反射机制用于运行后才能知道类名的
http://community.csdn.net/Expert/TopicView.asp?id=5228171 另外一个兄弟写的
4.反序列化对象?不太了解,学习中.等待更加详细的解释 呵呵!
调用构造函数,创建对象,系统重新分配内存,再初始化数据2 clone一个对象
直接分配内存,拷贝数据(分深度浅度),比new效率要高很多3 reflect一个对象
通过String来得到对象。最终还是new了一个,比较消耗资源,但使用灵活。很多地方必须用这种方法来获得对象4 反序列化一个对象
通过流来构造对象,类似于反射。比较消耗资源。对象必须是可序列化的。一般用于对象传输
分配就是分配,怎么会有重新?
怎么还有直接分配的说法?难道还有间接分配?
这就是为什么建议使用clone而不是new
class A implements Cloneable{
private static A a=new A();
private A(){
}
public static A newInstance(){
try {
return (A) a.clone();
}
catch (CloneNotSupportedException ex) {
return null;
}
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
上面是一个比较常见的通过静态方法得到对象的类,一般情况下建议采用clone的方式来做,这样效率高
比如在WEB SERVICE应用中
如果需要传输一个自定义的类首先把对象序列化成字符串
把这个字符串传输到接收端
接收端把这个字符串反序列化成一个类简单的比喻,实际情况更复杂一些