ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
±±¾©Ê¥Ë¼Ô°¿Æ¼¼ÓÐÏÞ¹«Ë¾
http://www.shengsiyuan.com
? dz¸´ÖÆÓëÉî¸´ÖÆ¸ÅÄî
 ¨C dz¸´ÖÆ£¨Ç³¿Ë¡£©£º±»¸´ÖƶÔÏóµÄËùÓбäÁ¿¶¼
   º¬ÓÐÓëÔ­À´µÄ¶ÔÏóÏàͬµÄÖµ£¬¶øËùÓÐµÄ¶ÔÆäËû
   ¶ÔÏóµÄÒýÓÃÈÔȻָÏòÔ­À´µÄ¶ÔÏó¡£»»ÑÔÖ®£¬Ç³
   ¸´Öƽö½ö¸´ÖÆËù¿¼ÂǵĶÔÏ󣬶ø²»¸´ÖÆËüËùÒý
   ÓõĶÔÏó¡£
? dz¸´ÖÆÓëÉî¸´ÖÆ¸ÅÄî
 ¨C Éî¸´ÖÆ£¨Éî¿Ë¡£©£º±»¸´ÖƶÔÏóµÄËùÓбäÁ¿¶¼
   º¬ÓÐÓëÔ­À´µÄ¶ÔÏóÏàͬµÄÖµ£¬³ýÈ¥ÄÇЩÒýÓÃÆä
   Ëû¶ÔÏóµÄ±äÁ¿¡£ÄÇЩÒýÓÃÆäËû¶ÔÏóµÄ±äÁ¿½«Ö¸
   Ïò±»¸´ÖƹýµÄжÔÏ󣬶ø²»ÔÙÊÇÔ­ÓеÄÄÇЩ±»
   ÒýÓõĶÔÏó¡£»»ÑÔÖ®£¬Éî¸´ÖÆ°ÑÒª¸´ÖƵĶÔÏó
   ËùÒýÓõĶÔÏ󶼸´ÖÆÁËÒ»±é¡£
? JavaµÄclone()·½·¨¡¾¶¨ÒåÔÚObjectÀàÖС¿
  ¨C clone·½·¨½«¶ÔÏó¸´ÖÆÁËÒ»·Ý²¢·µ»Ø¸øµ÷ÓÃÕß¡£
    Ò»°ã¶øÑÔ£¬clone£¨£©·½·¨Âú×㣺
  ¨C ¢Ù¶ÔÈκεĶÔÏóx£¬¶¼ÓÐx.clone() !=x
     ? ¿Ë¡¶ÔÏóÓëÔ­¶ÔÏó²»ÊÇͬһ¸ö¶ÔÏó

  ¨C ¢Ú¶ÔÈκεĶÔÏóx£¬¶¼ÓÐ
    x.clone().getClass()= =x.getClass()
     ? ¿Ë¡¶ÔÏóÓëÔ­¶ÔÏóµÄÀàÐÍÒ»Ñù

  ¨C ¢ÛÈç¹û¶ÔÏóxµÄequals()·½·¨¶¨ÒåÇ¡µ±£¬ÄÇô
    x.clone().equals(x)Ó¦¸Ã³ÉÁ¢¡£
?   JavaÖжÔÏóµÄ¿Ë¡
    ¨C ¢ÙΪÁË»ñÈ¡¶ÔÏóµÄÒ»·Ý¿½±´£¬ÎÒÃÇ¿ÉÒÔÀûÓÃObjectÀà
      µÄclone()·½·¨¡£
    ¨C ¢ÚÔÚÅÉÉúÀàÖи²¸Ç»ùÀàµÄclone()·½·¨£¬²¢ÉùÃ÷Ϊ
      public¡¾ObjectÀàÖеÄclone()·½·¨ÎªprotectedµÄ¡¿¡£
    ¨C ¢ÛÔÚÅÉÉúÀàµÄclone()·½·¨ÖУ¬µ÷ÓÃsuper.clone()¡£
    ¨C ¢ÜÔÚÅÉÉúÀàÖÐʵÏÖCloneable½Ó¿Ú¡£
