ÉîÈëÀí½âjavaµÄclone
ΪÁËÀí½âjavaµÄclone£¬ÓбØÒªÏÈÎÂϰÒÔϵÄ֪ʶ¡£
javaµÄÀàÐÍ£¬javaµÄÀàÐÍ·ÖΪÁ½´óÀ࣬һÀàΪprimitive£¬Èçint£¬ÁíÒ»ÀàΪÒýÓÃÀàÐÍ,ÈçString,ObjectµÈµÈ¡£
javaÒýÓÃÀàÐ͵Ĵ洢£¬javaµÄÒýÓÃÀàÐͶ¼ÊÇ´æ´¢ÔÚ¶ÑÉϵġ£
public class B {
int a;
String b;
public B(int a, String b) {
super();
this.a = a;
this.b = b;
}
}
¶ÔÕâÑùÒ»¸öÒýÓÃÀàÐ͵ÄʵÀý£¬ÎÒÃÇ¿ÉÒÔÍÆ²â£¬ÔÚ¶ÑÉÏËüµÄÄÚ´æ´æ´¢ÐÎʽ£¨³ýÈ¥Ö¸ÏòclassµÄÒýÓã¬ËøµÄ¹ÜÀíµÈµÈÄÚÎñÊÂÎñËùÕ¼Äڴ棩£¬Ó¦¸ÃÓÐÒ»¸öintÖµ±íʾa,ÒÔ¼°Ò»¸öÒýÓ㬸ÃÒýÓÃÖ¸ÏòbÔÚ¶ÑÉϵĴ洢¿Õ¼ä¡£
ΪʲôҪclone
¶÷£¬ÒòΪÐèÒª¡£·Ï»°¡£
ÓÐÃûµÄGoFÉè¼ÆÄ£Ê½ÀïÓÐÒ»¸öģʽΪÔÐÍģʽ£¬ÓÃÔÐÍʵÀýÖ¸¶¨´´½¨¶ÔÏóµÄÖÖÀà,²¢ÇÒͨ¹ý¿½±´ÕâЩÔÐÍ´´½¨ÐµĶÔÏó.
¼òµ¥µÄ˵¾ÍÊÇcloneÒ»¸ö¶ÔÏóʵÀý¡£Ê¹µÃclone³öÀ´µÄcopyºÍÔÓеĶÔÏóһģһÑù¡£
²åÒ»¸ö¼òµ¥Ê¹ÓÃcloneµÄÀý×Ó£¬Èç¹ûÒ»¸ö¶ÔÏóÄÚ²¿Óпɱä¶ÔÏóʵÀýµÄ»°£¬public API²»Ó¦¸ÃÖ±½Ó·µ»Ø¸Ã¶ÔÏóµÄÒýÓã¬ÒÔ·Àµ÷Ó÷½µÄcode¸Ä±ä¸Ã¶ÔÏóµÄÄÚ²¿×´Ì¬¡£Õâ¸öʱºò¿ÉÒÔ·µ»Ø¸Ã¶ÔÏóµÄclone¡£
ÎÊÌâÀ´ÁË£¬Ê²Ã´½ÐһģһÑù¡£
Ò»°ãÀ´Ëµ£¬ÓÐ
x.clone() != x
x.clone().getClass() == x.getClass()
x.clone().equals(x)
µ«ÊÇÕâЩ¶¼²»ÊÇÇ¿ÖÆµÄ¡£
ÎÒÃÇÐèҪʲôÑùµÄclone¾Í¸ã³öʲôÑùµÄcloneºÃÁË¡£
Ò»°ã¶øÑÔ£¬ÎÒÃÇÒªµÄcloneÓ¦¸ÃÊÇÕâÑùµÄ¡£copyºÍÔÐ͵ÄÄÚÈÝÒ»Ñù£¬µ«ÊÇÓÖÊDZ˴˸ôÀëµÄ¡£¼´ÔÚcloneÖ®ºó£¬¸Ä±äÆäÖÐÒ»¸ö²»Ó°ÏìÁíÍâÒ»¸ö¡£
ObjectµÄcloneÒÔ¼°ÎªÊ²Ã´Èç´ËʵÏÖ
ObjectµÄcloneµÄÐÐΪÊÇ×î¼òµ¥µÄ¡£ÒÔ¶ÑÉϵÄÄÚ´æ´æ´¢½âÊ͵ϰ£¨²»¼ÆÄÚÎñÄڴ棩£¬¶ÔÒ»¸ö¶ÔÏóaµÄclone¾ÍÊÇÔÚ¶ÑÉÏ·ÖÅäÒ»¸öºÍaÔÚ¶ÑÉÏËùÕ¼´æ´¢¿Õ¼äÒ»Ñù´óµÄÒ»¿éµØ·½£¬È»ºó°ÑaµÄ¶ÑÉÏÄÚ´æµÄÄÚÈݸ´ÖƵ½Õâ¸öзÖÅäµÄÄÚ´æ¿Õ¼äÉÏ¡£
¿´Àý×Ó¡£
class User {
String name;
int age;
}
class Account implements Cloneable {
User user;
long balance;
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
// user.
User user = new User();
user.name = "user";
user.age = 20;
// account.
Account account = new Account();
account.user = user;
account.balance = 10
Ïà¹ØÎĵµ£º
ÔÚʵ¼ÊÓ¦ÓÃÖУ¬¿ÉÄÜ»áÅöµ½ÕâÑùµÄÇé¿ö£¬ÐèÒªÔÚJava´úÂëÖÐÖ´ÐÐJavaScript¡£
ÀýÈç:
import java.io.IOException;
import java.io.PrintWriter;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public cl ......
ǰЩÌì±àС³ÌÐò£¬Ð´ÆäÖÐÓÐÒ»¸ö×Ô¼ºÊµÏÖµÄstackµÄpopÈçÏ£º
public class Stack<T>{
private ArrayList<T> list;
public Stack(){
list = new ArrayList<T>();
}
......
ÎÒ¸Õ´ÓÔÚAntwerpÕÙ¿ªµÄDevoxx
´ó»áÉÏ»ØÀ´£¬»áÉϽéÉÜÁËJava7µÄÐÂÌØÐÔ£¬¶ÔÓ¦µÄJDK½«ÓÚ2010Äê9Ô·¢²¼¡£
ÏÂÃæÊÇ7¸öÒѾÍê³ÉµÄÐÂÌØÐÔ£º
¶ÔcollectionsµÄÓïÑÔ¼¶Ö§³Ö
×Ô¶¯×ÊÔ´¹ÜÀí
¸Ä½ø·ºÐÍÔÚ´´½¨ÊµÀýʱµÄÀàÐÍÒýÓÃ
´øÏ»®ÏßµÄÊý×Ö
ÔÚswitchÖÐʹÓÃString
¶þ½øÖÆÎÄ×Ö
¼ò»¯µÄ¿É±ä²ÎÊý·½·¨µ÷ÓÃ
Java7»¹ÓкܶàÆäËûµÄÐÂÌØÐÔ£¬Î ......
±¾ÌùÕª×Ô http://bbs.langsin.com/redirect.php?tid=9936&goto=lastpost
Ïë´òÓ¡Ò»¸öString ±äÁ¿µÄµØÖ·£¬ÇëÎÊÈçºÎÀ´Ð´£¿
²»ÊÇhashcode£¬¾ÍÊÇÄÚ´æµØÖ·£¬¶øÇÒÒª´òÓ¡³öÀ´¡£
Ò²Ðí±È½Ï¼òµ¥£¬²»¹ýÎÒûд³öÀ´¡£
----------------------------------------------------------------------------------------
ʹÓÃSyst ......