一.对象序列化
1.定义:把一个对象通过I/O流写到文件(持久性介质)上的过程叫做对象的序列化。
2.序列化接口:Serializable
此接口没有任何的方法,这样的接口称为标记接口。
3.不是所有对象都能序列化的,只有实现了Serializable的类,他的实例对象才是可序列化的。
4.Java种定义了一套序列化规范,对象的编码和解码方式都是已经定义好的。
5.class ObjectOutputStream和ObjectInputStream也是带缓冲的过滤流,使节点流直接获得输出对象
可以用来向文件中写入八种基本数据类型和对象类型。
最有用的方法:
(1)writeObject(Object b)
(2)readObject()返回读到的一个对象,但是需要我们注意的是,该方法不会以返回null表示读到文件末尾。
而是当读到文件末尾时会抛出一个IOException;
6.序列化一个对象并不一定会序列化该对象的父类对象
7.瞬间属性(临时属性)不参与序列化过程。
8.所有属性必须都是可序列化的,特别是当有些属性本身也是对象的时候,要尤其注意这一点。
序列化的集合就要求集合中的每一个元素都是可序列化的。
9.用两次序列化把两个对象写到文件中(以追加的方式),与用一次序列化把两个对象写进文件的大小是不同的。
因为每次追加时都会在文件中加入开始标记和结束标记。所以对象的序列化不能以追加的方式写到文件中。
二、transient关键字
1.用transient修饰的属性为临时属性。
三.分析字符串工具java.util. StringTokenizer;
1.string tokenizer 类允许应用程序将字符串分解为标记
2.可以在创建时指定,也可以根据每个标记来指定分隔符(分隔标记的字符)集合。
3.StringTokenizer(s,”:”) 用“:”隔开字符,s 为String对象。
/*********************************************************/
import java.util.StringTokenizer;
public class TestStringTokenizer {
public static void main(String[] args) {
String s = "Hello:Tarena:Chenzq";
StringTokenizer st = new StringTokenizer(s,":");
while(st.hasMoreTokens()){
String str = st.nextToken();
System.out.println(str);
}}}
/********************************************************/
四、网络的基础知识:
1、ip:主机在网络中的唯一标识,是一个逻辑地址。
127.0.0.1 表示本机地址。(没有网卡该地址仍然可以用)
2、端口:端口是一个软件抽象的概念。如果把Ip地址看作是一个电话号码的话,端口就相当于分机号。
进程一定要和一个端口建立绑定监听关系。端口号占两个字节。
3、协议:通讯双方为了完成预先制定好的功能而达成的约定。
4、TCP/IP网络七层模型:
物理层Physical(硬件)、 数据链路层DataLink(二进制) 、网络层Network(IP协议:寻址和路由)
传输层Transport(TCP协议,UDP协议) 、会话层Session(端口)
表示层Presentation、应用层Application(HTTP,FTP,TELET,SMTP,POPS,DNS)
注:层与层之间是单向依赖关系。对等层之间会有一条虚连接。Java中的网络编程就是针对传输层编程
5、网络通信的本质是进程间通信。
6、Tcp协议和UDP协议
TCP:开销大,用于可靠性要求高的场合。TCP的过程相当于打电话的过程。面向连接,可靠,低效
UDP:用在对实时性要求比较高的场合。UDP的过程相当于写信的过程。无连接,不可靠,效率高
|
|