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的子类吗?不是所有的子类都可以访问受保护的方法吗
?
毫无疑问,这两句提问没有任何错误。但是有一点必须搞清楚:你是否
相关文档:
文章转自:比特网
本文链接:http://news.chinabyte.com/303/9117803.shtml
Java报表软件应用在java应用项目中,能嵌入式的将java报表工具部署到java应用中,能共享应用服务器连接池,利用应用服务负责均衡和集群特性。因 ......
看了java私塾的中级视频,感觉很全面,总结整理出了一些Eclipse快捷键,希望对有用的朋友有所帮助:
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实 ......
一、Spring基础知识及IOC_选择题
1. 下面关于spring描述错误的是:( )
A Spring支持可插入的事务管理器,使事务划分更轻松,同时无需处理底层的问题。
B Spring事务管理的通用抽象层还包括JTA策略和一个JDBC DataSource。
C 与JTA或EJB CMT一样,Spring的事务支持依赖于Java EE环境。
D Spr ......
1.基本概念的理解
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:\xyz\test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个
URL绝对路径。
相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
......