java 中的 拷贝分为浅拷贝 和 深拷贝

浅拷贝需要实现Cloneable接口,深拷贝需要实现Serializable接口。

public class Square implements Cloneable, Serializable
{
private Point location = new Point(0, 0); private float sideLength = 1F; @Override
public Object clone()
{
Square tmp = null;
try
{
tmp = (Square) super.clone();
}
catch (CloneNotSupportedException cnse)
{
cnse.printStackTrace();
}
finally
{
return tmp;
}
} /**
* 深克隆方法
* @return
*/
public Object deepClone()
throws IOException, OptionalDataException, ClassNotFoundException
{
// 首先将对象写到流里
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream oo = new ObjectOutputStream(bo);
oo.writeObject(this); // 然后将对象从流里读出来
ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());
ObjectInputStream oi = new ObjectInputStream(bi); return (oi.readObject());
} /**
* @return the location
*/
public Point getLocation()
{
return location;
} /**
* @param location the location to set
*/
public void setLocation(Point location)
{
this.location = location;
} /**
* @return the sideLength
*/
public float getSideLength()
{
return sideLength;
} /**
* @param sideLength the sideLength to set
*/
public void setSideLength(float sideLength)
{
this.sideLength = sideLength;
} }

java 拷贝功能的更多相关文章

  1. JAVA文件下载功能问题解决日志

    今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的con ...

  2. python面向对象进阶 反射 单例模式 以及python实现类似java接口功能

    本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...

  3. Atitit.java eval功能的实现  Compiler API

    Atitit.java eval功能的实现  Compiler API 输出echo2 输出目录配置2 针对编译器,JDK 设计了两个接口,分别是 JavaCompiler 和JavaCompiler ...

  4. Android 虚拟机Dalvik、Android各种java包功能、Android相关文件类型、应用程序结构分析、ADB

    Android虚拟机Dalvik Dalvik冲击 随着Google 的AndroidSDK 的发布,关于它的API 以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举.不过,其中的一个话题在J ...

  5. JNI的替代者—使用JNA访问Java外部功能接口

    摘自:http://www.cnblogs.com/lanxuezaipiao/p/3635556.html JNI的替代者-使用JNA访问Java外部功能接口 1. JNA简单介绍 先说JNI(Ja ...

  6. java拷贝字符文件

    1.java拷贝字符文件 2.代码如下: package Demo1; import java.io.*; public class copyfile { public static void mai ...

  7. 【C/C++开发】【Java开发】JNI的替代者—使用JNA访问Java外部功能接口

    JNI的替代者-使用JNA访问Java外部功能接口 1. JNA简单介绍 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言( ...

  8. WPF 实现 TextBox 只能输入数字并且不能使用拷贝功能

    1.代码页需要在键盘按下事件中对输入文字进行筛选,代码如下: private void tbxGoToPage_PreviewKeyDown(object sender, KeyEventArgs e ...

  9. 用Java模拟实现对系统文件以目录的拷贝功能

    要用Java对单个文件拷贝的话,其实思路很简单,循环读取被拷贝文件,放入byte数组,然后写入目标文件.当然我们也可以借助现有的类去完成,如InputStream中的transferTo()方法就可以 ...

随机推荐

  1. mongodb group分组

    先插入测试数据: for(var i=1; i<20; i++){     var num=i%6;     db.test.insert({_id:i,name:"user_&quo ...

  2. 车牌识别LPR(六)-- 字符分割

    第六篇:字符分割 在知道了车牌字符的规律之后,可以根据车牌的特点对字符进行分割.一般最容易想到的方法就是根据车牌投影.像素统计特征对车牌图像进行字符分割的方法.是一种最常用的.最基本的.最简单的车牌字 ...

  3. NDK(16)Jni中GetStaticFieldID和GetMethodID 中的类型标识串

    env在GetStaticFieldID和GetMethodID 时,函数参数和返回值的类型要指定类型标识串,如: jmethodID init = env->GetMethodID(clz,& ...

  4. Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.解决办法

    刚刚更新AS到2.0版本,然后导入Api Demos的时候出现了这个错误. 解决办法:在AS的菜单栏,Tools->Android ->Enable ADB integration 勾选就 ...

  5. 关于BigDecimal的四舍五入和截断 (2007-08-10 15:06:26)

    关于四舍五入:ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 BigDe ...

  6. java8 十大新特性

    这篇文章是对Java 8中即将到来的改进做一个面向开发者的综合性的总结,JDK的这一特性将会在2013年9月份发布. 在写这篇文章的时候,Java 8的开发工作仍然在紧张有序的进行中,语言特新和API ...

  7. hdu 4882 ZCC Loves Codefires (贪心 推导)

    题目链接 做题的时候凑的规律,其实可以 用式子推一下的. 题意:n对数,每对数有e,k, 按照题目的要求(可以看下面的Hint就明白了)求最小的值. 分析:假设现在总的是sum, 有两个e1 k1 e ...

  8. 宏HASH_GET_NEXT

    /*******************************************************************//** Gets the next struct in a h ...

  9. OOD、OOP、AOP区别

    OOD:面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节.其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受. OOP:面 ...

  10. Exception in thread "main" java.lang.NoClassDefFoundError: UDP_Receive (wrong na me: com/ray/net/UDP_Receive)

    一.事件经过 今晚学习java网络编程,在eclipse中写了两个个java文件,一个发送端UDP_Send2.java,一个接收端UDP_Receive.java.实现发送端键盘录入信息,通过UDP ...