因果不可改 智慧不可赐 真法不可传 无缘不可渡
HashMap put的过程 HashMap put的过程
首先会使用 hash 函数来计算 key,然后执行真正的插入方法 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boole
2020-08-21
MySQL中update修改数据与原数据相同会再次执行吗 MySQL中update修改数据与原数据相同会再次执行吗
背景本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 环境 MySQL5.7.25 Centos 7.4 binlog_format为ROW参数root@loc
2020-08-05
为什么阿里规定需要在事务注解@Transactional中指定rollbackFor? 为什么阿里规定需要在事务注解@Transactional中指定rollbackFor?
阿里巴巴Java规范:方法【edit】需要在Transactional注解指定rollbackFor或者在方法中显示的rollback。 异常的分类 Throwable:有两个重要的子类:Exception(异常)和Error(错误),
2020-07-30
SpringIOC容器设计 SpringIOC容器设计
IOC简介在Spring IoC容器的设计中,作者设计了两个接口来表示容器 BeanFactoryBeanFactory简单粗暴,可以理解为HashMap,key是BeanName,value是Bean实例,通常只提供put和get。这系
2020-07-24
Linux安装Oracle Linux安装Oracle
官方最低要求配置内存:1G(官方最低要求1G) 硬盘:40G(企业版安装所需4.29G和1.7G数据文件) 准备工作安装环境介绍系统:CentOS 7 64位 Oracle版本:Oracle 11gR2 下载Oracle安装文件官网下载地址
2020-07-23
JVM&GC-通用术语 JVM&GC-通用术语
G1(Garbage First)G1是一个并行回收器,他把内存分割为很多不相关的区间(Region),每个区间可以属于老年代或者年轻代,并且每个年代区间可以是物理上不连续的。垃圾回收时都是需要停下应用程序,不然没有办法防止应用程序的干扰,
2020-07-19
JVM&GC-System.gc()方法 JVM&GC-System.gc()方法
前言在默认情况下,System.gc()会显示直接触发Full GC,同时对老年代和新生代进行回收。而一般情况下,垃圾回收应该是自动进行的,无需手工触发,否则就太麻烦了。 示例public class TestGC { public
2020-07-19
JVM&GC-对象提升规则 JVM&GC-对象提升规则
前言虚拟机给每个对象定义了一个对象年龄(Age)计数器。如果对象在Eden区出生并经过第一次Minor GC后仍然存活,并且能被Survivor容纳的话,将被移动到Survivor空间中,并将对象年龄设为1.对象在Survivor中每熬过一
2020-07-18
垃圾回收算法(7)-分代回收算法 垃圾回收算法(7)-分代回收算法
前言Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:年轻代 ( Young )、老年代 ( Tenured)。年轻代 ( Young ) 又被划分为三个区域:
2020-07-12
垃圾回收算法(6)-增量算法 垃圾回收算法(6)-增量算法
前言在垃圾回收过程中,应用软件处于一种Stop the World的状态。在Stop the World的状态下,应用程序的所有线程都会挂起,暂停一切工作,等待垃圾回收的完成。如果垃圾回收时间过长,应用程序会被挂起很久,将严重影响用户体验或
2020-07-09
垃圾回收算法(5)-标记整理算法 垃圾回收算法(5)-标记整理算法
前言标记清除算法的确可以应用在老年代中,但是该算法不仅执行效率低下,而且在执行完内存回收后会产生内存碎片。所以JVM的设计者在此基础上做了改进,标记压缩法(也称标记整理法)由此诞生。 算法原理当成功标记出内存中的垃圾对象之后,标记压缩法会将
2020-07-09
垃圾回收算法(4)-复制算法 垃圾回收算法(4)-复制算法
算法原理复制算法首先将或者的内存空间分为2块,每次只使用其中一块,在垃圾会搜时将正在使用的内存中的存活对象复制到未被使用的内存块中,之后清楚正在使用的内存块中的所有对象,交换2个内存的角色,最后完成垃圾回收。 年轻代中的GCHotSpot
2020-07-09
1 / 8