自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot整合Mybatis

MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。@Resource 是基于j2ee的注解(可以减少了与spring的耦合),(JDK1.6以上支持)默认是按名字进行注解,若不指定装配bean的名字,当注解写在字段上时,默认取字段名,按照名称查找通过set方法进行装配,倘若有多个子类,则会报错。==注意文件的位置(上面配置过的)==

2023-10-26 19:52:54 65 1

原创 【面试题精讲】javaIO模型

Java IO(Input/Output)模型是用于处理输入和输出的一种编程模型。它提供了一组类和接口,用于读取和写入数据流、文件、网络连接等。在Java中,IO操作可以分为两大类:字节流和字符流。字节流以字节为单位进行读写,而字符流以字符为单位进行读写,并且支持Unicode字符集。输入流(InputStream):用于从源读取数据。输出流(OutputStream):用于向目标写入数据。字符输入流(Reader):用于从源读取字符数据。字符输出流(Writer):用于向目标写入字符数据。

2023-10-20 20:21:06 58 1

原创 经典的ABA问题与解决方法

来自blog考虑如下操作: 并发1(上):获取出数据的初始值是A,后续计划实施CAS乐观锁,期望数据仍是A的时候,修改才能成功 并发2:将数据修改成B 并发3:将数据修改回A 并发1(下):CAS乐观锁,检测发现初始值还是A,进行数据修改 上述并发环境下,并发1在修改数据时,虽然还是A,但已经不是初始条件的A了,中间发生了A变B,B又变A的变化,此A已经非彼A,数据却成功修改,可能导致错误,这就是CAS引发的所谓的ABA问题。这个应该就是产生ABA问题的真正原因。

2023-10-16 17:14:03 370 1

原创 池化技术在真实业务中的实践

作为一名Java开发人员,池化技术或多或少在业务代码中使用。常见的包括线程池连接池等。也是因为Java语言超级丰富的基建,基本上这些池化能力都有着相对成熟的“工具”。比如,需要使用线程池的时候常常会选择Spring提供的, 工具内部替我们维护了线程的生命周期与任务的状态变化。

2023-10-14 16:27:35 55 1

原创 面试官:什么是死锁?死锁产生的原因?如何避免死锁?

死锁是一种非常严重的bug,是说多个线程同时被阻塞,线程中的一个或者多个又或者全部都在等待某个资源被释放,造成线程无限期的阻塞,导致程序不能正常终止🍽️为了进一步说明死锁,有哲学家就餐这样的一个问题:有一个桌子,哲学家们围成一圈,每两个哲学家中间有一支筷子哲学家只能两件事:思考或者吃饭,思考时候就不会动筷子,吃饭时会拿起左右手旁边的筷子(先拿左后拿右)如果有一个哲学家想吃饭,但是筷子被占用,就得等别人吃完进入思考后,才能获得筷子,等待的过程称为阻塞等待。

2023-10-13 14:38:00 84

原创 SpringBoot中如何对数据访问层进行单元测试?

我们公司作为一个面向银行、金融机构的TO B类企业,频繁遇到各个甲方爸爸提出的国产化数据库的改造需求,包括OceanBaseTiDBgeldenDB等等。每次适配都需要投入大量的人力进行测试工作,那么有没有更高效、低成本的方式去解决这个问题呢?本文就介绍一种快高效、可复用的解决方案——对数据访问层做单元测试。本文分享了基于项目中针对数据访问层进行单元测试的一种方式,这种方式只注入mybatis相关的bean,快速高效的对不同类型的数据库进行测试,保证程序的正确性。

2023-10-13 13:54:55 46

原创 MyBatis居然也有并发问题

问题:如果需要ognl的对象的方法和类不是public,那么会存在并发问题解决1:针对并发问题,升级Mybatis或者其他写法代替,反正看下,

2023-10-12 21:26:54 244

原创 我的JAVA之旅:见证成长、留下注释

程序员对代码注释可以说是又爱又恨又双标……

2023-10-12 16:07:07 63

原创 ThreadLocal使用不规范,上线两行泪

Java中的ThreadLocal是一种用于在多线程环境中存储线程局部变量的机制,它为每个线程都提供了独立的变量副本,从而避免了线程之间的竞争条件。事实上,ThreadLocal的工作原理是在每个线程中创建一个独立的变量副本,并且每个线程只能访问自己的副本。进一步,ThreaLocal可以在当前线程中独立的保存信息,这样就方便同一个线程的其他方法获取到该信息。因此,ThreaLocal的一个最广泛的使用场景就是将信息保存,从而方便后续方法直接从线程中获取。

2023-10-12 13:42:35 36

原创 阿里二面:一条SQL语句,在Mysql引擎中到底经历了什么?

我们再回顾下Buffer Pool 是 MySQL 的一个非常重要的组件,因为针对数据库的增删改操作都是在 Buffer Pool 中完成的Undo log 记录的是数据操作前的样子redo log 记录的是数据被操作后的样子(redo log 是 Innodb 存储引擎特有)bin log 记录的是整个操作记录(这个对于主从复制具有非常重要的意义)从准备更新一条数据到事务的提交的流程描述。

2023-10-11 14:54:23 33

空空如也

空空如也

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

TA关注的人

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