04 2022 档案
线程池ThreadPoolExecutor解析
摘要:线程池的三个优点: 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源, 还会降低系统的稳定性,使用线程池可以进行统一分 阅读全文
posted @ 2022-04-15 16:50 misterD 阅读(59) 评论(0) 推荐(0) 编辑
synchronized关键字的原理
摘要:一、锁对象 Java中没一个对象都可以作为锁。具体的表现形式为以下三种: 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类Class对象。 对于同步方法阔,锁是括号里面的对象。 在JVM规范中可以看到Synchronized在JVM里的实现原理,JVM基于进入和退出Monitor对 阅读全文
posted @ 2022-04-13 17:31 misterD 阅读(56) 评论(0) 推荐(0) 编辑
volatile的定义与实现原理
摘要:一、volatile的定义与实现原理 Java语言规范第3版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了 确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言 提供了volatile,在某些情况下比锁要更加方便。如果一个字段被声明成vo 阅读全文
posted @ 2022-04-11 17:48 misterD 阅读(111) 评论(0) 推荐(0) 编辑
Java线程通讯机制
摘要:多线程环境下,线程通讯的方式主要采用两种方式,一种是内存共享型,一种是消息传递型。 内存共享 使用这种方式进行线程通讯,通常会设置一个共享变量,多个线程操作同一个共享变量,来达到多线程之间通讯的目的。这种方式需要考虑多线程之前的同步问题,这个共享变量必须通过加锁或同步的方式进行保护,一般采用sych 阅读全文
posted @ 2022-04-11 13:32 misterD 阅读(137) 评论(0) 推荐(0) 编辑
【学习整理】【Java虚拟机】垃圾收集器
摘要:垃圾收集器 垃圾收集器对比 Serial ParNew Parallel Scavenge Serial Old Parallel Old CMS G1 回收算法 标记-复制 标记-复制 标记-复制 标记-整理 标记整理 标记-清除 回收分代 新生代 新生代 新生代 老年代 老年代 并行 否 是 否 阅读全文
posted @ 2022-04-06 19:16 misterD 阅读(39) 评论(0) 推荐(0) 编辑
【学习整理】【JAVA虚拟机】Java内存相关面试题
摘要:对象创建时堆内存分配算法 指针碰撞 前提要求堆内存的绝对工整的。 所有用过的内存放一边,没用过的放另一边,中间放一个分界点的指示器,当有对象新生时就已经知道大小了,指示器只需要像没用过的内存那边移动与对象等大小的内存区域即可 空闲列表 假设堆内存并不工整,那么空闲列表最合适。 JVM维护一个列表 , 阅读全文
posted @ 2022-04-06 16:17 misterD 阅读(72) 评论(0) 推荐(0) 编辑
【学习整理】【Java虚拟机】类加载器种类及加载范围
摘要:对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性。比较两个类是否相等,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,如果两个类来自同一份class文件,被一个虚拟机加载,但是是由两个加载器加载,它们也是不相等的。 从虚拟机角度看,只存在两种不 阅读全文
posted @ 2022-04-02 16:06 misterD 阅读(259) 评论(0) 推荐(0) 编辑
【学习整理】【Java虚拟机】类加载的过程
摘要:类加载的过程 Java虚拟机中类加载的全过程,大概可分为加载、验证、准备、解析、初始化这五个阶段。 1.加载 在加载阶段,Java虚拟机大概需要完成三件时区: 通过一个类的全限定名来获取定义此类的二进制流 将这个字节流所代表的的静态存储结构转化为方法区的运行时数据结构 在内存中生成一个代表这个类的j 阅读全文
posted @ 2022-04-01 16:48 misterD 阅读(30) 评论(0) 推荐(0) 编辑




点击右上角即可分享
微信分享提示