加载中
编程思想 Java中对象的本质

Bruce Eckel 前辈写的《Java编程思想》把问题探讨得非常深入,非常建议同行都学习一下。学习 Java 语言时,老师告诉你 What,自己练习知道 How ,Bruce Eckel 告诉你Why 。 之前已经把后面的...

《2022问》4:MySQL InnoDB 在可重复读(RR)隔离级别下的加锁过程是如何进行的?

MySQL InnoDB 引擎在可重复读(RR)隔离级别下,会有行锁(key lock)和间隙锁(gap lock),他们合称 next-key lock,这也是RR级别下的加锁单位。也就是说,RR级别下,给数据加的锁通常(也...

2022/05/04 19:12
773
《2022问》3:为什么 Spring Boot 能够自动加载并使用默认配置(或自定义配置)初始化 starter 组件?

号称几乎零配置的 Spring Boot 早已成为了N多开发者的必备工具了,以至于题目的问题有点像在问“为什么我的刀能砍柴”,那我肯定会毫不客气地回答你“我的刀不仅可以砍柴还能砍盔甲”!它就是...

Spring 的 定时任务 @Scheduled

实现定时任务,Java 提供的 ScheduledExecutorService 是较好的解决方案,它可以自行设置并行任务数量和每个任务的定时执行方式,具体本文不详述。Spring 提供了更简便的定时任务实现方式:注...

2022/03/19 11:19
220
《2022问》2:MySQL InnoDB 行锁中的两阶段锁协议是什么样的?

我在《MySQL InnoDB 引擎的死锁、普通的锁冲突等相关问题》一文中说到“在 MySQL 的 InnoDB 中,行锁并不是必须显式声明才存在的”,但是没有细讲,这些基础的概念也是需要了解清楚才能完整看...

2022/02/16 15:52
410
MySQL InnoDB 引擎的死锁、普通的锁冲突等相关问题

如果两个及以上的锁出现循环等待锁资源的情况,就会形成死锁。相比于死锁,另一个问题更加常见:普通的锁冲突。 假设线程1需要获取行a的排他锁,但是行a已经存在了一个排他锁,这时线程1是无...

2021/11/16 18:05
353
《十个为什么》之五:为什么要有分布式锁?

我在《十个为什么》之三:为什么要有同步线程锁?中讨论了同步线程锁:synchronized,它是多线程不安全的解决办法——简单说就是用它来保证某段代码的串行化执行,避免并发带来的诸多问题。但...

《十个为什么》之四:为什么要有线程池?

顾名思义,线程池就是放着一些线程的容器。Java 在 java.util.concurrent 包下提供了线程池的相关工具。 因为它是提前准备好线程在那放着的,所以当使用线程池来管理多线程时,能够快速使用现...

2021/03/07 11:22
487
《十个为什么》之三:为什么要有同步线程锁?

可能有人会觉得,只要我写代码的时候不去开启其他线程,那么就不会有多线程的问题了。 然而事实并非如此,如果仅仅是一些简单的测试代码,确实代码都会顺序执行而不是并发执行,但是Java应用...

2021/03/02 22:15
603
《十个为什么》之二:为什么数据库的事务会有四大特性?

众所周知,IT界的学习资料非常广泛,然而,“少则得,多则惑”,对于学习而言,并不是信息来源越多就越好。就比如说,我在很长时间里都把事务的四大特性尤其是其中的一致性理解错了,究其原因...

2021/02/27 17:44
752
《十个为什么》之一:为什么要覆写equals方法与hashCode方法?

先不谈覆写 equals 方法、hashCode 方法的用意,你是否发现自己定义的类很少会覆写 equals 方法、hashCode 方法?——这样看来,这似乎是个冷门的无关紧要的知识,但这也是 Java 基础中不能缺...

2021/02/21 01:46
448
POJO类中布尔类型的变量,加或不加is前缀的理由是什么?

在阿里的Java开发规范中,有一个不明所以的规定:要求POJO类中布尔类型的变量,都不要加is前缀。理由如下截图(侵删): 这里提到的 isDeleted() 方法,如果是由框架自动生成的,那么看起来像...

MySQL InnoDB 的索引原理概述与设计索引调优简述

MySQL的InnoDB引擎比较常用,了解它的索引原理,才能在设计索引的时候得心应手,轻松应对数据库表的优化。 1、聚集索引 也叫聚簇索引。 1.1、必然会有聚集索引 聚集索引 != 主键索引; 任何表...

2021/01/08 14:04
2.7K
基于DDD思想来架构项目

架构一个项目需要考虑的问题非常的多,诸如性能保证、规范的同时方便开发、服务器的成本考虑、部署方式等等,具体要如何选择框架去完成项目的架构,即使是经过了深思熟虑,也总会有未能考虑到...

2020/12/17 00:48
3.7W
在MySQL的InnoDB引擎下,悲观锁还能实现预期效果吗?

对悲观锁有所了解的都知道,这是一种先对数据加排他锁,再进行后续更新的操作。但是—— 在MySQL的InnoDB引擎下,读取数据时不会加共享锁,因为它是基于MVCC (Multi-Version Concurrency C...

2020/10/13 11:00
109

没有更多内容

加载失败,请刷新页面

返回顶部
顶部