包含标签 基础 的文章

JAVA IO流

Java IO流 Java 中 IO 流分为几种? 按照流的流向分,可以分为输入流和输出流; 输出流:从内存读出到文件。只能进行写操作。 输入流:从文件读入到内存。只能进行读操作。 输入和输出,都是相对于系统内存而言 按照操作单元划分,可以划分为字节流和字符流; 字节流:以字节为单位,每次次读入或读出是8位数据。可以读任何类型数据。(1byte(B) = 8bit(位)) 字符流:以字符为单位,每次次读入或读出是16位数据。其只能读取字符类型数据。(1字符=2字节 ) 按照流的角色划分为节点流和处理流。 节点流:直接与数据源相连,读入或读出。 处理流(Filter Stream):与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。(DataInputStream、BufferedInputStream、BufferedReader等) Java Io流的40多个类都是从如下4个抽象类基类中派生出来的。 - InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。 - OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。 不同平台的换行符号: |符号|linux|windows|Java建议写法| |-|-|-|-| |换行符|\n|\r\n|System.getProperty(“line.separator”)| |路径分隔符|/|\|File.separator| |多个路径分隔符|:|;|File.pathSeparator| 字节流和字符流的区别: 字符流使用了缓存区(内存),执行了write(),文件中不会立刻有内容(除非缓冲区满了或者主动刷新缓冲区),需要等输出流对象关闭了,文件中才会有内容;字节流不使用缓冲区,执行了wirite(),文件中立刻就有内容了。 - ### 1.字符流 //步骤为:程序->字符流->缓存(数据先存放到缓存,再从缓存写入文件【主动刷新or流关闭】)->文件 import java.util.*; import java.io.*; public class WriterTest { public static void main(String[] args) { File file = new File("1.txt"); Scanner in = null; Writer out = null; try{ in = new Scanner(System.……

阅读全文

JAVA基础

Java基础知识 1. String 、StringBuilder 、StringBuffer String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[],所以 String 对象是不可变的。 每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象。StringBuffer 每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升,但却要冒多线程不安全的风险。 对于三者使用的总结: 操作少量的数据: 适用String 单线程操作字符串缓冲区下操作大量数据: 适用StringBuilder 多线程操作字符串缓冲区下操作大量数据: 适用StringBuffer 2.== 和 equals == : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)。 equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况: 情况1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过“==”比较这两个对象。 情况2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来比较两个对象的内容是否相等;若它们的内容相等,则返回 true (即,认为这两个对象相等)。 说明: - String 中的 equals 方法是被重写过的,因为 object 的 equals 方法是比较的对象的内存地址,而 String 的 equals 方法比较的是对象的值。 - 当创建 String 类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。如果没有就在常量池中重新创建一个 String 对象。……

阅读全文