有关Java学习的记录Two

  1. 流(stream)是指计算机的输入输出操作中各部件之间的数据流动。按照数据的传输方向,流可分为输入流与输出流先进先出,顺序存取,只读或只写
  2. 缓冲流:为一个流配备一个缓冲区,一个缓冲区就是专门用于传送数据的一块内存。
  3. I/O流:Java语言提供了java.io包,该包中的每一个类都代表了一种特定的输入或输出流。
  4. 两种类型的输入输出流:一种面向字节的流:数据处理以字节为基本单位,每次读写8位二进制;一种面向字符的流,用于字符数据处理,一次读写16位二进制数,并将其左一个字符而不是二进制来处理。
  5. 字符流的源或目标通常是文本文件。Reader和Writer是字符流的父类,都是抽象类。两大类:一类用来从数据源读入数据或往目的地写出数据(节点流),另一类对数据执行某种处理(处理流)。Java把一个汉字或英文字母作为一个字符对待,回车或换行作为两个字符对待。BufferReader使用时必须创建FileReader类对象,在以该对象为参数创建BufferedReader类的对象。需要将执行读写操作的语句包括在try块中,并通过相应的catch块来处理可能产生的异常。
  6. flush()方法将缓冲区中的数据写到文件中。out对象的write()方法写入数据时,不会写入回车,因此需要使用newLine()方法在每行数据后加入回车,以保证目标文件与源文件相一致。
  7. public FileReader(String name); //根据文件名创建一个可读取的输入流对象
    public BufferedReader(Reader in); //创建缓冲区字符输入流
    public BufferedReader(Reader in,int size); //创建输入流并设置缓冲区大小
    public FileWriter(String name); //根据文件名创建一个可写入的输出流对象
    public FileWriter(String name,Boolean a); //a 为真,数据将追加在文件后面
    public BufferedWriter(Writer out); //创建缓冲区字符输出流
    public BufferedWriter(Writer out,int size); //创建输出流并设置缓冲区大小
  8. InputStream类和OutputStream类是所有字节流的父类,都是抽象类。FileInputStream和FilerOutputStream是其的直接子类,分别实现了在数据的读写操作的同时能对所传输的数据做指定类型或格式的转换,即可实现对二进制字节数据的理解和编码转换。DataInputStream的读入操作如遇到文件结尾就会抛出EOFExcaption。如果在读取过程中出现异常就属于IOException.
  9. DataInputStream(InputStream in); //创建新输入流,从指定的输入流 in 读数据
    DataOutputStream(OutputStream out); //创建新输出流,向指定的输出流 out 写数据
  10. 标准输入:System.in(BufferedInputStream);标准输出:System.out(PrintStream);标准错误输出:System.err(PrintStream)
  11. System.dirSep表示目录分隔符。RandomAccessFile类用于随机文件的创建和访问。在其创建方法中的mode(r:只读方式;rw:读写方式)
  12. Java.util.zip包提供了可对文件的压缩和解压进行处理的类。它们继承自字节流OutputStream和InputStream。其中GZIPOutputStream和ZIpOutputStream可分别把数据压缩成GZIP和ZIP格式。
  13. 向量和数组相似,都可以保存一组数据(数据列表),但是数组的大小是固定,一旦制定,就不能改变。而向量却提供了一种类似于“动态数组”的功能,向量与数组的重要区别之一就是向量的容量可变。可以在向量的任意位置插入不同类型的对象,无需考虑对象的类型,也无需考虑向量的容量。向量只能存储对象,不能直接存储简单数据类型。
  14. 一个Hashtable中的所有关键字都是唯一的。
  15. 在写GUI程序时,Swing和AWT都能作用。更建议使用Swing。一个基于Swing的应用程序在任何平台上都会有相同的外观和风格,AWT不是。
  16. TCP/IP分为四个层次:
    网络接口层:负责接收和发送物理帧;
    网络层:负责相邻节点之间的通信;
    传输层:负责起点到终点的通信;
    应用层:提供诸如文件传输、电子邮件等应用程序。

  17. java.net包中有InetAddress类的定义,用于IP地址和域名。统一资源定位符URL是www客户机访问Internet时用来标识资源的名字和地址。超文本链路由统一资源定位符URL维持。一个URL对象可以表示一个网络资源。程序利用URL能实现Internet寻址,网络资源的定位连接,在客户机与服务器之间直接访问等。URLConnection对象相当于完成对指定URL的一个HTTP连接。
  18. 多态性是指允许不同子类型的对象对同一消息做出不同的响应方法重载(overload)实现的是编译时的多态性(前绑定),方法重写(override)实现的是运行时多态性(后绑定)。实现运行时多态:①方法重写(子类继承父类并重写父类中已有的或抽象的方法);②对象造型(用父类型引用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)重写Overriding是父类与子类之间多态性的一种表现,重载Overload是一个类中多态性的一种表现。
  19. Interface和abstract:接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。抽象类中的成员可以是private,默认,protected,public,而接口中的成员全都是public
  20. 直接for循环效率最高,其次是迭代器和forEach操作。
  21. java反射机制:运行时取得类的方法和字段相关信息;创建某个类的新实例;取得字段引用直接获取和设置对象字段,无论访问修饰符是什么;用处:观察或操作应用程序的运行时行为;调试或测试程序,因为可以直接访问方法,构造函数和成员字段;通过名字调用不知道的方法并使用该信息来创建对象和调用方法。
  22. 泛型:使用泛型类型可以最大限度地重用代码,保护类型的安全以及提高性能(创建集合类),在性能上不如数组快

你可能感兴趣的:(有关Java学习的记录Two)