别人能做到的事,你也可以!
12
31
spring IOC源码解析 spring IOC源码解析
前言spring 是当前最广泛使用的开源框架,而spring framework 则是spring全家桶的基础。spring framework最重要的是 IOC 和 AOP。其中 IOC 又是Spring framework 的基础。今天
2020-12-31
22
从0到1 - 带你了解线程池 从0到1 - 带你了解线程池
1. 线程线程是调度CPU的最小单位,线程模型分为 ULT 和 KLT。 JVM 使用的是KLT模型,java线程和操作系统os线程保持着一对一的映射关系,也就是说每创建一个java线程就意味着在操作系统里新建了一个os线程。
2020-12-22
16
【MySQL】删库跑路?了解下bin-log! 【MySQL】删库跑路?了解下bin-log!
操作生产数据库时每一个操作都需要反复审核。任意的小错误,都会导致线上“大灾难”!“从删库到跑路”,可以说是IT业内老梗了。 但是真的不小心误删了,真的就无法挽救了吗? 其实也没这么夸张,真实的生产数据库往往“热备”和“冷备”同时进行
2020-12-16
11
09
垃圾回收算法和常见的垃圾回收器(CMS+G1) 垃圾回收算法和常见的垃圾回收器(CMS+G1)
垃圾回收算法垃圾回收算法分类 分代收集理论现在市面上常见的垃圾回收器都采用了分代收集理论。所谓分代收集就是根据对象的存活周期将内存分为新生代和老年代。详细可查看JAVA内存模型在新生代对象“朝生夕死”,每次收集都有大量对象(99%
2020-12-09
08
JVM对象创建和内存分配机制 JVM对象创建和内存分配机制
JVM对象创建JVM对象创建的主流程 类加载检查: 虚拟机在接收到一条new 指令时,会先检查对象是否被加载到内存中,如果没有进入类加载流程 分配内存: 在类加载完成时,类对象所需的内存大小就已经确认下来,所以虚拟机只需要在jav
2020-12-08
07
JVM内存模型和垃圾回收机制 JVM内存模型和垃圾回收机制
JVM内存模型图示 JVM内存大致分为以下几个区域 堆:保存对象(存放使用new创建的对象,全局变量,方法中使用final修饰的局部变量) 栈:线程运行时创建,主要用于存放局部变量。 堆帧:程序运行时的每个方法都会分配一个独立
2020-12-07
07
JVM类加载机制和双亲委派机制 JVM类加载机制和双亲委派机制
JVM 类加载流程 其中classLoader.loadClass 分如下7步: 加载>验证>准备>解析>初始化>使用>卸载 加载:再硬盘上通过io读入字节码文件,使用类时才会加载。比如
2020-12-07