JavaµÄÉ±´ºÍdz¿½±´(2)
ÉÏһƪÎÄÕ½²ÊöÁËdz¿½±´ºÍÉ±´µÄº¬Ò壬²¢ÇÒ¸ø³öÁËdz¿½±´µÄÒ»¸öÀý×Ó
ÕâÆªÎÄÕÂÔÚÄǸöÀý×ÓµÄʵÏÖÉÏ×÷³öÐ޸ģ¬ÊµÏÖÉ±´,´úÂëÈçÏ£º
package com.test;
public class CloneTest
{
public static void main(String[] args)
{
Student s1 = new Student();
s1.setAge(20);
s1.setName("wudi");
School school = new School();
school.setName("Peiyang University");
school.setBornYear(1895);
s1.setSchool(school);
System.out
.println("s1:" + s1.getName() + " " + s1.getAge() + " "
+ s1.getSchool().getName() + " "
+ s1.getSchool().getBornYear());
try
{
//¿½±´Ò»¸öѧÉú
Student s2 = (Student)s1.clone();
s2.setAge(21);
s2.setName("WUDI");
System.out
.println("s2:" + s2.getName() + " " + s2.getAge() + " "
+ s2.getSchool().getName() + " "
+ s2.getSchool().getBornYear());
System.out.println("after s2 changing some property:");
//ͨ¹ýѧÉús2¸Ä±äÁËËûËùÔÚѧУµÄÃû³ÆºÍ³ÉÁ¢Ê±¼ä
s2.getSchool().setName("Tianjin University");
s2.getSchool().setBornYear(1951);
System.out
.println("s1:" + s1.getName() + " " + s1.getAge() + " "
+ s1.getSchool().getName() + " "
+ s1.getSchool().getBornYear());
System.out
.println("s2:" + s2.getName() + " " + s2.getAge() + " "
+ s2.getSchool().getName() + " "
+ s2.getSchool().getBornYear());
}
catch (CloneNotSupportedException e)
{
e.printStackTrace();
}
}
}
class School implements Cloneable
{
private String name;
private int bornYear;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getBornYear()
{
return bornYear;
}
public void setBornYear(int bornYear)
{
this.bornYear = bornYear;
}
@Override
protected Object clone() throws CloneNotSupportedException
{
return super.clone();
}
}
class Student implements Cloneable
{
private int age;
private String name;
private S
Ïà¹ØÎĵµ£º
ºÜ¶àdeveloperÖªµÀjavaÒ²¿ÉÄÜmemory leak£¬¹ØÓÚÕâ¸öÖ÷ÌâÒѾÓкܶàÎÄÕÂÁË¡£ÎÒÕâÀïÖ»Ïë·ÖÏíÒ»ÏÂ×Ô¼ºµÄmemory leakµÄ¾Ñé¡£
˵Ã÷Ò»ÏÂÕâÀïÖ¸µÄmemory leakÊdzÌÐò²»¼°Ê±ÊÍ·Åheapµ¼ÖµÄOutOfMemoryError.
Ê×ÏÈÒ»ÖÖÇé¿öÊÇcollection»òÕßÊÇmapÒ»Ö±±»putÊý¾Ý£¬Ã»Óлú»áremove£¬µ¼ÖÂOutOfMemoryError¡£ÓÈÆäÊǵ±collection»òÕßÊÇmap ......
1¡¢JavaSEµÄѧϰÊé¼®
Ó¢ÎÄÃû£º¡¶Thinking in Java¡·
ÖÐÎÄÃû£º¡¶Java±à³Ì˼Ïë¡·
ͼ Ƭ£º
×÷ ÕߣºBruce Eckel
³ö°æÉ磺»úе¹¤Òµ³ö°æÉç
ÔĶÁ·½·¨£ºÕâ±¾Êé²¢²»ÊʺÏÒ»µã»ù´¡¶¼Ã»ÓеÄͬѧ½øÐÐÔĶÁ£¬Ç¿ÁÒ½¨ÒéѧµÄJavaSE¡£
È»ºó¿ÉÒÔÖ±½ÓѧϰJavaWEBµÄÄÚÈÝÁË£¬µ«ÊÇÈç¹ûÏ뱸һ±¾ÊéÔÚÊֱ߱¸²éµÄ ......
1.¶¨Ò壺 ¹ËÃû˼Òå¾ÍÊÇÔÚÀàÖж¨ÒåµÄÀ࣬·ÖΪÁ½À࣬static µÄ ºÍ non-static µÄ¡£ÄÚ²¿Ààʵ¼ÊÉÏÊÇÒ»¸ö±àÒëÆ÷µÄÏÖÏó¡£±àÒëÆ÷½«ÄÚ²¿Ààת»¯Îª´ø×ÅÒ»Ð©Ææ¹ÖÃû×ֵįÕͨÀàÎļþ£¬ÐéÄâ»ú²¢²»Çø·ÖÒ»°ãÀàºÍÄÚ²¿ÀàµÄÀàÖеÄÎļþ¡£ 2.ʹÓÃÄÚ²¿ÀàµÄµÚÒ»¸öºÃ´¦——·â×°ÐԺͶà¼Ì³Ð ÎÒÃǽøÐС°µÚÈýÖÖ¹ØÏµ¡±·ÖÎö£º ¼Ì³Ð½á¹¹ÖÐÎ ......
JavaµÄ¿½±´·ÖΪÉ±´ºÍdz¿½±´
dz¿½±´£º°ÑÒ»¸ö¶ÔÏóÖÐËùÓеķÇstatic³ÉÔ±±äÁ¿(°üÀ¨¶ÔÆäËü¶ÔÏóµÄÒýÓã¬javaÖеÄÒýÓÃÏ൱ÓÚC/C++ÖеÄÖ¸Õë±äÁ¿)¶¼¿½±´Ò»±é£¬¶ø²»¿½±´ÒýÓÃËùÖ¸ÏòµÄ¶ÔÏó
É±´£º°ÑÒ»¸ö¶ÔÏóÖÐËùÓеķÇstatic³ÉÔ±±äÁ¿(°üÀ¨¶ÔÆäËü¶ÔÏóµÄÒýÓÃ)¶¼¿½±´Ò»±é£¬ÒýÓÃËùÖ¸ÏòµÄ¶ÔÏóÒ²¿½±´Ò»·Ý
ÕâÆªÎÄÕÂÏȽ²Êödz¿½±´£ ......