自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【面试总结篇】

事务一般是指要做的或所做的事情而在我们计算机术语中事务呢是对数据库的一系列操作,可由一条sql组成,也可以由多条复杂的,事务需遵循ACID四个特性:A:原子性,事务是一个不可分割的工作单元,一个事务中的sql操作要么都执行成功,要么都执行失败C:一致性;数据库从一种状态转化为另外一种一致性状态。事务开始之前和结束后,数据库的完整约束性没有被破坏i:隔离性,事务与事务之间是互不干扰D:持久性,事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

2024-04-30 14:03:02 228 1

原创 【事务隔离】

查询一条记录,基于 MVCC,是怎样的流程:获取事务自己的版本号,即事务 ID获取 Read View查询得到的数据,然后 Read View 中的事务版本号进行比较。如果不符合 Read View 的可见性规则, 即需要 Undo log 中历史快照;最后返回符合规则的数据。

2024-04-25 15:09:08 496

原创 【事务的一些浅薄理解】

在我们计算机语言中,事务一般指的是数据库事务,指的是对数据库中表数据的一系列操作,可以是一条sql,也可以是多条sql。根据事务类型的不同呢:可以分为这个扁平事务、带有保存点的扁平事务、链事务、嵌套事务嵌套事务、分布式事务,平时默认用的是这个扁平事务(开启,提交/回滚),有兴趣可另外查阅资料了解。应用层面进行保障,例如如果转账操作只扣除转账者的余额,而没有增加接收者的余额,无论数据库实现的多么完美,也无法保证状态的一致。保证原子性、持久性和隔离性,如果这些特性无法保证,事务的一致性也无法保证。

2024-04-25 14:37:21 525

原创 【ConcurrentHashMap源码级别底层分析】

ConcurrentHashMap在JDK1.8中是以CAS+synchronized实现的线程安全。ConcurrentHashMap是存储存储键值对的集合,是线程安全的HashMap。synchronized:在出现hash冲突时(Node存放的位置已经有数据了)CAS:在没有hash冲突时(Node要放在数组上时)存储的结构:数组+链表+红黑树。

2024-04-24 13:06:07 212

原创 【cglib动态代理】

cglib (Code Generation Library ) 是一个第三方代码生成类库,运行时在内存中动态生成一个子类对象从而实现对目标对象功能的扩展。cglib 为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。怎么实现对目标对象功能的扩展的呢?让我们看一下,注意是动态生成目标对象的子类哦最底层是字节码ASM是操作字节码的工具cglib基于ASM字节码工具操作字节码(即动态生成代理,对方法进行增强)SpringAOP基于cglib进行封装,实现cglib方式的动态代理。

2024-04-19 17:37:51 230

原创 【JDK动态代理一点浅薄的理解】

可以看到呢,它继承了Proxy,实现了我们传入的接口IuserDao,我们把这个,是不是和我们要代理的目标对象很像很像,只不过时多继承了一个类Proxy,然后看构造器方法:传入的是InvocationHandler,这个也是我们之前传入的一个方法参数。就是直接传入需要代理的目标对象A,生成一个新的目标对象B,这个新的目标对象B就是代理对象,具备A所以信息,并且通过相关API可以对A对象都相关方法做一个功能的增强:比如你想在执行A方法前加一段代码逻辑,或者执行A方法后,加一段代码逻辑。

2024-04-19 16:17:50 481

原创 【ThreadLocal实现原理】

ThreadLocal的实现原理呢就是在Thread类内部维护一个ThreadLocals变量,其类型时ThreadLocalMap类型,然后用这个ThreadLocalMap来保存共享变量的副本,后续线程的对共享变量的操作都是对这个Map里面的共享变量的操作,不会影响到全局变量。ThreadLocalMap内部维护了一个Entry类型的数组,用来存放key,value值,这个key值,存放的是父类ThreadLocal的引用,value存储的是共享变量,这个Entry实现了。为什么说会产生内存泄漏问题?

2024-03-22 19:25:29 207

原创 部署失败报错: Error creating bean with name ‘eurekaRibbonClientConfiguration‘

