JAVASE常见面试题

  1. 接口与抽象类的异同
    相同:

    1. 都可以生成 对应的。class文件。
    2. 都不能创建对象。
    3. 都可以声明引用。
    4. 都可以使用object中的方法。
      不同:
    5. 接口只能定义公开静态常量,隐式存在public static final.
    6. 接口只能定义公开抽象方法。
    7. 没有构造方法,动态代码块,静态代码块。
  2. “==”和equals的区别

    1. ==:比较基本数据类型比较的是数值是否相同;比较引用数据类型比较的是地址是否相同。
    2. equals:只能比较引用数据类型,默认比较地址覆盖之后比较内容。
  3. 类加载:

    1. 概念:当jvm首次使用某个类,这个类的.class文件必须先加载到内存中。
    2. 加载的时机:创建对象、创建子类对象、访问静态属性、调用静态方法。
  4. 缓存
    java预先创建256个整数类型的包装类对象,存放在数组中。

  5. String
    String s=“hello” 和String s2=new String(“hello”)的区别?
    前置创建一个对象,后者创建两个对象。

  6. String和StringBuffer和StringBuilder区别?
    String:内容和长度不变。
    String Buffer和StringBuilder:内容和长度可变。
    StringBuffer:线程安全,效率低。
    StringBulider:线程不安全,效率高。

  7. List三个实现类的特点

    1. ArrayList:底层数组,查询快,增删慢,线程不安全,效率低。
    2. Vector:底层数组,查询快,增删慢,线程安全,效率低。
    3. Linkedlist:底层链表,查询慢,增删快。
  8. HashSet如何保证元素唯一?
    在这里插入图片描述

  9. HashMap和Hashtable的区别?
    Hashmap可以存储null键和null值,线程不安全,效率高。
    Hashtable不可用存储null键和null值,线程安全,效率低。

  10. throws和throw区别?
    throws:
    1. 写在方法声明的后面。
    2. 后面跟的是异常类名。
    3. 后面可以跟多个异常类名。
    throw:
    1. 写在方法的内部。
    2. 后面跟的是异常对象。
    3. 后面只能是一个异常对象。

  11. final、 finally、 finalize的区别?
    final:最终
    修饰类:类不能被继承。
    修饰方法:方法不能被覆盖。
    修饰变量:变量为常量只能赋值一次。
    finally:异常处理的组成部分,作用:释放资源,放在finally中的代码一定会执行。
    finalize:是object类中的方法,用于垃圾回收。

发布了65 篇原创文章 · 获赞 63 · 访问量 2995
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章