? ˵Ã÷£º
 ¨C ¢ÙΪʲôÎÒÃÇÔÚÅÉÉúÀàÖи²¸ÇObjectµÄclone()
   ·½·¨Ê±£¬Ò»¶¨Òªµ÷ÓÃsuper.clone()ÄØ£¿
   ? ÔÚÔËÐÐʱ¿Ì£¬ObjectÖеÄclone()ʶ±ð³öÄãÒª¸´ÖÆ
     µÄÊÇÄÄÒ»¸ö¶ÔÏó£¬È»ºóΪ´Ë¶ÔÏó·ÖÅä¿Õ¼ä£¬²¢½øÐÐ
     ¶ÔÏóµÄ¸´ÖÆ£¬½«Ô­Ê¼¶ÔÏóµÄÄÚÈÝÒ»Ò»¸´ÖƵ½Ð¶ÔÏó
     µÄ´æ´¢¿Õ¼äÖС£
 ¨C ¢Ú¼Ì³Ð×Ôjava.lang.ObjectÀàµÄclone()·½·¨
   ÊÇdz¸´ÖÆ
? °Ñ¶ÔÏóдµ½Á÷ÀïµÄ¹ý³ÌÊÇÐòÁл¯£¨Serilization£©
  ¹ý³Ì£¬¶ø°Ñ¶ÔÏó´ÓÁ÷ÖжÁ³öÀ´µÄ¹ý³ÌÔò½Ð×ö·´Ðò
  Áл¯£¨Deserialization£©¹ý³Ì¡£Ó¦µ±Ö¸³öµÄÊÇ£¬
  дÔÚÁ÷ÀïµÄÊǶÔÏóµÄÒ»¸ö¿½±´£¬¶øÔ­¶ÔÏóÈÔÈ»´æ
  ÔÚÓÚJVMÀïÃæ¡£
? ÔÚJavaÓïÑÔÀïÉî¸´ÖÆÒ»¸ö¶ÔÏ󣬳£³£¿ÉÒÔ
  ÏÈʹ¶ÔÏóʵÏÖSerializable½Ó¿Ú£¬È»ºó°Ñ¶Ô
  Ïó£¨Êµ¼ÊÉÏÖ»ÊǶÔÏóµÄÒ»¸ö¿½±´£©Ð´µ½Ò»
  ¸öÁ÷ÀÔÙ´ÓÁ÷Àï¶Á³öÀ´£¬±ã¿ÉÒÔÖØ½¨¶Ô
  Ïó¡£
? ÕâÑù×öµÄǰÌáÊǶÔÏóÒÔ¼°¶ÔÏóÄÚ²¿ËùÓÐÒý
  Óõ½µÄ¶ÔÏó¶¼Êǿɴ®Ðл¯µÄ£¬·ñÔò£¬¾ÍÐè
  Òª×Ðϸ¿¼²ìÄÇЩ²»¿É´®Ðл¯µÄ¶ÔÏó¿É·ñÉè
  ³Étransient£¬´Ó¶ø½«Ö®ÅųýÔÚ¸´Öƹý³ÌÖ®
  Íâ¡£
? ×¢Ò⣺CloneableÓëSerializable¶¼ÊÇ
  marker Interface,Ò²¾ÍÊÇ˵ËûÃÇÖ»ÊÇÒ»¸ö
  ±êʶ½Ó¿Ú£¬Ã»Óж¨ÒåÈκη½·¨¡£
? µ±Ò»¸öÀàʵÏÖÁËSerializable½Ó¿Úʱ£¬±íÃ÷
  ¸ÃÀà¿É±»ÐòÁл¯£¬Õâ¸öʱºòEclipse»áÒªÇó
  ÄãΪ¸ÃÀඨÒåÒ»¸ö×ֶΣ¬¸Ã×Ö¶ÎÃû×ÖΪ
  serialVersionUID£¬ÀàÐÍΪlong£¬ÌáʾÐÅ
  Ï¢ÈçÏÂ
