1. 新生代 老年代的垃圾回收算法:新生代 复制算法 老年代 标记整理算法 原因?

    单纯从算法比较为什么标记整理慢呢,因为多了一次整理堆空间碎片的过程。但是两者用处不一样,抛开使用场景谈效率是不合适的。copy算法是在新生代执行的,因为新生代对象大多朝生夕灭,存活时间短,占内存小,所以一次gc后剩下的对象少而且小,直接从from survivor和eden区copy到to survivor就好了,这叫minor gc。标记整理是老年代常用的,因为老年代对象大而且生存时间长,不适合用copy算法,这叫major gc。minor gc非常频繁,所以用copy算法以较小的空间换时间是合理的。

    你问mark过程如何判断对象活着,对象被gc掉同时需要满足两个条件,一个是gc roots不可达,另一个是没必要执行finalize方法。需要执行finalize方法的对象会加入到守护线程队列中执行finalize方法,一旦执行完毕依旧是gc roots不可达的话则也会被gc掉。

    1. 复制算法 速度快 只有copy的过程 新生代对象小 存活率低 需要复制的对象少 (若整理 需要整理的多)
    2. 整理算法 速度慢 mark —-整理 老年代对象大 存活率高 需要整理的对象少 (若复制 需要复制的多)
  2. 标记复制算法 为什么有三个区域?

  3. 避免hash的方法: 开放地址法;再哈希法(有多个hash函数,再次计算hash值);拉链法;建立公共溢出区

  4. 左连接 右连接 全连接 自连接

  5. sql 聚集group by

  6. spring boot 注解 怎么加载进来

  7. 网络协议 分层

  8. DNS 哪一层

  9. volatile 原理

  10. 原子性 是指什么?

  11. Java 泛型 extend super 字节码?

  12. 路由器 交换机 集线器 (网段 冲突域)

  13. HTTP 协议 和 TCP 协议 responce时 TCP 协议怎么知道 传输的是 HTTP协议

  14. 概率题 贝叶斯

如果觉得有用的话,打赏我吧~