Java序列化的机制和原理(讲的很详细也很易懂)
本文讲解了Java序列化的机制和原理。从文中你可以了解如何序列化一个对象,什么时候需要序列化以及Java序列化的算法。
00 00 00 0B: 11, containVersion的值.
0x70:TC_NULL,没有超类了。
0x49: 域类型. 49 代表"I", 也就是Int..
00 0E: 域名字长度.
63 6F 6E 74 61 69 6E 56 65 72 73 69 6F 6E: containVersion, 域名字描述.
0x78: TC_ENDBLOCKDATA对象块结束的标志.
0x73: TC_OBJECT, 声明这是一个新的对象.
0x72: TC_CLASSDESC声明这里开始一个新Class.
00 07: 类名的长度.
63 6F 6E 74 61 69 6E: contain,类名描述.
FC BB E6 0E FB CB 60 C7: SerialVersionUID, 序列化ID.
0x02: Various flags. 标记号. 该值声明该对象支持序列化
00 01: 类内的域个数。
00 00 00 42: 66, version域的值.
00 00 00 0A: 10, parentVersion域的值.
0x49: 域类型. 49 代表"I", 也就是Int.
00 0D: 域名字长度.
70 61 72 65 6E 74 56 65 72 73 69 6F 6E: parentVersion,域名字描述。
0x78: TC_ENDBLOCKDATA,对象块结束的标志。
0x70: TC_NULL, 说明没有其他超类的标志。.
0x72: TC_CLASSDESC. 声明这个是个新类.
00 06: 类名长度.
70 61 72 65 6E 74: parent,类名描述。
0E DB D2 BD 85 EE 63 7A: SerialVersionUID, 序列化ID.
0x02: 标记号. 该值声明该对象支持序列化.
00 01: 类中域的个数.
0x4C: 域的类型.
00 03: 域名字长度.
63 6F 6E: 域名字描述,con
0x74: TC_STRING. 代表一个new String.用String来引用对象。
00 09: 该String长度.
4C 63 6F 6E 74 61 69 6E 3B: Lcontain;, JVM的标准对象签名表示法.
0x78: TC_ENDBLOCKDATA,对象数据块结束的标志
0x49: 域类型. 49 代表"I", 也就是Int.
00 07: 域名字的长度.
76 65 72 73 69 6F 6E: version,域名字描述.
0x72: TC_CLASSDESC. 声明这里开始一个新Class。
00 0A: Class名字的长度.
53 65 72 69 61 6c 54 65 73 74: SerialTest,Class类名.
05 52 81 5A AC 66 02 F6: SerialVersionUID, 序列化ID
相关文档:
public class DealLockTest implements Runnable {
static String i = new String();
static String j = new String();
private String str = null;
public DealLockTest(String str) {
this.str = str;
}
public static void main(String[] args) {
new Thread(new DealLockTest("i")).start( ......
Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。(通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发
sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1。)
Servlet 监听器用于监听一些重要事件的发生,监听器对象在事情发生前、发 ......
最近用installanywhere做了一个安装包,卸载的时候总是出现“载入java vm时windows出现错误:3”,很不爽,上网查看原因,原来是因为中间我重新更换过jdk的版本,现在有些软件自带VM或JDK,windows系统通过注册表来管理当前系统所使用的VM和JDK路径,因此,当安装的软件JDK版本和 ......
刚刚运行java HelloWorld.class,老是说:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/class
Caused by: java.lang.ClassNotFoundException: HelloWorld.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  ......
public class VariableParameter {
public static void main(String[] args) {
System.out.println(add(1,2));
System.out.println(add(1,2,3,4));
}
public static int add(int x,int...args){
//是3个点,args必须是 ......