? The serializable class Student4 does
  not declare a static final
  serialVersionUID field of type long
? Äã¿ÉÒÔËæ±ãдһ¸ö£¬ÔÚEclipseÖÐËüÌæÄãÉú
  ³ÉÒ»¸ö£¬ÓÐÁ½ÖÖÉú³É·½Ê½£º
  Ò»¸öÊÇĬÈϵÄ1L£¬±ÈÈ磺private static
  final long serialVersionUID = 1L;
  Ò»¸öÊǸù¾ÝÀàÃû¡¢½Ó¿ÚÃû¡¢³ÉÔ±·½·¨¼°Êô
  ÐÔµÈÀ´Éú³ÉÒ»¸ö64λµÄ¹þÏ£×ֶΣ¬±ÈÈ磺
  private static final long
  serialVersionUID =
  8940196742313994740L;Ö®ÀàµÄ¡£
? µ±ÄãÒ»¸öÀàʵÏÖÁËSerializable½Ó¿Ú£¬Èç¹û
  ûÓж¨ÒåserialVersionUID£¬Eclipse»áÌá
  ¹©Õâ¸öÌáʾ¹¦ÄܸæËßÄãÈ¥¶¨ÒåÖ®¡£
  ÔÚEclipseÖеã»÷ÀàÖÐwarningµÄͼ±êÒ»ÏÂ
  ¡¾¼´ÄǸö»ÆÉ«µÄͼ±ê¡¿£¬Eclipse¾Í»á×Ô¶¯
  ¸ø¶¨Á½ÖÖÉú³ÉµÄ·½Ê½£¬ÈçÉÏÃæËùÊö¡£Èç¹û
  ²»Ï붨ÒåËü£¬ÔÚEclipseµÄÉèÖÃÖÐÒ²¿ÉÒÔ°Ñ
  Ëü¹ØµôµÄ£¬ÉèÖÃÈçÏÂ
? Window ==> Preferences ==> Java
  ==> Compiler ==> Error/Warnings
  ==> Potential programming
  problems
  ½«Serializable class without
  serialVersionUIDµÄwarning¸Ä³Éignore
  ¼´¿É¡£
? Èç¹ûÄãûÓп¼Âǵ½¼æÈÝÐÔÎÊÌâʱ£¬¾Í°ÑËü
  ¹Øµô£¬²»¹ýÓÐÕâ¸ö¹¦ÄÜÊǺõģ¬Ö»ÒªÈκÎ
  Àà±ðʵÏÖÁËSerializableÕâ¸ö½Ó¿ÚµÄ»°£¬Èç
  ¹ûûÓмÓÈëserialVersionUID£¬Eclipse¶¼
  »á¸øÄãwarningÌáʾ£¬Õâ¸ö
  serialVersionUIDΪÁËÈøÃÀà±ð
  SerializableÏòºó¼æÈÝ¡£
? Èç¹ûÄãµÄ¶ÔÏóÐòÁл¯ºó´æµ½Ó²ÅÌÉÏÃæºó£¬
  ¿ÉÊǺóÀ´ÄãÈ´¸ü¸ÄÁËÀàµÄfield(Ôö¼Ó»ò¼õÉÙ
  »ò¸ÄÃû)£¬µ±Äã·´ÐòÁл¯Ê±£¬¾Í»á³öÏÖ
  ExceptionµÄ£¬ÕâÑù¾Í»áÔì³É²»¼æÈÝÐÔµÄÎÊ
  Ìâ¡£
? µ«µ±serialVersionUIDÏàͬʱ£¬Ëü¾Í»á½«
  ²»Ò»ÑùµÄfieldÒÔtypeµÄȱʡֵDeserialize£¬
  Õâ¸ö¿ÉÒԱܿª²»¼æÈÝÐÔµÄÎÊÌâ¡£

