JAVA简答(二)

2021-12-30  本文已影响0人  大脸猫猫脸大

15 . Java集合类框架的基本接口有哪些?

image.png
  1. 什么是迭代器(Iterator)?
  1. HashMap和Hashtable有什么区别?
  1. hashCode()和equals()方法的重要性?
    hashCode()和equals()方法组合在一起确定元素的唯一性,当重写equals方法时,必须重写hashCode。
    比较两个元素时,先比较hashcode,如果hashcode不同,则元素一定不相等;如果相同,再用equals判断。

  2. 数组(Array)、列表(ArrayList)和LinkedList有什么区别?
    Array & ArrayList:

ArrayList & LinkedList:

  1. 什么是Java优先级队列(Priority Queue)?
    优先级队列采用了小根堆,元素可以按照任意的顺序插入,却总是按照排序的顺序进行检索。无论何时调用remove方法,总会获得当前优先级队列中的最小元素,但并不是对所有元素都排序。
  1. Enumeration接口和Iterator接口的区别?
  1. Java中垃圾回收
  1. Java堆的结构
    JAVA虚拟机(java8之前的划分)分为三代:年轻代(Young Generation)年老代(Old Generation)持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,如果永久代满了或者是超过了临界值,会触发完全垃圾回收
  1. Java中的异常
    Throwable包含了错误(Error,一般是指与虚拟机相关的问题)异常(Excetion,程序可以处理的异常)
    Exception又包含了运行时异常(RuntimeException, 又叫非检查异常)非运行时异常(又叫检查异常)
  1. throw和throws有什么区别?
    语法:

throw e; //抛出异常对象
public void test throws Exception1,Exception2(){}//声明异常类型

  1. 异常处理完成以后,Exception对象会发生什么变化?
    某个Exception异常被处理后,该对象不再被引用,gc将其标记,在下一个回收过程中被回收。

  2. 动态代理是什么
    想给实现了某个接口的类中的方法,加一些额外的处理,可以给这个类创建一个代理,就是创建一个新的类。这个代理类并不是定义好的,是动态生成的。具有解耦意义,灵活,扩展性强。比如说加日志、加事务、加权限、Spring的AOP等,都是动态代理的应用。

上一篇下一篇

猜你喜欢

热点阅读