美文网首页
2018-12-20今日流程

2018-12-20今日流程

作者: 天道灬酬勤 | 来源:发表于2018-12-20 21:17 被阅读17次

    今日面试题

    1.抽象类和接口的区别

    接口:接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。
    抽象类:抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。

    2.常用的集合有哪些,谈谈对它们的理解

    Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。
    Set接口主要实现了两个实现类:
    HashSet : HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
    TreeSet : TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
    List的特征是其元素以线性方式存储,集合中可以存放重复对象。List接口主要实现类包括:ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与与删除元素的速度慢。
    LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。
    List结构的集合类:ArrayList类,LinkedList类,Vector类,Stack类
    Map结构的集合类:HashMap类,Hashtable类Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继承于Collection接口从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。

    3.==与equals()的区别?

    == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
    equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。

    4.方法重写和方法重载的区别?

    重写与重载的区别.png

    5.throw 和 throws 的区别?

    throw是语句抛出一个异常,throws是方法抛出一个异常;
    throw不能单独使用,不是和try-catch-finally配套使用,就是与throws配套使用,但throws可以单独使用,然后再由异常处理的方法捕获。
    throw是语句抛出一个异常,throws是方法抛出一个异常;
    throw不能单独使用,不是和try-catch-finally配套使用,就是与throws配套使用,但throws可以单独使用,然后再由异常处理的方法捕获。

    6.描述遇到过的异常有哪些?

    (1)java.lang.NullPointerException 空指针异常;出现原因:调用了未经初始化的对象或者是不存在的对象
    (2)java.lang.ClassNotFoundException 指定的类找不到;出现原因:类的名称和路
    径加载错误;通常都是程序试图通过字符串来加载某个类时可能引发异常
    (3)java.lang.NumberFormatException 字符串转换为数字异常;出现原因:字符型数据中包含非数字型字符
    (4)java.lang.IndexOutOfBoundsException 数组角标越界异常;
    (5)java.lang.IllegalArgumentException 方法传递参数错误
    (6)java.lang.ClassCastException 数据类型转换异常
    (7)java.lang.NoClassDefFoundException 未找到类定义错误
    (8)SQLException 操作数据库异常
    (9)java.lang.InstantiationException 实例化异常
    (10)java.lang.NoSuchMethodException 方法不存在异常

    7.final, finally, finalize 的区别?

    final:java中的关键字,修饰符。
    A).如果一个类被声明为final,就意味着它不能再派生出新的子类,不能作为父类被继承。因此,一个类不能同时被声明为abstract抽象类的和final的类。
    B).如果将变量或者方法声明为final,可以保证它们在使用中不被改变.
      1)被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
      2)被声明final的方法只能使用,不能重载。
    finally:java的一种异常处理机制。
      finally是对Java异常处理模型的最佳补充。finally结构使代码总会执行,而不管无异常发生。使用finally可以维护对象的内部状态,并可以清理非内存资源。特别是在关闭数据库连接这方面,如果程序员把数据库连接的close()方法放到finally中,就会大大降低程序出错的几率。
    finalize:Java中的一个方法名。
    Java技术使用finalize()方法在垃圾收集器将对象从内存中清除出去前,做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没被引用时对这个对象调用的。它是在Object类中定义的,因此所的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

    8.String、 StringBuffer、 StringBuilder 的区别?

    区别.png

    9.Java 中有几种类型的流?分别是什么?

    流分类:
    1.Java的字节流
    InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先。
    2.Java的字符流
    Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先

    10.break 和continue 的区别?

    break与continue的区别.png jmyp.png

    相关文章

      网友评论

          本文标题:2018-12-20今日流程

          本文链接:https://www.haomeiwen.com/subject/krbykqtx.html