随笔分类 -  javaSe

摘要:反射 类字节码文件是在硬盘上存储的,是一个个的.class文件。我们在new一个对象时,JVM会先把字节码文件的信息读出来放到内存中,第二次用时,就不用在加载了,而是直接使用之前缓存的这个字节码信息。 字节码的信息包括:类名、声明的方法、声明的字段等信息。在Java中“万物皆对象”,这些信息当然也需 阅读全文
posted @ 2020-09-15 04:44 nohert 阅读(208) 评论(0) 推荐(0)
摘要:设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 观察者模式 有时又被称为 发布-订阅<Publish/Subscribe>模式、 模型-视图<Model/Vi 阅读全文
posted @ 2020-09-15 04:40 nohert 阅读(177) 评论(0) 推荐(0)
摘要:对象拷贝 对象的浅拷贝 浅复制(浅克隆)被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用仍然只指向原来的对象,换言之,浅复制仅仅复制锁考虑的对象,而不复制它所引用的对象。 public class Student implements Cloneable{ String nam 阅读全文
posted @ 2020-09-15 04:36 nohert 阅读(507) 评论(0) 推荐(0)
摘要:编码 什么是编码? 计算机中存储的都是二进制,但是要显示的时候,就是我们看到的却可以有中国 ,a 1 等字符 计算机中是没有存储字符的,但是我们却看到了。计算机在存储这些信息的时候,根据一个有规则的编号,当用户输入a 有a对映的编号,就将这个编号存进计算机中这就是编码。 计算机只能识别二进制数据。 阅读全文
posted @ 2020-09-15 02:08 nohert 阅读(170) 评论(0) 推荐(0)
摘要:操作基本数据类型的流对象 DataInputStream 以及DataOutputStream 查看API文档DataInputStream的信息。发现从底层输入流中读取基本 Java 数据类型。查看方法,有读一个字节,读一个char读一个double 的方法, DataInputStream 从数 阅读全文
posted @ 2020-09-14 23:09 nohert 阅读(165) 评论(0) 推荐(0)
摘要:操作数组的流对象 操作字节数组 ByteArrayInputStream 以及ByteArrayOutputStream toByteArray(); toString(); writeTo(OutputStream); public static void testByteArrayInputSt 阅读全文
posted @ 2020-09-14 23:08 nohert 阅读(147) 评论(0) 推荐(0)
摘要:打印流 PrintStream可以接受文件和其他字节输出流,所以打印流是对普通字节输出流的增强,其中定义了很多的重载的print()和println(),方便输出各种类型的数据。 PrintStream PrintWriter 1,打印流。 PrintStream: 是一个字节打印流,System. 阅读全文
posted @ 2020-09-14 23:06 nohert 阅读(201) 评论(0) 推荐(0)
摘要:Properties 可以和流相关联的集合对象Properties. Map |--Hashtable |--Properties Properties:该集合不需要泛型,因为该集合中的键值对都是String类型。 1,存入键值对:setProperty(key,value); 2,获取指定键对应的 阅读全文
posted @ 2020-09-14 09:58 nohert 阅读(160) 评论(0) 推荐(0)
摘要:对象的序列化 当创建对象时,程序运行时它就会存在,但是程序停止时,对象也就消失了.但是如果希望对象在程序不运行的情况下仍能存在并保存其信息,将会非常有用,对象将被重建并且拥有与程序上次运行时拥有的信息相同。可以使用对象的序列化。 对象的序列化: 将内存中的对象直接写入到文件设备中 对象的反序列化: 阅读全文
posted @ 2020-09-14 09:56 nohert 阅读(240) 评论(0) 推荐(0)
摘要:序列流 也称为合并流。 1. SequenceInputStream 序列流,对多个流进行合并。 SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文 阅读全文
posted @ 2020-09-14 09:52 nohert 阅读(195) 评论(0) 推荐(0)
摘要:装饰器模式 需求:想要在读取的文件的每一行添加行号。 public class IoTest7_BufferedReader { public static void main(String[] args) throws IOException { readFile("c:\\a.txt"); } 阅读全文
posted @ 2020-09-07 03:05 nohert 阅读(131) 评论(0) 推荐(0)
摘要:字符流的缓冲区 查看Reader 发现Reader,操作的是字符,我们就不需要进行编码解码操作,由字符流读到二进制,自动进行解码得到字符,写入字符自动编码成二进制. Reader有一个子类BufferedReader。子类继承父类显然子类可以重写父类的方法,也可以增加自己的新方法。例如一次读一行就是 阅读全文
posted @ 2020-09-07 03:03 nohert 阅读(110) 评论(0) 推荐(0)
摘要:字符流的异常处理 public static void main(String[] args) throws Exception { String path1 = "c:/a.txt"; String path2 = "c:/b.txt"; copyFile2(path1, path2); } /* 阅读全文
posted @ 2020-09-07 03:01 nohert 阅读(122) 评论(0) 推荐(0)
摘要:字符流拷贝文件 一个文本文件中有中文有英文字母,有数字。想要把这个文件拷贝到别的目录中。 我们可以使用字节流进行拷贝,使用字符流呢?肯定也是可以的。、 1.1. 字符流拷贝文件实现1 public static void main(String[] args) throws Exception { 阅读全文
posted @ 2020-09-07 03:00 nohert 阅读(132) 评论(0) 推荐(0)
摘要:Writer Writer中的常见的方法: 1,write(ch): 将一个字符写入到流中。 2,write(char[]): 将一个字符数组写入到流中。 3,write(String): 将一个字符串写入到流中。 4,flush():刷新流,将流中的数据刷新到目的地中,流还存在。 5,close( 阅读全文
posted @ 2020-09-07 02:58 nohert 阅读(136) 评论(0) 推荐(0)
摘要:Reader 方法: 1,int read(): 读取一个字符。返回的是读到的那个字符。如果读到流的末尾,返回-1. 2,int read(char[]): 将读到的字符存入指定的数组中,返回的是读到的字符个数,也就是往数组里装的元素的个数。如果读到流的末尾,返回-1. 3,close() 读取字符 阅读全文
posted @ 2020-09-07 02:56 nohert 阅读(78) 评论(0) 推荐(0)
摘要:字符流 计算机并不区分二进制文件与文本文件。所有的文件都是以二进制形式来存储的,因此,从本质上说,所有的文件都是二进制文件。所以字符流是建立在字节流之上的,它能够提供字符层次的编码和解码。例如,在写入一个字符时,Java虚拟机会将字符转为文件指定的编码(默认是系统默认编码),在读取字符时,再将文件指 阅读全文
posted @ 2020-09-07 02:55 nohert 阅读(178) 评论(0) 推荐(0)
摘要:1.1. 缓冲流 上述程序中我们为了提高流的使用效率,自定义了字节数组,作为缓冲区.Java其实提供了专门的字节流缓冲来提高效率. BufferedInputStream和BufferedOutputStream BufferedOutputStream和BufferedOutputStream类可 阅读全文
posted @ 2020-09-07 02:53 nohert 阅读(109) 评论(0) 推荐(0)
摘要:字节流的异常处理 上述案例中所有的异常都只是进行了抛出处理,这样是不合理的。所以上述代码并不完善,因为异常没有处理。 当我们打开流,读和写,关闭流的时候都会出现异常,异常出现后,后面的代码都不会执行了。假设打开和关闭流出现了异常,那么显然close方法就不会再执行。那么会对程序有什么影响? 案例: 阅读全文
posted @ 2020-09-07 02:51 nohert 阅读(182) 评论(0) 推荐(0)
摘要:字节流文件拷贝 1.1. 字节输入输出流综合使用 通过字节输出流向文件中写入一些信息,并使用字节输入流把文件中的信息显示到控制台上。 public class IoTest3 { public static void main(String[] args) throws IOException { 阅读全文
posted @ 2020-09-07 02:50 nohert 阅读(113) 评论(0) 推荐(0)