<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
用过C++的人都知道,C++中有个"拷贝构造函数"的概念。这个概念是为了解决C++中把一个对象指针赋值给另外一个对象指针,从而两个指针指向同一块内存区域而提出的。 同样,Java做为一门高级语言,它也无法避免这样的问题。Java中没有"拷贝构造函数"的概念,而是提出了一个"Clone"的概念。其实现机制还是利用C++中的"深拷贝"进行的。 下面是两个例子程序,对比一下前后就很容易得出结论了。 使用Clone机制前: /* * Main.java * * Created on 2007年8月4日, 下午6:34 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package testjavaclone; /** * * @author df.sun */ public class Main { private String name; /** Creates a new instance of Main */ public Main() { }
void setName(String name) { this.name = name; }
String getName() { return this.name; } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Main a = new Main(); Main b = a;
a.setName("aaa"); b.setName("bbb");
System.out.println(a.getName()); System.out.println(b.getName()); }
} 使用Clone机制后: /* * Main.java * * Created on 2007年8月4日, 下午6:34 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package testjavaclone; /** * * @author df.sun */ public class Main implements Cloneable{ private String name; /** Creates a new instance of Main */ public Main() { }
void setName(String name) { this.name = name; }
String getName() { return this.name; } /** * @param args the command line arguments */ public static void main(String[] args) throws Exception{ // TODO code application logic here Main a = new Main(); Main b = (Main)a.clone();
a.setName("aaa"); b.setName("bbb");
System.out.println(a.getName()); System.out.println(b.getName()); }
} |
关于线程共享数据的问题。 程序1: /* * Main.java * * Created on 2007年8月4日, 下午7:00 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package testthread; /** * * @author df.sun */ public class Main extends Thread{
private int couter = 10; /** Creates a new instance of Main */ public Main() { }
public void run() { for(int i = 0;i { couter--; } System.out.println(couter); } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Thread a = new Thread(new Main()); Thread b = new Thread(new Main());
a.start(); b.start(); }
} 程序2: /* * Main.java * * Created on 2007年8月4日, 下午7:00 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package testthread; /** * * @author df.sun */ public class Main extends Thread{
private int couter = 10; /** Creates a new instance of Main */ public Main() { }
public void run() { for(int i = 0;i { couter--; } System.out.println(couter); } /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Main m = new Main(); Thread a = new Thread(m); Thread b = new Thread(m);
a.start(); b.start(); }
} |
分享到:
相关推荐
java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...
java解析PDF格式的文件demo。JAVA实现PDF解析,对PDF文件中的文本内容可输出仅供参考学习,不喜勿喷。
校招Java面试点解析校招Java面试点解析校招Java面试点解析校招Java面试点解析
在学习JAVA的过程中,我们会遇到很多疑惑,这个资料里给出了很多我们会想当然的一些一些问题,总共总结了95个常见的疑惑,并且在讲解这些疑惑时先通过一些小故事然后编程举例引出来,很有趣味,一点都不会觉得枯燥。
java 解析 json文件java 解析 json文件java 解析 json文件java 解析 json文件java 解析 json文件
支持解析sql的正确性,可以解析出sql 的列名,表名,别名,条件等,非常好用
java socket源码解析 java socket源码解析 java socket源码解析 java socket源码解析
Java表达式语法解析库 parboiled
Java Spring 源码解析 Xmind 思维导图。 Spring源码解析Xmind思维导图,阅读spring源码之后整理的。包括源码流程、时序图、bean生命周期等等总结 spring java
java代码-使用java解决从字符串中解析二维数组的源代码 ——学习参考资料:仅用于个人学习使用!
用JAVA解析DBC文件,考虑大小端,生成文件内容跟Vector CANDB++相同。
java对mht文件解析,并实现内容的抓取
项目的一部分,格点预报,解析nc文件
使用java实现对图片的解析,识别和获取图片中的文字、数字
解析javadom解析javadom解析javadom解析javadom解析
一个简单的分析工具,用于分析”.class/.cap/.exp”格式的Java文件。 对于CAP文件,支持version 2.1 and 2.2. 适用于JCVM的学习。 使用工具时,需保证“C:\Program Files\WinZip\WINZIP32.EXE”存在,用于解压CAP...
java解析图片验证码
java实现xml解析word文档代码实现,通过解析word书签实现java动态写入word文档。方便使用。
用Java写的Cron表达式解析, Java swing编写的简洁界面,表达式到界面,界面到表达式,实现双重解析
Java TreeMap源码解析 Java TreeMap源码解析 Java TreeMap源码解析