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 Ò»Ñù£¬£¬ÐòÁл¯ÀàÃûÒ»Ñù£¬ÐòÁл¯µÄÐÅÏ
Ïà¹ØÎĵµ£º
1. ÉùÃ÷(Declarations)
5.1 ÿÐÐÉùÃ÷±äÁ¿µÄÊýÁ¿(Number Per Line)
ÍÆ¼öÒ»ÐÐÒ»¸öÉùÃ÷£¬ÒòΪÕâÑùÒÔÀûÓÚдעÊÍ¡£Ò༴£¬
int level; // indentation level
int size; // size of table
ÒªÓÅÓÚ£¬
int level, size;
²»Òª½«²»Í¬ÀàÐͱäÁ¿µÄÉùÃ÷·ÅÔÚͬһÐУ¬ÀýÈ磺
int foo, foo ......
1¡¢Collection ºÍ CollectionsµÄÇø±ð¡£
CollectionsÊǸöjava.utilϵÄÀ࣬Ëü°üº¬Óи÷ÖÖÓйØjava¼¯ºÏ²Ù×÷µÄ¾²Ì¬·½·¨¡£
CollectionÊǸöjava.utilϵĽӿڣ¬ËüÊǸ÷ÖÖjava¼¯ºÏ½á¹¹µÄ¸¸½Ó¿Ú
2¡¢List, Set, MapÊÇ·ñ¼Ì³Ð×ÔCollection½Ó¿Ú? List£¬SetÊÇ Map²»ÊÇ
3¡¢ArrayListºÍVectorµÄÇø±ð¡£
(1).ͬ²½ÐÔ:VectorÊÇÏß³Ì ......
package thread;
public class ThreadTest {
public static void main(String args[])
{
//new TestThread ().start();
TestThread tt= new TestThread();//´´½¨TestThreadÀàµÄÒ»¸öʵÀý
Thread t= new Thread(tt);//´´½¨Ò»¸öThreadÀàµÄʵÀý
t.start();//ʹÏ߳̽øÈëRunnable״̬
new Thread(tt).star ......
½ñÌìÊÇ2010Äê1ÔÂ23ºÅÁ賿£¬ÎÒºöÈ»×öÁ˸ö¾ö¶¨£¬Ï£Íû²»»áÁ÷²ú¡£ËäÈ»×î½üÒªºÃºÃѧϰӢÓ»¹ÒªÓÃC#Ϊһ¸öŮʿ×öÒ»¸öÔ±¹¤¹ÜÀíϵͳ¡£µ«ÊÇÎÒ¾ö¶¨Ã¿Ìì³é³öÖÁÉÙ3СʱºÃºÃѧϰjava¿´Á½ÖÜÄÜѧµ½Ê²Ã´¶«Î÷¡£
ÏÖÔÚ½ö½ö»á°²×°ÅäÖÃjdk£¬ÓøöecpliseºÍJcreator±àдµã¼òµ¥³ÌÐò¡£Á¬jdk
api¶¼²»È ......
JavaÏß³ÌÊÇJavaÓïÑÔÖÐÒ»¸ö·Ç³£ÖØÒªµÄ²¿·Ö£¬Java5֮ǰ£¬¶àÏ̵߳ÄÓïÑÔÖ§³Ö»¹ÊDZȽÏÈõµÄ£¬ÄÚÈÝÒ²½ÏÉÙ£¬Ð´Ò»¸ö¸´ÔӵĶàÏ̳߳ÌÐòÊÇÏ൱ÓÐÌôÕ½ÐԵġ£
ÔÚJava5ÒÔºó£¬Java¶Ô¶àÏß³Ì×öÁ˺ܶàÀ©Õ¹£¬À©Õ¹²¿·Ö³ÆÖ®Îª²¢·¢°ü¡£Õⲿ·ÖÄÚÈÝ´ó´óÔöÇ¿ÁËJava¶àÏ̱߳à³ÌµÄÄÜÁ¦£¬Í¨¹ýʹÓÃJava5Ïß³ÌÐÂÌØÕ÷µÄAPI£¬¿ÉÒÔºÜÈÝÒ×µÄ×ö³ö¸´Ô ......