了解下JAVA的克隆分解对象
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。试图深层复制分解对象时会碰到一个成绩。必需假定成员对象中的clone()办法也能顺次对本人的句柄举行深层复制,以此类推。这使我们的操纵变得庞大。为了能一般完成深层复制,必需对一切类中的代码举行把持,大概最少周全把握深层复制中必要触及的类,确保它们本人的深层复制能准确举行。
上面这个例子总结了面临一个分解对象举行深层复制时必要做哪些事变:
//:DeepCopy.java
//Cloningacomposedobject
classDepthReadingimplementsCloneable{
privatedoubledepth;
publicDepthReading(doubledepth){
this.depth=depth;
}
publicObjectclone(){
Objecto=null;
try{
o=super.clone();
}catch(CloneNotSupportedExceptione){
e.printStackTrace();
}
returno;
}
}
classTemperatureReadingimplementsCloneable{
privatelongtime;
privatedoubletemperature;
publicTemperatureReading(doubletemperature){
time=System.currentTimeMillis();
this.temperature=temperature;
}
publicObjectclone(){
Objecto=null;
try{
o=super.clone();
}catch(CloneNotSupportedExceptione){
e.printStackTrace();
}
returno;
}
}
classOceanReadingimplementsCloneable{
privateDepthReadingdepth;
privateTemperatureReadingtemperature;
publicOceanReading(doubletdata,doubleddata){
temperature=newTemperatureReading(tdata);
depth=newDepthReading(ddata);
}
publicObjectclone(){
OceanReadingo=null;
try{
o=(OceanReading)super.clone();
}catch(CloneNotSupportedExceptione){
e.printStackTrace();
}
//Mustclonehandles:
o.depth=(DepthReading)o.depth.clone();
o.temperature=
(TemperatureReading)o.temperature.clone();
returno;//UpcastsbacktoObject
}
}
publicclassDeepCopy{
publicstaticvoidmain(String[]args){
OceanReadingreading=
newOceanReading(33.9,100.5);
//Nowcloneit:
OceanReadingr=
(OceanReading)reading.clone();
}
}///:~DepthReading和TemperatureReading十分类似;它们都只包括了基础数据范例。以是clone()办法可以十分复杂:挪用super.clone()并前往了局便可。注重两个类利用的clone()代码是完整分歧的。
OceanReading是由DepthReading和TemperatureReading对象兼并而成的。为了对其举行深层复制,clone()必需同时克隆OceanReading内的句柄。为到达这个方针,super.clone()的了局必需外型成一个OceanReading对象(以便会见depth和temperature句柄)。
IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,net网页编程beans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 是一种为 Internet发展的计算机语言 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
页:
[1]
2