当前位置: 代码迷 >> 综合 >> java基础之 对象序列化、transient关键字、StringTokenizer
  详细解决方案

java基础之 对象序列化、transient关键字、StringTokenizer

热度:76   发布时间:2023-12-16 00:18:59.0
 一.对象序列化
    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:nimei:simimi";
        StringTokenizer st = new StringTokenizer(s,":");
        while(st.hasMoreTokens()){
            String str = st.nextToken();
            System.out.println(str);
}}}
/********************************************************/
  相关解决方案