java ÐòÁл¯
¶ÔÏóÐòÁл¯(Serializable)ÊÇÖ¸½«¶ÔÏóת»»Îª×Ö½ÚÐòÁеĹý³Ì£¬¶ø·´ÐòÁл¯ÔòÊǸù¾Ý×Ö½ÚÐòÁлָ´¶ÔÏóµÄ¹ý³Ì¡£
ÐòÁл¯Ò»°ãÓÃÓÚÒÔϳ¡¾°£º
1.ÓÀ¾ÃÐÔ±£´æ¶ÔÏ󣬱£´æ¶ÔÏóµÄ×Ö½ÚÐòÁе½±¾µØÎļþÖУ»
2.ͨ¹ýÐòÁл¯¶ÔÏóÔÚÍøÂçÖд«µÝ¶ÔÏó£»
3.ͨ¹ýÐòÁл¯ÔÚ½ø³Ì¼ä´«µÝ¶ÔÏó¡£
¶ÔÏóËùÊôµÄÀà±ØÐëʵÏÖSerializable»òÊÇExternalizable½Ó¿Ú²ÅÄܱ»ÐòÁл¯¡£¶ÔʵÏÖÁËSerializable½Ó¿ÚµÄÀ࣬ÆäÐòÁл¯Óë·´ÐòÁл¯²ÉÓÃĬÈϵÄÐòÁл¯·½Ê½£¬Externalizable½Ó¿ÚÊǼ̳ÐÁËSerializable½Ó¿ÚµÄ½Ó¿Ú£¬ÊǶÔSerializable µÄÀ©Õ¹£¬ÊµÏÖÁËExternalizable½Ó¿ÚµÄÀàÍêÈ«×Ô¼º¿ØÖÆÐòÁл¯Óë·´ÐòÁл¯ÐÐΪ¡£
Java.io.ObjectOutputStream´ú±í¶ÔÏóÊä³öÁ÷£¬Æä·½·¨writeObject(Object obj)¿ÉÒÔʵÏÖ¶ÔÏóµÄÐòÁл¯£¬½«µÃµ½µÄ×Ö½ÚÐòÁÐдµ½Ä¿±êÊä³öÁ÷ÖС£Java.io.ObjectInputStream´ú±í¶ÔÏóÊäÈëÁ÷£¬Æä readObject()·½·¨ÄÜ´ÓÔ´ÊäÈëÁ÷ÖжÁÈ¡×Ö½ÚÐòÁУ¬½«Æä·´ÐòÁл¯Îª¶ÔÏ󣬲¢½«Æä·µ»Ø¡£
JavaµÄÐòÁл¯»úÖÆÖ»ÐòÁл¯¶ÔÏóµÄÊôÐÔÖµ£¬¶ø²»»áÈ¥ÐòÁл¯Ê²Ã´ËùνµÄ·½·¨¡£ÆäʵÕâ¸öÎÊÌâ¼òµ¥Ë¼¿¼Ò»Ï¾ͿÉÒÔ¸ãÇå³þ£¬·½·¨ÊDz»´ø×´Ì¬µÄ£¬¾ÍÊÇһЩָÁָÁîÊDz»ÐèÒªÐòÁл¯µÄ£¬Ö»ÒªÄãµÄJVM classloader¿ÉÒÔloadµ½Õâ¸öÀ࣬ÄÇôÀà·½·¨Ö¸Áî×ÔÈ»¾Í¿ÉÒÔ»ñµÃ¡£ÐòÁл¯ÕæÕýÐèÒª±£´æµÄÖ»ÊǶÔÏóÊôÐÔµÄÖµ£¬ºÍ¶ÔÏóµÄÀàÐÍ¡£
ÐòÁл¯ÔËÐÐʱʹÓÃÒ»¸ö³ÆÎª serialVersionUID µÄ°æ±¾ºÅÓëÿ¸ö¿ÉÐòÁл¯ÀàÏà¹ØÁª£¬¸ÃÐòÁкÅÔÚ·´ÐòÁл¯¹ý³ÌÖÐÓÃÓÚÑéÖ¤ÐòÁл¯¶ÔÏóµÄ·¢ËÍÕߺͽÓÊÕÕßÊÇ·ñΪ¸Ã¶ÔÏó¼ÓÔØÁËÓëÐòÁл¯¼æÈݵÄÀà¡£Èç¹û½ÓÊÕÕß¼ÓÔØµÄ¸Ã¶ÔÏóµÄÀàµÄ ¿ÉÐòÁл¯Àà¿ÉÒÔͨ¹ýÉùÃ÷ÃûΪ "serialVersionUID" µÄ×ֶΣ¨¸Ã×ֶαØÐëÊǾ²Ì¬ (static)¡¢×îÖÕ (final) µÄ long ÐÍ×ֶΣ©ÏÔʽÉùÃ÷Æä×Ô¼ºµÄ serialVersionUID£º ½¨ÒéÐèÒªÐòÁл¯µÄ¶ÔÏó¶¼ÉùÃ÷×Ô¼ºµÄÐòÁл¯id£¬ÒòΪjava ĬÈϵÄÐòÁл¯id µÄÉú³ÉÔÚ ÐòÁл¯·½ºÍ·´ÐòÁл¯·½Éú³ÉµÄÖµ¿ÉÄܲ»Ò»Ö¡£
Èç¹ûÐòÁл¯ÀàµÄÓë·´ÐòÁл¯À಻һÑù»áÅ×Òì³£
java.lang.ClassCastException: com.taobao.serialize.test.DomainObject cannot be cast to com.taobao.serialize.test.DomainObject_2
Èç¹ûÐòÁл¯ÀàµÄÓë·´ÐòÁл¯ÀàµÄ ÐòÁл¯id ²»Ò»Ñù£¬Ôò»áÅ×Òì³£
java.io.InvalidClassException: com.taobao.serialize.test.DomainObject; local class incompatible: stream classdesc serialVersionUID = 697337918497451172, local class serialVersionUID = 697337918497451171
Ö»ÒªÐòÁл¯id Ò»Ñù£¬£¬ÐòÁл¯ÀàÃûÒ»Ñù£¬ÐòÁл¯µÄÐÅÏ
Ïà¹ØÎĵµ£º
ºÜ¶àÈ˶¼ÖªµÀÔÚswingÖмÓÈëjPopupMenu×é¼þºó¿ÉÒÔÔÚÊó±êµÄÇý¶¯ÏÂ̽³öÒ»¸ö²Ëµ¥£¬µ«ÊÇ£¬Èç¹ûÓÃÒ»°ã×ö·¨£¬ÔÚ½çÃæÉϵ¥»÷×ó¼üÒ²»áµ¯³ö²Ëµ¥£¬ÄÇôÓÐûÓа취ÔÚÖ»Óе¥»÷ÓÒ¼ü²Åµ¯³ö²Ëµ¥ÄØ£¿ÆäʵֻÊÇÓõ½ÁËÒ»¸öС¼¼ÇÉ¡£ ÄãµÄµ¯³öÊó±ê²Ëµ¥Êó±êÇý¶¯Ñ¡Ôñ MouseReleased È»ºóÔÙÔÚ¼àÌýʼþµÄ·½·¨ÖмÓÈëÏÂÃæµÄ´úÂë¾Í¿ÉÒÔÁË£º if(evt.isPop ......
javaÖеķâ×°
·â×°£¬Ò»¸ö¶ÔÏóºÍÍâ½çµÄÁªÏµÓ¦µ±Í¨¹ýÒ»¸öͳһµÄ½Ó¿Ú£¬Ó¦µ±¹«¿ªµÄ¹«¿ª£¬Ó¦µ±Òþ²ØµÄÒþ²Ø¡££¨¶ÔÏóµÄÊôÐÔÓ¦µ±Òþ²Ø£©£¬Ò»¸ö¶ÔÏóµÄÄÚ²¿ÊÇ͸Ã÷µÄ£¬¾ÍÊǰѶÔÏóÄÚ²¿µÄ¿É͸Ã÷ÐÔºÍÒþ²ØµÄÌØÐÔÇø·Ö¿ª£¬¸Ã͸Ã÷µÄ͸Ã÷£¬¸ÃÒþ²ØµÄÒþ²Ø¡£
£¨·â×°µÄÊôÐÔ£©javaÖÐÀàµÄÊôÐԵķÃÎÊȨÏÞ ......
1. ÉùÃ÷(Declarations)
5.1 ÿÐÐÉùÃ÷±äÁ¿µÄÊýÁ¿(Number Per Line)
ÍÆ¼öÒ»ÐÐÒ»¸öÉùÃ÷£¬ÒòΪÕâÑùÒÔÀûÓÚдעÊÍ¡£Ò༴£¬
int level; // indentation level
int size; // size of table
ÒªÓÅÓÚ£¬
int level, size;
²»Òª½«²»Í¬ÀàÐͱäÁ¿µÄÉùÃ÷·ÅÔÚͬһÐУ¬ÀýÈ磺
int foo, foo ......
1. ¿Õ°×(White Space)
7.1 ¿ÕÐÐ(Blank Lines)
¿ÕÐн«Âß¼Ïà¹ØµÄ´úÂë¶Î·Ö¸ô¿ª£¬ÒÔÌá¸ß¿É¶ÁÐÔ¡£ÏÂÁÐÇé¿öÓ¦¸Ã×ÜÊÇʹÓÃÁ½¸ö¿ÕÐУº
·Ò»¸öÔ´ÎļþµÄÁ½¸öƬ¶Î(section)Ö®¼ä
·ÀàÉùÃ÷ºÍ½Ó¿ÚÉùÃ÷Ö®¼ä
ÏÂÁÐÇé¿öÓ¦¸Ã×ÜÊÇʹÓÃÒ»¸ö¿ÕÐУº
·Á½¸ö·½·¨Ö®¼ä
··½ ......
ÔÚÏÖʵ¹¤×÷ÖУ¬ÎÒÃdz£³£ÐèÒª±£´æÒ»Ð©ÏµÍ³ÅäÖÃÐÅÏ¢£¬´ó¼ÒÒ»°ã¶¼»áÑ¡ÔñÅäÖÃÎļþÀ´Íê³É£¬±¾Îĸù¾Ý±ÊÕß¹¤×÷ÖÐÓõ½µÄ¶ÁÈ¡ÅäÖÃÎļþµÄ·½·¨Ð¡Ð¡×ܽáһϣ¬Ö÷ÒªÐðÊöµÄÊÇspring¶ÁÈ¡ÅäÖÃÎļþµÄ·½·¨¡£
Ò».¶ÁÈ¡xmlÅäÖÃÎļþ
(Ò»)н¨Ò»¸öjava bean(HelloBean.java)
java ´úÂë
1. package chb.demo.vo;
2. ......