【341天】我爱刷题系列100(2018.01.12)

叨叨两句

  1. ~

牛客网——java专项练习079

1

下面关于垃圾收集的描述哪一个是错误的?
正确答案: D
A 使用垃圾收集的程序不须要明确释放对象
B 现代垃圾收集可以处理循环引用问题
C 垃圾收集能提升程序员效率
D 使用垃圾收集的语言没有内在泄漏问题java

也会有内存泄露问题,例如访问资源文件,流不关闭,访问数据库等链接不关闭
java的垃圾收集机制主要针对新生代和老年代的内存进行回收,不一样的垃圾收集算法针对不一样的区域。因此java的垃圾收集算法使用的是分代回收。通常java的对象首先进入新生代的Eden区域,当进行GC的时候会回收新生代的区域,新生代通常采用复制收集算法,将活着的对象复制到survivor区域中,若是survivor区域装在不下,就查看老年代是否有足够的空间装下新生代中的对象,若是能装下就装下,不然老年代就执行FULL GC回收本身,老年代仍是装不下,就会抛出OUtOfMemory的异常

2

下面哪些Java中的流对象是字节流?程序员

正确答案: A B C D
A FileInputStream
B BufferedInputStream
C PushbackInputStream
D ByteArrayInputStream算法

stream结尾都是字节流,reader和writer结尾都是字符流 二者的区别就是读写的时候一个是按字节读写,一个是按字符。 实际使用一般差很少。 在读写文件须要对内容按行处理,好比比较特定字符,处理某一行数据的时候通常会选择字符流。 只是读写文件,和文件内容无关的,通常选择字节流。
Java主要分为字节流和字符流以下:

字节流:
InputStream 
|-- FileInputStream (基本文件流) 
|-- BufferedInputStream 
|-- DataInputStream 
|-- ObjectInputStream
字符流
Reader 
|-- InputStreamReader (byte->char 桥梁) 
|-- BufferedReader (经常使用) 
Writer 
|-- OutputStreamWriter (char->byte 桥梁) 
|-- BufferedWriter 
|-- PrintWriter (经常使用)