Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。从而达到网络传输、本地存储的效果。
本文主要要看看JDK中使用Serializable和Externalizable接口来完成Java对象序列化,并给出部分属性序列化的几种方式,最终做出Serializable和Externalizable接口的几个方面的对比。
注:本文不讨论为什么不用第三方工具包完成序列化等~
Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。从而达到网络传输、本地存储的效果。
本文主要要看看JDK中使用Serializable和Externalizable接口来完成Java对象序列化,并给出部分属性序列化的几种方式,最终做出Serializable和Externalizable接口的几个方面的对比。
注:本文不讨论为什么不用第三方工具包完成序列化等~
以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果。除jar以外对于J2EE来说还有war和ear。区别见下表:
JAR | WAR | EAR | |
英文 | Java Archive file | Web Archive file | Enterprise Archive file |
包含内容 | class、properties文件,是文件封装的最小单元;包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等 | Servlet、JSP页面、JSP标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等 | 除了包含JAR、WAR以外,还包括EJB组件 |
部署文件 | application-client.xml | web.xml | application.xml |
容器 | 应用服务器(application servers) | 小型服务程序容器(servlet containers) | EJB容器(EJB containers) |
级别 | 小 | 中 | 大 |
在本地开发,一般只用一个Apache服务器,然后通过配置文件实现多个站点访问,要么是“虚拟路径(别名)”的形式,要么是“虚拟主机”的形式,相关配置参考如下:
说明:我给Apache设置的端口为:8088,即 Listen 8088(80端口给开发 Java Web 用了)。
打开 Apache 的配置文件 d:/php/xampp/apache/conf/conf/httpd.conf
1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<context-param>和<listener>两个节点。
2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
3、容器将<context-param>转换为键值对,并交给servletContext。
4、容器创建<listener>中的类实例,创建监听器。
今天在编写Java程序的时候,发现这个警告提示,于是google了一下。得到答案如下:
If a serializable class does not explicitly declare a serialVersionUID, then the serialization runtime will calculate a default serialVersionUID value for that class based on various aspects of the class, as described in the Java(TM) Object Serialization Specification.
http://blog.51yip.com/manual/php/index.html
2、Apache2.2手册
http://man.lupaworld.com/content/manage/Apache2.2_chinese_manual/
站内短信很常见,比如系统需要发消息给用户,用户登录之后可以看到这些消息。
id int 自增长id title varchar(128) 短信标题 content varchar(512) 短信内容 createTime datatime 发信时间
font-family采用一种"回退"的形式来保存字体,可以写若干种字体。当第一种字体浏览器不支持的时候,会找第二种字体,一次类推。
font-family:tahoma,arial,\5b8b\4f53,sans-serif;
\5b8b\4f53 就是宋体,采用unicode编码,不采用Simsun编码,因为Firefox和Opera的某些版本不支持Simsun编码
Lua 函数的参数大部分是按值传递的。值传递就是调用函数时,实参把它的值通过赋值运算传递给形参,然后形参的改变和实参就没有关系了。在这个过程中,实参是通过它在参数表中的位置与形参匹配起来的。