Java clone机制
1、 Java对象赋值
Java代码
Employee e1=
new
Employee(
"李"
);
//Employee是一个自定义类
Employee e2=e1; //赋值对象
e2.setName("王"
);
//改变对象e2的名字
System.out.println(e1.getName()); //打印e1的结果: 王
Employee e1=new Employee("李"); //Employee是一个自定义类
Employee e2=e1; //赋值对象
e2.setName("王");//改变对象e2的名字
System.out.println(e1.getName()); //打印e1的结果: 王
这就是Java的对象赋值,改变e2的内容竟然会影响e1的内容。原因很简单,就是e1和e2这两个对象引用都指向了堆中同一个Employee类对象的
内容。也就是说:
Java的对象赋值的是引用(相当于C的指针)。如何让e1,e2成为内容相同的两个完全不同的对象呢,这就需要用到Java的对象克隆机制(将e2复制
成e1的一个独立副本)。
2、 Java对clone的支持
(1) 继承Object的clone方法的疑问?
有一点我们很清楚,Java的万类之祖Object中有一个clone()方法:
protected
native Object clone() throws CloneNotSupportedException
既然这个方法是protected的,显然是为了让子类能够使用。看看下面的代码:
Java代码
//Employee类中没有clone方法,也没有实现Cloneable接口
Employee original=new
Employee(
"John Public"
);
Employee copy=original.clone(); //wrong
//Employee类中没有clone方法,也没有实现Cloneable接口
Employee original=new Employee("John Public");
Employee copy=original.clone(); //wrong
有人会提出这样的疑问:不是所有的类都是Object的子类吗?不是所有的子类都可以访问受保护的方法吗
?
毫无疑问,这两句提问没有任何错误。但是有一点必须搞清楚:你是否
相关文档:
Java是一种面向对象的编程语言。它具有与平台无关、面向对象、动态、安全等特点,允许直接使用多线程方式进行编程,对程序进行并发控制。Java还支持分布式网络操作,从而能够方便地进行网络文件对象的存取。利用Java语言本身提供的绘图功能,可以绘制一些简单的图形。而对于复杂图形,一般先用绘图软件制成图像,然后采用Ja ......
1.AJAX基础知识_选择题
1. Ajax有四种技术组成:DOM,CSS,JavaScript,XmlHttpRequest中控制文档结构的是:( )
A DOM
B CSS
C javascript
D XMLHttpRequest
参考答案:A
2. 在Ajax的四种技术中,控制通信的是哪一个?( )
A DOM
B CSS
C javasc ......
1. Struts体系结构实现了MVC设计模式的概念,那么它将以下选项中给出的什么分别映射为web应用中的组件?( )
A View
B Model
C ActionServlet
D Action
E ActionMapping
F Controller
参考答案:ABF
2. 在Struts体系结构中,以下哪个由代表系统状态和商业逻辑的Action来构建 ......
http://51jsp.cn/post/23.html
现在做网站首先考虑一点就是不能在自己的网站中出现非法的东西,包括一些敏感的词。现在我们就来简单的实现它,为了查找的快速在这用txt来保存这些非法的关键词。这个TXT文档是在网上找到,现在传上来200907261131128065.rar
用JAVA程序实现简单的添加验证关键词,如果大家要实际中使用,添 ......
public boolean copy(String from, String to) {
boolean temp=true;
FileInputStream stream;
try {
stream = new FileInputStream(new File(from));
FileOutputStream bos = new FileOutputStream(to);
int bytesRea ......