ÉîÈëÀí½â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ѧϰ´ÓÈëÃŵ½¾«Í¨
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁËJavaÔËÐл·¾³£¨Java Runtime Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲôJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕJDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJ ......
ǰЩÌì±àС³ÌÐò£¬Ð´ÆäÖÐÓÐÒ»¸ö×Ô¼ºÊµÏÖµÄstackµÄpopÈçÏ£º
public class Stack<T>{
private ArrayList<T> list;
public Stack(){
list = new ArrayList<T>();
}
......
Ê×ÏÈ£¬¶ÔÓÚÎÒÄØ£¬ÊÇ´ÓÊÂ.net CFµÄ¹¤×÷µÄ£¬µ«×Ô´ÓײÉÏÁËhtc heroºó£¬ÎÒ£¬ÉîÉîµÄÃÔÁË£¬µ«ÔÚAndroidÏ¿ª·¢£¬»ù±¾ÊÇÓÃJava¿ª·¢µÄ£¬ºÜÉÙÓÐÓÃcºÍc++£¬³ý·Ç×öµ×²ãÄÇЩ֮ÀàµÄ¡£¶øÎÒ£¬×ÔÓдóѧ¿ÎÌÃÉÏѧÁËÄÄһѧÆÚµÄjava£¬ºÍ×öÏÂСÁ·Ï°£¬»ù±¾ÉÏ£¬¾ÍûÓж¯¹ýjavaÁË£¬µ«´Ó´Ë¿ÌÆð£¬ÎÒÒ ......