摘要:
JVM的艺术-对象创建与内存分配机制深度剖析 引言 本章将介绍jvm的对象创建与内存分配。彻底带你了解jvm的创建过程以及内存分配的原理和区域,以及包含的内容。 对象的创建 类加载的过程 固定的类加载执行顺序: 加载 验证 准备 初始化 卸载 的执行顺序是一定的 为什么解析过程没有在这个执行顺序中? 阅读全文
摘要:
*喜欢文章,动动手指点个赞 * 引言 亲爱读者你们好,关于jvm篇章的连载,前面三章讲了类加载器,本篇文章将进入jvm领域的另一个知识点,java内存模型。彻底的了解java内存模型,是有必要的。只要掌握了java的内存模型,内存空间分为哪些区域,才能更好地理解,java是如何创建对象以及如何分配对 阅读全文
摘要:
正文: 在上一篇,我们对IOC核心部分流程已经分析完毕,相信小伙伴们有所收获,从这一篇开始,我们将会踏上新的旅程,即Spring的另一核心:AOP! 首先,为了让大家能更有效的理解AOP,先带大家过一下AOP中的术语: 切面(Aspect):指关注点模块化,这个关注点可能会横切多个对象。事务管理是企 阅读全文
摘要:
JVM的艺术—类加载器篇(三) 引言 今天我们继续来深入的剖析类加载器的内容。上篇文章我们讲解了类加载器的双亲委托模型、全盘委托机制、以及类加载器双亲委托模型的优点、缺点等内容,没看过的小伙伴请加关注。在公众号内可以找到,jvm的艺术连载篇。欢迎各位小伙伴儿的持续关注,同时也感谢各位读者一直以来的支 阅读全文
摘要:
前言 现代计算机通常由CPU,以及主板、内存、硬盘等主要硬件结构组成,而决定计算机性能的最核心部件是CPU+内存,CPU负责处理程序指令,内存负责存储指令执行结果。在这个工作机制当中CPU的读写效率其实是远远高于内存的,为提升执行效率减少CPU与内存的交互,一般在CPU上设计了缓存结构,常见的为 阅读全文
摘要:
Java版本:8u261。 1 简介 ScheduledThreadPoolExecutor即定时线程池,是用来执行延迟任务或周期性任务的。相比于Timer的单线程,定时线程池在遇到任务抛出异常的时候不会关闭整个线程池,更加健壮(需要提一下的是:ScheduledThreadPoolExecutor 阅读全文
摘要:
Java版本:8u261。 对于Java中的线程池,面试问的最多的就是线程池中各个参数的含义,又或者是线程池执行的流程,彷佛这已成为了固定的模式与套路。但是假如我是面试官,现在我想问一些更细致的问题,你还能答得上来吗?比如: 线程池是如何实现线程复用的? 如果一个线程执行任务的时候抛出异常,那么这个 阅读全文
摘要:
Spring源码分析之循环依赖及解决方案 往期文章: Spring源码分析之预启动流程 Spring源码分析之BeanFactory体系结构 Spring源码分析之BeanFactoryPostProcessor调用过程详解 Spring源码分析之Bean的创建过程详解 正文: 首先,我们需要明白什 阅读全文
摘要:
本文基于JDK-8u261源码分析 1 简介 因为CLH队列中的线程,什么线程获取到锁,什么线程进入队列排队,什么线程释放锁,这些都是不受我们控制的。所以条件队列的出现为我们提供了主动式地、只有满足指定的条件后才能线程阻塞和唤醒的方式。对于条件队列首先需要说明一些概念:条件队列是AQS中除了CLH队 阅读全文
摘要:
本文基于JDK-8u261源码分析 本篇文章为AQS系列文的第二篇,前文请看:[传送门] 第一篇:AQS源码深入分析之独占模式-ReentrantLock锁特性详解 1 Semaphore概览 共享模式就是有多个线程可以同时拿到锁资源,共享模式用Semaphore来举例,其与ReentrantLoc 阅读全文