More Related Content

Viewers also liked (17)

PDF
[ʥ˼԰][Java SE]Observer
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Network
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 21
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Strategy
ArBing Xie
?
PPT
ÉòÑôʦ·¶´óѧ¿Î³Ìʵ¼ù Android¿ª·¢Ó¦ÓÃ
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 1
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 22
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Io 1
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 10
ArBing Xie
?
PPT
ÉòÑôʦ·¶´óѧ¿Î³Ìʵ¼ù JavaÓïÑÔ²¿·Ö
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Inner class
ArBing Xie
?
PPT
´¡±ð²õʵÑé
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Io 3
ArBing Xie
?
PPT
ÉòÑôʦ·¶´óѧ¿Î³Ìʵ¼ù Android¿ª·¢Ó¦ÓÃ
ArBing Xie
?
PPT
¹Åµä¼ÓÃÜË㷨ʵÑé
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]000 ½²Ê¦ÕÅÁú½éÉÜ
ArBing Xie
?
PDF
000 ±±¾©Ê¥Ë¼Ô°½ÌÓý¿Æ¼¼ÓÐÏÞ¹«Ë¾µÚÒ»ÆÚÃæÊÚÅàѵ´ó¸Ù
ArBing Xie
?
[ʥ˼԰][Java SE]Observer
ArBing Xie
?
[ʥ˼԰][Java SE]Network
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 21
ArBing Xie
?
[ʥ˼԰][Java SE]Strategy
ArBing Xie
?
ÉòÑôʦ·¶´óѧ¿Î³Ìʵ¼ù Android¿ª·¢Ó¦ÓÃ
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 1
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 22
ArBing Xie
?
[ʥ˼԰][Java SE]Io 1
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 10
ArBing Xie
?
ÉòÑôʦ·¶´óѧ¿Î³Ìʵ¼ù JavaÓïÑÔ²¿·Ö
ArBing Xie
?
[ʥ˼԰][Java SE]Inner class
ArBing Xie
?
´¡±ð²õʵÑé
ArBing Xie
?
[ʥ˼԰][Java SE]Io 3
ArBing Xie
?
ÉòÑôʦ·¶´óѧ¿Î³Ìʵ¼ù Android¿ª·¢Ó¦ÓÃ
ArBing Xie
?
¹Åµä¼ÓÃÜË㷨ʵÑé
ArBing Xie
?
[ʥ˼԰][Java SE]000 ½²Ê¦ÕÅÁú½éÉÜ
ArBing Xie
?
000 ±±¾©Ê¥Ë¼Ô°½ÌÓý¿Æ¼¼ÓÐÏÞ¹«Ë¾µÚÒ»ÆÚÃæÊÚÅàѵ´ó¸Ù
ArBing Xie
?

More from ArBing Xie (19)

PDF
[ʥ˼԰][Java SE]Java se lesson 3
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Swing
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 15
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Websphere.application.developer(wsad)ʹÓÃÍâÖÃwin cvs½â¾ö·½°¸
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]OoadÓëuml lesson 2
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 20
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 17
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 16
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 13
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 12
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 11
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 9
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 8
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 5
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 4
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 2
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Java se lesson 1
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]009 java se µÚ¾Å½²£¨ÃæÏò¶ÔÏóÖ®·â×°£©
ArBing Xie
?
PDF
[ʥ˼԰][Java SE]Decorator
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 3
ArBing Xie
?
[ʥ˼԰][Java SE]Swing
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 15
ArBing Xie
?
[ʥ˼԰][Java SE]Websphere.application.developer(wsad)ʹÓÃÍâÖÃwin cvs½â¾ö·½°¸
ArBing Xie
?
[ʥ˼԰][Java SE]OoadÓëuml lesson 2
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 20
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 17
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 16
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 13
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 12
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 11
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 9
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 8
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 5
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 4
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 2
ArBing Xie
?
[ʥ˼԰][Java SE]Java se lesson 1
ArBing Xie
?
[ʥ˼԰][Java SE]009 java se µÚ¾Å½²£¨ÃæÏò¶ÔÏóÖ®·â×°£©
ArBing Xie
?
[ʥ˼԰][Java SE]Decorator
ArBing Xie
?
Ad

