Java Serialization transient
1. ʲôÊÇSerialization?
´®Ðл¯(Serialization)ÊǼÆËã»ú¿ÆÑ§ÖеÄÒ»¸ö¸ÅÄËüÊÇÖ¸½«¶ÔÏó´æ´¢µ½½éÖÊ£¨ÈçÎļþ¡¢ÄÚÔÚ»º³åÇøµÈ£©ÖлòÊÇÒÔ¶þ½øÖÆ·½Ê½Í¨¹ýÍøÂç´«Êä¡£Ö®ºó ¿ÉÒÔͨ¹ý·´´®Ðл¯´ÓÕâЩÁ¬ÐøµÄλÊý¾ÝÖØÐ¹¹½¨Ò»¸öÓëÔʼ¶ÔÏó״̬ÏàͬµÄ¶ÔÏó£¬Òò´ËÔÚÌØ¶¨Çé¿öÏÂÒ²¿ÉÒÔ˵Êǵõ½Ò»¸ö¸±±¾£¬µ«²¢²»ÊÇËùÓÐÇé¿ö¶¼ÕâÑù¡£
JavaÓÐSerialization APIΪ¿ª·¢ÕßÌṩÁËÒ»ÖÖ±ê×¼µÄ»úÖÆÀ´´®Ðл¯Àà¡£
2. ΪʲôҪSerilzation?
ÌØ±ðµØ£¬´®Ðл¯Ö÷ÒªÓÐÈýÖÖÓÃ;£º
1£©×÷ΪһÖֳ־û¯»úÖÆ
Èç¹ûʹÓõÄÊÇFileOutputStreamÁ÷µÄ·½Ê½£¬ÔòÊý¾Ý½«±»×Ô¶¯µØÐ´ÈëÎļþÖУ¬
2£©×÷ΪһÖÖ¸´ÖÆ»úÖÆ
Èç¹ûʹÓõÄÊÇByteArrayOutputStreamÁ÷µÄ·½Ê½£¬Êý¾Ý½«Ð´ÈëÄÚ´æÖеÄ×Ö½ÚÊý×éÖС£¸Ã×Ö½ÚÊý×é¿ÉÒÔÓÃÀ´´´½¨³õʼ¶ÔÏóµÄ¸±±¾£¬
3£©×÷ΪһÖÖͨÐÅ»úÖÆ
Èç¹ûÊÇʹÓÃÌ×½Ó×Ö£¨Socket£©Á÷µÄ·½Ê½£¬ÔòÊý¾Ý×Ô¶¯µØÍ¨¹ýÍøÂçÁ¬½Ó´«ÊäÒ»ÁíÒ»¸ö¶Ëµã£¬²¢ÓÉÕâ¸ö¶ËµãÉϵijÌÐòÀ´¾ö¶¨×öʲô¡£
3. SerializationµÄ»ù±¾Ó÷¨£ºÄ¬ÈÏ»úÖÆ
½«Òª´®Ðл¯µÄÀà±ØÐëʵÏÖjava.io.Serializable½Ó¿Ú£¬»òÕßÊǼ̳ÐʵÏÖÁ˸ýӿڵÄÀࡣȻºóͨ¹ýjava.io.ObjectOutputStreamÀàÀ´ÊµÏֳ־û¯£¬Èç¹ûÓñ£´æµ½ÎļþÉÏ»¹ÐèÒªÓõ½java.io.FileOutputStreamÀà¡£ÒòΪObjectOutputStream±»ÈÏΪÊÇjava.io°üÖеĸ߼¶ÀàËùÒÔ¿ÉÓÃËüÀ´°ü×°µÍ¼¶µÄÀàFileOutputStream¡£Ôڳ־û¯¹ý³ÌÖе÷ÓõÄÒ»¸ö·½·¨ÊÇObjectOutputStream¶ÔÏóµÄwriteObject(obj)·½·¨¡£
µ±Òª´ÓÎļþÖлָ´¶ÔÏóʱ£¬ÔòÊÇʹÓÃjava.io.OjbectInputStreamÓëFileInputStreamÀ࣬µ÷ÓÃÒ»·½·¨ÊÇObjectInputStream¶ÔÏóµÄreadObject()·½·¨¡£
ʾÀý1£º
/*¶¨ÒåÒ»¸öʵÏÖÁËSerializable½Ó¿ÚµÄÀࣺCat*/
import java.io.*;
public class Cat implements Serializable {
private String name;
public Cat () {
this.name = "new cat";
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
/*½«CatÀàµÄ¶ÔÏó´®Ðл¯Óë·´´®Ðл¯*/
import java.io.*;
public class CatDemo {
public st
Ïà¹ØÎĵµ£º
ÎÒÃÇÎªÊ²Ã´ÒªÈ¥ÃæÊÔ ? ÃæÊÔµÄÄ¿µÄÊÇʲô ?
ÃæÊÔÒª½â¾öÄöÎÊÌâ ?
Ò»¡¢ÃæÊÔµÄÄ¿µÄ
¶þ¡¢ÃæÊÔǰµÄ×¼±¸
Èý¡¢ÃæÊÔ³£¼ûÎÊÌâ½â´ð
A¡¢ÏîÄ¿¾Àí³£¼ûÎÊÌâ
B ......
ÏÖÔÚÓÃlinuxµÄÅóÓÑÔ½À´Ô½¶àÁË£¬Ç°¼¸Ìì¾ÍÓÐÁ½¸öÅóÓÑÎÊÎÒlinuxÏÂÔõôÅäÖÃjava»·¾³£¬ÎÒÏ뻹ÓкܶàÅóÓÑÏëÁ˽âѧϰÕâ·½ÃæµÄ¶«Î÷£¬¾Íдһ¸öÍêȫһµãµÄlinux java»·¾³ÅäÖðɣ¬Ï£Íû¶Ô´ó¼ÒÓаïÖú¡£
Ò». ÏÂÔØjdk5.0 for linux
¡¡¡¡µ½sunµÄÖ÷Ò³ http://java.sun.com/j2se/1.5.0/download.jsp ÏÂÔØjdk°²×°Îļþjdk-1_5_0_05-linux-i586 ......
ij֪ÃûÃÅ»§ÍøÕ¾µÄÒ»µÀ±ÊÊÔÌâ
public class Test {
public static void stringUpd(String str) {
str = str.replace("j", "l");
System.out.println(str);
}
public static void stringBufferUpd(StringBuffer bf) {
bf.append("c");
System.out.println(bf);
}
......
ÔÚJSPÀ»ñÈ¡¿Í»§¶ËµÄIPµØÖ·µÄ·½·¨ÊÇ£ºrequest.getRemoteAddr£¨£©£¬ÕâÖÖ·½·¨Ôڴ󲿷ÖÇé¿ö϶¼ÊÇÓÐЧµÄ¡£µ«ÊÇÔÚͨ¹ýÁËApache£¬SquidµÈ·´Ïò´úÀíÈí¼þ¾Í²»ÄÜ»ñÈ¡µ½¿Í»§¶ËµÄÕæÊµIPµØÖ·ÁË¡£
¡¡¡¡
Tag£ºJava ¿Í»§¶Ë ÕæÊµIPµØÖ·
ÔÚJSPÀ»ñÈ¡¿Í»§¶ËµÄIPµØÖ·µÄ·½·¨ÊÇ£ºrequest.getRemoteAddr£¨£©£¬ÕâÖÖ·½·¨Ôڴ󲿷ÖÇé¿ ......