-
序列化和反序列化。对象的属性也要能序列化。transient来修饰,可以自定义序列化,以提高性能。例如只序列化数组成员中的有效元素。查看全部
-
这个总结的比较详细很容易对比记忆!查看全部
-
遍历子目录下的内容。查看全部
-
java编码特点查看全部
-
gbk中文两个字节,英文一个字节。utf-8中文三个字节,英文一个字节。查看全部
-
IO操作可能有异常,可以用throws IOException来抛出异常 if(b<=0xf)判断b是否在十六进制下表示“一位”查看全部
-
FileInputStream继承了InuputStream类查看全部
-
IO流:输入流 输出流 字节流 字符流查看全部
-
RandomAccessFile是java类,可以随机访问java任意位置文件,既可以读操作,也可以写。 迅雷是多线程同时下载一个文件,所以需要知道文件中各指针的位置。 file.write()每次只能写一个字节(八位),如果超过八位,想用write()的话,需要移位操作。 有file.writeInt()、file.length()、file.seek(0)(把指针移到头部)查看全部
-
IllegalArgumentException异常:传递参数有问题 dir.list()返回字符串数组,但只是子(文件或目录),而不包含子目录下一层的文件查看全部
-
String.getBytes()转化成字节序列默认编码为gbk gbk编码中文占用两个字节,英文占用一个字节 utf-8编码中文占用三个字节,英文占用一个字节 java是双字节编码uft-16be utf-16be中文占用2个字节,英文占用2个字节 在中文机器上【直接创建】文本文件,该文本文件只认识ansi编码,但是拷贝来的文件,可以认识任何编码,拷贝内容的文件也可以自动转换编码。查看全部
-
序列化中父子类的构造函数的问题:<br> 1:一个类实现了序列化接口,那么其子类都可以进行序列化<br> 2:序列化的时候,使用子类创建对象的时候会递归调用父类的构造函数——JAVA是单继承的语言,要先有父再有子 3:反序列化的时候,对子类对象进行反序列化操作时,如果其父类没有实现序列化接口,那么其父类的构造函数会被调用——直接父类和间接父类都是如此的,反之,如果父类实现了序列化的接口,则不会被递归调用。编程学习最好自己动手试验试验,这样就一目了然了,当然需要注意自己的实验环境了。查看全部
-
当我们序列化一个对象时,不想序列化这个对象中的某些属性时,我们可以将对应的不想被序列化的属性使用 transient这个关键字来修饰,这样——此属性就不会被JVM默认的序列化了,当然,当我们想对这个属性序列化的时候,也可以自己完成对此属性的序列化。 之所以有这样的功能存在,其原因在与: 1:我想自己序列化某个对象的属性——ArrayList这个类中就有这样的例子——思路是 private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{ s.defaultWriteObject();//把jvm能默认序列化的元素进行序列化操作 s.writeInt(stuage);//自己完成stuage的序列化 } private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException{ s.defaultReadObject();//把jvm能默认反序列化的元素进行反序列化操作 this.stuage = s.readInt();//自己完成stuage的反序列化操作 } 2:我不想序列化某个对象的属性——可能想节省网络流量,也可能不想传递某个对象的属性 3:这样做的目的,有时是为了为我们的代码提高效率,建议分析——ArrayList类中自己包装的序列化和反序列化的操作。将数组中有效的元素,序列化和反序列化,目的是为了能够提高效率。查看全部
-
对象的序列化,反序列化 1)对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 2)序列化流(ObjectOutputStream),是过滤流----writeObject 反序列化流(ObjectInputStream)---readObject 3)序列化接口(Serializable) 对象必须实现序列化接口 ,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准 1:对象的序列化,是指将对象转换成byte序列的过程 2:对象的反序列化,是指将byte序列转换成对象的过程 3:之所以,需要对象的序列化这个操作过程,是因为存储对象、网络、文件之间传输对象是以byte序列的方式进行的,传输对象需要对象序列化这个过程。 当我们接受到序列化流(可能是网络间,也可能是文件间)传递来的byte序列时我们是不能识别的,所以,就需要对象的反序列化的过程。 4:对象序列化和反序列化有相应的类来处理—— 序列化流(ObjectOutputStream),是过滤流----writeObject,将对象写入byte序列流中 反序列化流(ObjectInputStream)---readObject,从byte序列流中获取对象 5:对象序列化有个要求,就是——要实现序列化接口(Serializable) 对象必须实现序列化接口 ,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准,对于序列化和反序列化的处理类来讲对应的类实现了这个接口就能做序列化和反序列化的操作了。查看全部
-
编码问题: (1)编码类型 utf-8(汉字个字节,英文个字节) gbk(汉字个字节,英文个字节) utf-16(java默认编码方式;汉字2个字节,英文2个字节) ANSI(汉字个字节,英文个字节)查看全部
举报
0/150
提交
取消