ÉîÈëÀí½â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 NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
JAVAÅÅÐò»ã×Ü ÊÕ²Ø
package com.softeem.jbs.lesson4;
import java.util.Random;
/**
* ÅÅÐò²âÊÔÀà
*
* ÅÅÐòËã·¨µÄ·ÖÀàÈçÏ£º
* 1.²åÈëÅÅÐò£¨Ö±½Ó²åÈëÅÅÐò¡¢ÕÛ°ë²åÈëÅÅÐò¡¢Ï£¶ûÅÅÐò£©£»
* 2.½»»»ÅÅÐò£¨Ã°ÅÝÅÝÅÅÐò¡¢¿ìËÙÅÅÐò£©£»
* 3.Ñ¡ÔñÅÅÐò£¨Ö±½ÓÑ¡ÔñÅÅÐò¡¢¶ÑÅÅÐò£ ......
package dtm.tools;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Calendar;
import java.util.Dat ......
1, ±£Ö¤Ḭ̈߳²È«µÄÈýÖÖ·½·¨:
a, ²»Òª¿çÏ̷߳ÃÎʹ²Ïí±äÁ¿
b, ʹ¹²Ïí±äÁ¿ÊÇfinalÀàÐ͵Ä
c, ½«¹²Ïí±äÁ¿µÄ²Ù×÷¼ÓÉÏͬ²½
2, Ò»¿ªÊ¼¾Í½«ÀàÉè¼Æ³ÉḬ̈߳²È«µÄ, ±ÈÔÚºóÆÚÖØÐÂÐÞ¸´Ëü,¸üÈÝÒ×.
3, ±àд¶àÏ̳߳ÌÐò, Ê×Ïȱ£Ö¤ËüÊÇÕýÈ·µÄ, Æä´ÎÔÙ¿¼ÂÇÐÔÄÜ.
4, ÎÞ×´Ì ......
javaÖÐËùÓж¼ÊÇunicodeµÄ±àÂ룬¿ÖÅ´ó¼Ò¶¼Çå³þ£¬µ«ÊÇÕâ¾ßÌåÊÇÄÄÀïµÄ±àÂë¡£ÔÚһ̨ÖÐÎÄwindows²Ù×÷ϵͳ£¨GBK£©£¬»òÓ¢ÎĵÄlinux²Ù×÷ϵͳÏ£¨ISO-8859-1£©Ï£¬ÕâЩ±àÂëÊÇÈçºÎת»»µÄ¡£JAVAÖеÄStringÀàµÄgetBytes()·½·¨ºÍStringÀàµÄÖ¸¶¨±àÂ뷽ʽµÄ¹¹Ô캯ÊýÖеıàÂëÓÖÊÇÈçºÎÄØ£¿
ÕâÀïÎÒ²»×öÉîÈë½âÊÍ£¬Ö»ÊÇչʾһÏÂÕâЩ±àÂë ......