首先网上查阅了资料说是端口占用的可能,可是用root账号查看了下,是没问题的,于是拉测试环境的代码本地启动,发现是正常启动成功的,且注册到了注册中心,于是重新部署试试看,还是失败的,尝试本地打包测试环境代码丢到服务器,然后启动jar包,查看日志发现是启动成功的,也成功注册到注册中心上。最终请假项目技术大牛,他本地启动项目是报错的,有个依赖jar包冲突了,于是在pom文件里增加排除了下冲突的jar就可以了。而我本地能启动项目成功的原因估计是我本地仓库没有发生冲突的依赖jar,而公司的项目仓库是有的。

2023-07-21 11:23:25 382 1

原创 java项目启动脚本和停止脚本

请根据您的项目需求对脚本进行自定义和扩展,例如处理停止失败、额外的清理操作等。您可以将上述脚本保存为一个以.sh为扩展名的文件(例如,start.sh),并在终端中运行。您可以将上述脚本保存为一个以.sh为扩展名的文件(例如,stop.sh),并在终端中运行。在脚本执行时,它将进入项目根目录,并使用指定的Java可执行文件启动Java项目。替换为您的项目的实际可执行jar文件名。替换为您的项目的实际可执行jar文件名。替换为您的Java项目的根目录路径,替换为您的Java项目的根目录路径,

2023-07-20 20:17:44 1152 2

原创 【CONCAT_WS函数】用于将多个字符串连接起来,可以指定一个分隔符作为参数

在上面的示例中,我们使用逗号和空格作为分隔符将字符串"John"和"Doe"连接在一起。可以根据需要提供更多的参数。CONCAT_WS函数在处理字符串连接时非常方便,尤其是在需要添加分隔符的情况下,可以更好地控制输出格式。

2023-07-20 20:16:56 408 1

原创 对输入的字符串进行加解密,并输出

【代码】对输入的字符串进行加解密,并输出。

2023-06-15 19:24:03 650 1

原创 给定一个单链表的头节点head,请判断该链表是否为回文结构

1)使用容器(哈希表、数组等):该技巧需要额外的空间复杂度,但是相对简单,在做笔试题目的时候肯定是优先考虑时间复杂度的。2)快慢指针:该技巧可以使得空间复杂度将为最低,面试的时候在考虑时间复杂度最低的时候,可额外考虑空间复杂度。3)输入链表头节点,奇数长度返回中点前一个,偶数长度返回上中点前一个。4)输入链表头节点,奇数长度返回中点前一个,偶数长度返回下中点前一个。1)输入链表头节点,奇数长度返回中点,偶数长度返回上中点。2)输入链表头节点,奇数长度返回中点,偶数长度返回下中点。

2023-06-14 00:26:57 84 1

原创 堆以及堆有关的题目

几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离一定不超过k,并且k相对于数组长度来说是比较小的。然后把堆的最大值和堆末尾的值交换顺序,减少堆的大小,再去调整堆的大小,一直周而复始,直到堆的大小为0时完成排序,时间复杂度O(N*logN)例如: 3 4 1 2 5 排序为1 2 3 4 5 ,每个元素移动的距离不能超过2。完全二叉树中如果每棵树的子树最大值都在顶部就是大根堆。先让整个数组都变成大堆根结构,建立堆的过程。堆结构就是用数组实现的完全二叉树结构。优先级队列结构就是堆结构。

2023-06-12 01:04:29 50 1

原创 stream之分组操作

【代码】stream之分组操作。

2023-06-09 00:46:13 86 1

原创 使用比较器Comparator

比较器的实质就是重载比较运输符,重写比较方法,比较器可以很好的应用在特殊的标准排序上也可以应用在根据特殊标准的排序结构上,使得写代码变得异常容易,还用于泛型编程。返回正数的情况,就是o2比o1优先的情况 返回0的情况,就是o1与o2同样优先的情况。返回负数的情况,就是o1比o2优先的情况。

2023-06-08 23:37:46 343 1

空空如也

空空如也

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

TA关注的人

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