摘要: GC垃圾回收 垃圾回收算法 引用计数法,弃用,原因:内存消耗,并难解决循环引用; 复制算法,主要用在新生代,从from区到to区,缺点: 内存占用大; 标记清除,遍历标记垃圾对象,然后回收垃圾,缺点: 两次遍历,且产生内存碎片; 标记压缩,遍历标记垃圾对象,然后压缩内存空间,不产生内存碎片 垃圾回收 阅读全文
posted @ 2020-10-29 21:07 不变的是改变 阅读(39) 评论(0) 推荐(0) 编辑
摘要: jvm底层 jvm结构 堆 新生代 1. Eden区 2. to区 3. from区 老年代 方法区(非堆) 方法区,java7 的实现叫做永久代,java8 的实现叫做元空间 虚拟机栈 本地方法栈 程序计数器 主要介绍 堆和方法区是线程共享的,而其他的是线程独占的 垃圾回收主要发生在新生代和老年代 阅读全文
posted @ 2020-10-29 15:19 不变的是改变 阅读(44) 评论(0) 推荐(0) 编辑
摘要: #类加载流程 类的加载流程 加载,类加载器把字节码文件加载到内存中,会在堆中有一个Class对象 连接 验证,检验字节码的正确性 准备,为类的静态属性分配内存空间,并默认初始化 解析,加载其他的相关类 初始化,执行显示初始化、代码块初始化以及构造器初始化 类加载器分类 启动类加载器 扩展类加载器 应 阅读全文
posted @ 2020-10-29 15:04 不变的是改变 阅读(29) 评论(0) 推荐(0) 编辑
摘要: HashMap的底层原理 HashMap的7和8的对比 比较项 jdk7 jdk8 底层结构 数组加链表 数组加链表加红黑树 put的时候的差别 链表添加使用头插法 链表添加使用尾插法 数组的定义 entry<> bucket<> node<> 红黑树了解 根节点是黑色的 红节点的子节点必须是黑色 阅读全文
posted @ 2020-10-29 14:48 不变的是改变 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 线程池知识点 线程池的执行流程 接收到请求后首先判断核心线程有没有满; 如果核心线程没满的话,那么就创建一个线程处理请求; 如果核心线程满了的话,那么就看看阻塞队列是否已经满了; 如果阻塞队列没满的话就加入阻塞队列; 如果阻塞队列满了的话就判断最大线程数是否达到; 如果最大线程数没有达到的话,就创建 阅读全文
posted @ 2020-10-29 14:01 不变的是改变 阅读(26) 评论(0) 推荐(0) 编辑