自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL-InnoDB锁

InnoDB的锁分类和加锁过程

2023-05-31 22:38:18 365

原创 MySQL优化(开发篇小节一)

MySQL优化的各种场景,索引、排序、join、等,本专栏内容会持续更新

2023-01-13 17:03:35 185

原创 递归的时间复杂度计算Master公式

递归的时间复杂度计算Master公式

2022-12-17 18:05:36 194

原创 leetcode38. 外观数列(JAVA)

leetcode38. 外观数列(JAVA)

2022-12-09 16:20:14 144

原创 leetcode37. 解数独

leetcode37. 解数独

2022-12-08 22:04:07 136

原创 leetcode36题-有效的数独

leetcode36题-有效的数独,通过二维数组进行处理

2022-12-08 17:28:22 188

原创 动态规划(JAVA)-最长回文子串

动态规划解最长回文子串

2022-12-08 12:12:44 974

原创 动态规划(JAVA)-最长回文子序列

如何通过普通递归,过渡到动态规划(java)

2022-12-06 12:06:05 481

原创 动态规划(JAVA)-最长公共子序列

利用JAVA递归解决最长公共子序列,再进一步推导为动态规划

2022-12-05 17:23:24 529 2

原创 RabbitMQ:The channelMax limit is reached. Try later.

RabbitMQ:The channelMax limit is reached. Try later.​ 这个问题是我当初写项目时遇到的,因为用RabbitMQ做削峰处理,高并发情况下,channel数到达了限制,所以不能继续创建,相信大家也遇到过。​ 正常来说,这个错误还是比较少见的,只不过项目需要保证消息的可靠性,所以采取了发送确认和消费手动确认机制,导致并发性能下降,从而出现这个问题。、​ 这里先上结论,方便着急的小伙伴们改bug。​ 结论:RabbitMQ java客户端在创建连

2020-06-12 18:41:33 12190 2

原创 HashMap浅析(二)

HashMap浅析(二)扩容机制首先上扩容的代码,每一行都写了注释,尽可能的让大家明白这个过程。final Node<K,V>[] resize() { //将table赋值给oldTab Node<K,V>[] oldTab = table; //声明oldTab的容量给oldCap int oldCap = (oldTab == null) ? 0 : oldTab.length; //扩容阈值赋值给oldT

2020-06-11 15:19:56 146

原创 HashMap浅析(一)

HashMap浅析(一)​ 无论几年的程序猿,面试必问的题,HashMap算一大山,这座山翻不过去,离自己梦想的公司想必是无缘的。​ 很多人觉得会用HashMap不就行了吗,为什么非要研究它的原理呢?​ 摸一摸自己的大光头,你真的会用吗?如何用效率高?除了当普通的数据结构使用,其他地方可不可以用到呢?​ 接下来我会大致的对HashMap进行一个简短的分析。学习是一个循循渐进的过程,不要妄想一晚上学会什么原理,教你的是骗子,但你不能当傻子。​ 第一节是对于数组容量为2的幂次方的解惑。后续

2020-06-10 21:20:42 162

原创 @Autowired浅析

@Autowired浅析首先放几段代码和几个问题,带着思考去看接下来的结论第一个问题第一段代码:容器初始化完毕,控制台是否会打印(“This is a method from TeachService”)这句话?@Servicepublic class StudyService { public void setTeacherService(TeachService teacherService){ teacherService.teach(); }}@Service

2020-06-08 21:45:15 2937

原创 读《深入理解Java虚拟机》小记——第二部分

第二部分    自动内存管理机制第一章    运行时数据区域        一、程序计数器        程序计数器是一种较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个 Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是 Native 方法,这个计数器值则为空。此内存区域是惟一一个在 Java 虚拟机规范中没有规定任何 O...

2018-06-04 15:22:34 81

原创 读《深入理解Java虚拟机》小记——第一部分

第一部分  走进Java第一章    Exact VM        在JDK1.2时,曾在Solaris平台发布过一款名为Exact VM的虚拟机,具备:两级即时编译器、编译器与解释器混合工作模式。它使用准确式内存管理(Exact Memory Management 或者叫做 Non-Conservative/Accurate Memory Management)而闻名,换句话说,即虚拟机知道内...

2018-06-01 14:50:28 129

原创 JDBC、mybatis和Hibernate比较

1.1    jdbc问题总结如下:1、 数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能。如果使用数据库连接池可解决此问题。2、 Sql语句在代码中硬编码,造成代码不易维护,实际应用中sql变化的可能较大,sql变动需要改变java代码。3、 使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql

2017-09-06 16:39:58 438

转载 springmvc与struts2不同

1、 springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过滤器。2、 springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。3、 Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springm

2017-09-06 16:36:31 148

转载 Hibernate一级缓存、二级缓存区别

缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。  缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发

2017-08-15 19:08:42 109

空空如也

空空如也

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

TA关注的人

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