[ʥ˼԰][Java SE]Clone

  • 2. ? dz¸´ÖÆÓëÉî¸´ÖÆ¸ÅÄî ¨C dz¸´ÖÆ£¨Ç³¿Ë¡£©£º±»¸´ÖƶÔÏóµÄËùÓбäÁ¿¶¼ º¬ÓÐÓëÔ­À´µÄ¶ÔÏóÏàͬµÄÖµ£¬¶øËùÓÐµÄ¶ÔÆäËû ¶ÔÏóµÄÒýÓÃÈÔȻָÏòÔ­À´µÄ¶ÔÏó¡£»»ÑÔÖ®£¬Ç³ ¸´Öƽö½ö¸´ÖÆËù¿¼ÂǵĶÔÏ󣬶ø²»¸´ÖÆËüËùÒý ÓõĶÔÏó¡£
  • 3. ? dz¸´ÖÆÓëÉî¸´ÖÆ¸ÅÄî ¨C Éî¸´ÖÆ£¨Éî¿Ë¡£©£º±»¸´ÖƶÔÏóµÄËùÓбäÁ¿¶¼ º¬ÓÐÓëÔ­À´µÄ¶ÔÏóÏàͬµÄÖµ£¬³ýÈ¥ÄÇЩÒýÓÃÆä Ëû¶ÔÏóµÄ±äÁ¿¡£ÄÇЩÒýÓÃÆäËû¶ÔÏóµÄ±äÁ¿½«Ö¸ Ïò±»¸´ÖƹýµÄжÔÏ󣬶ø²»ÔÙÊÇÔ­ÓеÄÄÇЩ±» ÒýÓõĶÔÏó¡£»»ÑÔÖ®£¬Éî¸´ÖÆ°ÑÒª¸´ÖƵĶÔÏó ËùÒýÓõĶÔÏ󶼸´ÖÆÁËÒ»±é¡£
  • 4. ? JavaµÄclone()·½·¨¡¾¶¨ÒåÔÚObjectÀàÖС¿ ¨C clone·½·¨½«¶ÔÏó¸´ÖÆÁËÒ»·Ý²¢·µ»Ø¸øµ÷ÓÃÕß¡£ Ò»°ã¶øÑÔ£¬clone£¨£©·½·¨Âú×㣺 ¨C ¢Ù¶ÔÈκεĶÔÏóx£¬¶¼ÓÐx.clone() !=x ? ¿Ë¡¶ÔÏóÓëÔ­¶ÔÏó²»ÊÇͬһ¸ö¶ÔÏó ¨C ¢Ú¶ÔÈκεĶÔÏóx£¬¶¼ÓÐ x.clone().getClass()= =x.getClass() ? ¿Ë¡¶ÔÏóÓëÔ­¶ÔÏóµÄÀàÐÍÒ»Ñù ¨C ¢ÛÈç¹û¶ÔÏóxµÄequals()·½·¨¶¨ÒåÇ¡µ±£¬ÄÇô x.clone().equals(x)Ó¦¸Ã³ÉÁ¢¡£
  • 5. ? JavaÖжÔÏóµÄ¿Ë¡ ¨C ¢ÙΪÁË»ñÈ¡¶ÔÏóµÄÒ»·Ý¿½±´£¬ÎÒÃÇ¿ÉÒÔÀûÓÃObjectÀà µÄclone()·½·¨¡£ ¨C ¢ÚÔÚÅÉÉúÀàÖи²¸Ç»ùÀàµÄclone()·½·¨£¬²¢ÉùÃ÷Ϊ public¡¾ObjectÀàÖеÄclone()·½·¨ÎªprotectedµÄ¡¿¡£ ¨C ¢ÛÔÚÅÉÉúÀàµÄclone()·½·¨ÖУ¬µ÷ÓÃsuper.clone()¡£ ¨C ¢ÜÔÚÅÉÉúÀàÖÐʵÏÖCloneable½Ó¿Ú¡£
  • 6. ? ˵Ã÷£º ¨C ¢ÙΪʲôÎÒÃÇÔÚÅÉÉúÀàÖи²¸ÇObjectµÄclone() ·½·¨Ê±£¬Ò»¶¨Òªµ÷ÓÃsuper.clone()ÄØ£¿ ? ÔÚÔËÐÐʱ¿Ì£¬ObjectÖеÄclone()ʶ±ð³öÄãÒª¸´ÖÆ µÄÊÇÄÄÒ»¸ö¶ÔÏó£¬È»ºóΪ´Ë¶ÔÏó·ÖÅä¿Õ¼ä£¬²¢½øÐÐ ¶ÔÏóµÄ¸´ÖÆ£¬½«Ô­Ê¼¶ÔÏóµÄÄÚÈÝÒ»Ò»¸´ÖƵ½Ð¶ÔÏó µÄ´æ´¢¿Õ¼äÖС£ ¨C ¢Ú¼Ì³Ð×Ôjava.lang.ObjectÀàµÄclone()·½·¨ ÊÇdz¸´ÖÆ
  • 7. ? °Ñ¶ÔÏóдµ½Á÷ÀïµÄ¹ý³ÌÊÇÐòÁл¯£¨Serilization£© ¹ý³Ì£¬¶ø°Ñ¶ÔÏó´ÓÁ÷ÖжÁ³öÀ´µÄ¹ý³ÌÔò½Ð×ö·´Ðò Áл¯£¨Deserialization£©¹ý³Ì¡£Ó¦µ±Ö¸³öµÄÊÇ£¬ дÔÚÁ÷ÀïµÄÊǶÔÏóµÄÒ»¸ö¿½±´£¬¶øÔ­¶ÔÏóÈÔÈ»´æ ÔÚÓÚJVMÀïÃæ¡£
  • 8. ? ÔÚJavaÓïÑÔÀïÉî¸´ÖÆÒ»¸ö¶ÔÏ󣬳£³£¿ÉÒÔ ÏÈʹ¶ÔÏóʵÏÖSerializable½Ó¿Ú£¬È»ºó°Ñ¶Ô Ïó£¨Êµ¼ÊÉÏÖ»ÊǶÔÏóµÄÒ»¸ö¿½±´£©Ð´µ½Ò» ¸öÁ÷ÀÔÙ´ÓÁ÷Àï¶Á³öÀ´£¬±ã¿ÉÒÔÖØ½¨¶Ô Ïó¡£ ? ÕâÑù×öµÄǰÌáÊǶÔÏóÒÔ¼°¶ÔÏóÄÚ²¿ËùÓÐÒý Óõ½µÄ¶ÔÏó¶¼Êǿɴ®Ðл¯µÄ£¬·ñÔò£¬¾ÍÐè Òª×Ðϸ¿¼²ìÄÇЩ²»¿É´®Ðл¯µÄ¶ÔÏó¿É·ñÉè ³Étransient£¬´Ó¶ø½«Ö®ÅųýÔÚ¸´Öƹý³ÌÖ® Íâ¡£
  • 9. ? ×¢Ò⣺CloneableÓëSerializable¶¼ÊÇ marker Interface,Ò²¾ÍÊÇ˵ËûÃÇÖ»ÊÇÒ»¸ö ±êʶ½Ó¿Ú£¬Ã»Óж¨ÒåÈκη½·¨¡£
  • 10. ? µ±Ò»¸öÀàʵÏÖÁËSerializable½Ó¿Úʱ£¬±íÃ÷ ¸ÃÀà¿É±»ÐòÁл¯£¬Õâ¸öʱºòEclipse»áÒªÇó ÄãΪ¸ÃÀඨÒåÒ»¸ö×ֶΣ¬¸Ã×Ö¶ÎÃû×ÖΪ serialVersionUID£¬ÀàÐÍΪlong£¬ÌáʾЊϢÈçÏÂ
  • 11. ? The serializable class Student4 does not declare a static final serialVersionUID field of type long
  • 12. ? Äã¿ÉÒÔËæ±ãдһ¸ö£¬ÔÚEclipseÖÐËüÌæÄãÉú ³ÉÒ»¸ö£¬ÓÐÁ½ÖÖÉú³É·½Ê½£º Ò»¸öÊÇĬÈϵÄ1L£¬±ÈÈ磺private static final long serialVersionUID = 1L; Ò»¸öÊǸù¾ÝÀàÃû¡¢½Ó¿ÚÃû¡¢³ÉÔ±·½·¨¼°Êô ÐÔµÈÀ´Éú³ÉÒ»¸ö64λµÄ¹þÏ£×ֶΣ¬±ÈÈ磺 private static final long serialVersionUID = 8940196742313994740L;Ö®ÀàµÄ¡£
  • 13. ? µ±ÄãÒ»¸öÀàʵÏÖÁËSerializable½Ó¿Ú£¬Èç¹û ûÓж¨ÒåserialVersionUID£¬Eclipse»áÌá ¹©Õâ¸öÌáʾ¹¦ÄܸæËßÄãÈ¥¶¨ÒåÖ®¡£ ÔÚEclipseÖеã»÷ÀàÖÐwarningµÄͼ±êһϠ¡¾¼´ÄǸö»ÆÉ«µÄͼ±ê¡¿£¬Eclipse¾Í»á×Ô¶¯ ¸ø¶¨Á½ÖÖÉú³ÉµÄ·½Ê½£¬ÈçÉÏÃæËùÊö¡£Èç¹û ²»Ï붨ÒåËü£¬ÔÚEclipseµÄÉèÖÃÖÐÒ²¿ÉÒÔ°Ñ Ëü¹ØµôµÄ£¬ÉèÖÃÈçÏÂ
  • 14. ? Window ==> Preferences ==> Java ==> Compiler ==> Error/Warnings ==> Potential programming problems ½«Serializable class without serialVersionUIDµÄwarning¸Ä³Éignore ¼´¿É¡£
  • 15. ? Èç¹ûÄãûÓп¼Âǵ½¼æÈÝÐÔÎÊÌâʱ£¬¾Í°ÑËü ¹Øµô£¬²»¹ýÓÐÕâ¸ö¹¦ÄÜÊǺõģ¬Ö»ÒªÈκΠÀà±ðʵÏÖÁËSerializableÕâ¸ö½Ó¿ÚµÄ»°£¬Èç ¹ûûÓмÓÈëserialVersionUID£¬Eclipse¶¼ »á¸øÄãwarningÌáʾ£¬Õâ¸ö serialVersionUIDΪÁËÈøÃÀà±ð SerializableÏòºó¼æÈÝ¡£
  • 16. ? Èç¹ûÄãµÄ¶ÔÏóÐòÁл¯ºó´æµ½Ó²ÅÌÉÏÃæºó£¬ ¿ÉÊǺóÀ´ÄãÈ´¸ü¸ÄÁËÀàµÄfield(Ôö¼Ó»ò¼õÉÙ »ò¸ÄÃû)£¬µ±Äã·´ÐòÁл¯Ê±£¬¾Í»á³öÏÖ ExceptionµÄ£¬ÕâÑù¾Í»áÔì³É²»¼æÈÝÐÔµÄÎÊ Ìâ¡£ ? µ«µ±serialVersionUIDÏàͬʱ£¬Ëü¾Í»á½« ²»Ò»ÑùµÄfieldÒÔtypeµÄȱʡֵDeserialize£¬ Õâ¸ö¿ÉÒԱܿª²»¼æÈÝÐÔµÄÎÊÌâ¡£