JAVA面试题(38)

    本文首发于cartoon的博客
    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/interview-question/java-interview-question38/

  • 说一下堆栈的区别?
    • 存放数据类型的不同
      • 栈存放基本类型变量和对象的引用变量
      • 堆存放通过new关键字创建的对象和数组
    • 内存回收的不同
      • 栈中数据超过作用域则被释放
      • 堆中数据的回收受垃圾回收机制的控制
  • 队列和栈是什么?有什么区别?
    • 队列是FIFO的数据结构,栈是FILO的数据结构
    • 插入数据时,两者都是从尾部进行插入
    • 返回数据时,队列是返回尾部数据,栈是返回头部数据
    • 在选用基础数据结构中,因操作数据都为端口数据,建议使用链表
      • 队列使用带头指针尾指针的链表
      • 栈选用带尾指针的链表
  • 什么是双亲委派模型
    • 子加载器收到类加载请求后委派到父加载器加载
    • 在父加载器无法完成请求后子加载器才尝试加载
  • 说一下类加载的执行过程
    • 加载
      • 将class文件加载到class文件中
    • 链接
      • 将类合并到JRE中
    • 初始化
      • 加载并连接未被加载和连接的类中
      • 初始化未初始化的直接父类
      • 依次执行初始化语句