自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 MySQL:加锁规则

以下指的都是可重复读下的锁定读的情况。即select .. for update 和 select .. lock in share mode。二级索引的 next-key 锁不会退化为间隙锁或记录锁,每个扫描到的记录的二级索引都加 next-key 锁。对应的主键索引加记录锁。当唯一索引进行范围查询时,会对每一个扫描到的索引加 next-key 锁。每条记录加 next-key 锁,相当于锁住整个表。

2024-07-21 20:11:19 523

原创 Java:hashCode和equals

判等会同时使用hashcode和equals操作。如果重写了equals,使其不是比对地址而是比对内容,那么hashcode也要重写,因为hashcode默认也是比对地址,重写使用Object.hash()方法,可以修改为比对内容。如果自定义对象没有实现自定义的 hashCode 方法,就会使用 Object 超类的默认实现,得到的两个 hashCode 是不同的,导致无法满足需求。二者都需要重写,如果equals方法表明两个对象是相等的,但它们的hashCode值不同,那么这些集合类可能无法正确工作。

2024-07-18 10:30:28 443

原创 Java:fail-fast与fail-safe

当多个线程对不支持并发的容器进行结构上的改变的操作时(是结构上面的修改,而不是简单的修改容器元素的内容),就可能触发 fail-fast 机制,抛出ConcurrentModificationException 异常,从而导致遍历失败。记住是有可能,而不是一定。fail-safe 表示失败安全,也就是在这种机制下,出现集合元素的修改,不会抛出ConcurrentModificationException,原因是采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,

2024-07-14 11:50:11 183

原创 MySQL:VARCHAR

在MySQL中,类似于Varchar这样的可变长数据类型,InnoDB的行数据会使用一个变长字段长度列表存储当前行中每一个可变长数据的长度信息。对于Varchar来说,如果长度在255字节以内,则使用1字节存储长度信息,如果大于255字节,则使用2字节存储长度信息。

2024-07-08 20:57:13 474

原创 JVM:开启指针压缩后,对象位置的寻址计算

指针压缩的技术会将Java程序中的所有引用指针(类型指针、堆引用指针、栈帧内变量引用指针等)都会压缩一半,而在Java中一个指针的大小是占一个字宽单位的,在64bit的虚拟机中一个字宽的大小为64bit,所以也就意味着在64位的虚拟机中,指针会从原本的64bit压缩为32bit的大小。具体原理就是,以64位虚拟机为例,由于Java会进行内存对齐,以8byte为单位对齐,所有对象的起始地址都是8字节的整数倍。所以指针的低位都是000,可以省略。

2024-07-06 11:06:09 415

原创 JVM:动态链接

动态链接在程序运行时将符号引用解析为实际的内存地址。这个过程主要发生在方法调用时,方法只有运行时调用了之后才会从字节码加载进内存,这个时候才能确定具体的内存地址,JVM需要将字节码中的符号引用(编译期解析出来的)解析为具体的方法、字段或类的地址。这种解析结果存储在运行时常量池中(注意区分class文件的常量池和JVM的运行时常量池),在栈帧的动态链接中存储指向运行时常量池的实际地址的引用,以支持快速访问。在a调用b的时候,存储在a的栈帧中的动态链接,其实是指向b存储在运行时常量池的实际地址的引用!

2024-07-05 08:35:02 279

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除