异常,集合,I/O流中的一些区别

一.throw和throws的区别:

        throws  Exception   表明可能抛出的异常

          throw new Exception();手动抛出异常

          throws声明异常    throw抛出异常

          有throw时必须得有throws,如若没有则运行错误   则有throws时不一定要有throw

          抛出异常  是不是首先得声明了有异常     声明异常可以不抛出异常  

二.error和exception区别:

          error是程序员无法解决的错误,exception是程序员可以解决的错误

 三.运行时异常和checked异常的区别:

        对于异常分为两种:检查异常和非检查异常(运行异常)

        检查异常:编译时被检测的异常(try和catch),编译不通过,检查语法(thow和thows配套使用)

        非检查异常:编译时不被检查的异常

        主要表现在以下两个方面 :

        (1)如何定义方法

        (2)如何处理抛出的异常

四.字节流和字符流的区别:

   java流在处理上分为字符流和字节流。

   (1)字符流(Writer/Reader)处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串。

   (2)字节流(OutputStream/InputStream)处理单元为1个字节,操作字节和字节数组。

   (3)字节流可用于任何类型

   (4)字符流只能处理字符或者字符串。

   (5)字节流在操作的时候本身是不会用到缓冲区的,是与文件本身直接操作的,所以字节流在操作文件时,即使不关闭资源,文件也能输出。

   (6)字符流在操作的时候是使用到缓冲区的。如果字符流不调用close或flush方法,则不会输出任何内容。 

      所有文件的储存是都是字节(byte)的储存

五.Java.util有哪些常用的接口和类

      Date时间类、Arrays包含用于操作数组的各种方法、File类、List、Map、Set、ArrayList

六.Arraylist和Linklist的异同

     1.ArrayList是实现了基于动态数组的数据结构(有下标查询效率高),LinkedList是基于链表结构(无下标插入数据效率高)。

     2.对于随机访问的get和set方法,ArrayList要优于LinkedList,因为LinkedList要移动指针。

     3.对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。

七.list、set、map的异同

    面试题:你说说collection里面有什么子类。

       面试的时候听到这个问题的时候,你要知道,面试官是想考察List,Set

       list和set是实现了collection接口的。

       Set:1.不允许重复对象

           2. 无序容器,你无法保证每个元素的存储顺序,TreeSet通过 Comparator  或者 Comparable 维护了一个排序顺序。

                3. 只允许一个 null 元素

                4.Set 接口最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 实现的 HashSet;TreeSet 还实现              了           SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和 compareTo() 的定义进行排序的有序容器。

     Map:1.Map不是collection的子接口或者实现类。Map是一个接口。

          2.Map 的 每个 Entry 都持有两个对象,也就是一个键一个值,Map 可能会持有相同的值对象但键对象必须是唯一的。

          3. TreeMap 也通过 Comparator  或者 Comparable 维护了一个排序顺序。

          4. Map 里你可以拥有随意个 null 值但最多只能有一个 null 键。

          5.Map 接口最流行的几个实现类是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用)

八.输入流和输出流的区别:

      输入输出的方向是针对程序而言,向程序中读入数据,就是输入流;从程序中向外写出数据,就是输出流从磁盘、网络、键盘读到内存,就是输入流,用 InputStream 或 Reader写到磁盘、网络、屏幕,都是输出流,用 OuputStream 或 Writerstream结尾都是字节流,reader和writer结尾都是字符流两者的区别就是读写的时候一个是按字节读写,一个是按字符。

      在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。

      只是读写文件,和文件内容无关的,一般选择字节流。

posted @ 2020-05-13 21:02  千石无谓  阅读(139)  评论(0编辑  收藏  举报