![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习总结
文章平均质量分 59
没有昵称的打工仔
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashMap集合
ConcurrentHashMap 和HashMap一样,是一个存放键值对的容器。使用Hash算法来获取值的地址,因此时间复杂度是O(1)。查询非常快。ConcurrentHashMap 同时也是线程安全版的HashMap,可以实现线程安全的集合的并发操作,它在不同的JDK 版本中有不同的数据结构。原创 2023-09-03 20:34:46 · 273 阅读 · 0 评论 -
Spring Boot注解@Async与线程池的配置
Spring Boot注解@Async与线程池的配置原创 2023-05-26 15:58:09 · 1083 阅读 · 0 评论 -
join 语句使用
在实际开发中,我们一般会有两类问题,为什么我们 DBA 不让使用 join,使用 join 有什么问题呢?如果有两个大小不同的表做 join,应该用哪个表做驱动表呢?MySQL 执行 join 语句的两种可能算法(Index Nested-Loop Join ,Block Nested-Loop Join),这两种算法是由能否使用被驱动表的索引决定的。如果可以使用被驱动表的索引可以使用join 语句;原创 2023-05-07 23:09:51 · 367 阅读 · 0 评论 -
mysql索引失效的坑
在MySQL中,有时候会因为语句使用不当导致sql不走索引,从而使数据库的压力变大。本篇分享一下sql不走索引的坑,让大家也避避坑!原创 2023-04-20 10:47:18 · 716 阅读 · 0 评论 -
SpringBoot配置加载机制
SpringBoot配置加载机制(java)原创 2023-04-16 13:42:51 · 489 阅读 · 0 评论 -
分布式环境中的Session问题
分布式环境中的Session问题转载 2023-04-09 22:55:07 · 282 阅读 · 0 评论 -
@Configuration 、 @Component 、@Bean
Configuration注解修饰的类,会被spring通过cglib做增强处理,动态生成一个代理对象,代理会拦截所有被@Bean注解修饰的方法,可以确保这些bean是单例的。原创 2023-04-02 15:33:50 · 410 阅读 · 0 评论 -
mysql的count() 函数操作分析与选择
count(*) 效率原创 2023-03-11 21:05:06 · 439 阅读 · 0 评论 -
mysql普通索引与唯一索引怎么选择
普通索引与唯一索引原创 2023-03-05 19:31:57 · 791 阅读 · 0 评论 -
mysql如何给字符串字段加索引
mysql字符串字段加索引原创 2023-02-26 22:15:33 · 900 阅读 · 0 评论 -
全局变量、全局方法的滥用与优化
在项目开发中,经常会用到全局变量有单例对象、静态成员变量等,常见方法有静态方法。一般全局变量放在一个Constans类中,常见的静态方法一般会放在各种Util类中。原创 2023-02-05 20:53:51 · 256 阅读 · 0 评论 -
Jav安全框架Shiro学习总结(1)
简单了解springShiro原创 2023-01-09 21:20:21 · 585 阅读 · 0 评论 -
springboot统一处理异常注解
springboot统一处理异常注解原创 2023-01-03 00:17:41 · 1151 阅读 · 0 评论 -
SpringBoot整合SpringSecurity-环境搭建
springboot的SpringSecurity认证与授权原创 2022-12-26 01:03:21 · 133 阅读 · 0 评论 -
java动态代理
Java动态代理实现方式原创 2022-12-12 19:01:25 · 82 阅读 · 0 评论 -
适配器模式
适配器模式的实现原理原创 2022-11-20 20:20:36 · 176 阅读 · 0 评论 -
设计模式-建造者模式
设计模式建造者模式原创 2022-11-20 18:16:31 · 118 阅读 · 0 评论 -
设计模式-饿汉模式
单例模式的饿汉模式使用原创 2022-11-07 00:11:51 · 180 阅读 · 0 评论 -
设计模式的“懒汉模式”
懒汉模式原创 2022-11-06 22:46:22 · 132 阅读 · 0 评论 -
thymeleaf模板引擎
Thymeleaf模板引擎原创 2022-10-08 18:18:43 · 151 阅读 · 0 评论 -
springboot自定义注解
自定义注解使用原创 2022-06-19 22:15:14 · 1069 阅读 · 0 评论 -
yaml的用法
yaml的用法原创 2022-06-12 23:04:51 · 865 阅读 · 0 评论 -
JUnit5测试-断言
JUnit断言原创 2022-06-05 17:38:22 · 846 阅读 · 0 评论 -
JUnit5单元测试
1.JUnit 5介绍Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库作为最新版本的JUnit框架,JUnit5与之前版本的Junit框架有很大的不同。由三个不同子项目的几个不同模块组成。JUnit 5 = JUnit Platform+JUnit Jupiter+JUnit VintageJUnit Platform: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。JUnit Jupi原创 2022-05-29 21:14:02 · 844 阅读 · 0 评论 -
java设计模式(七大设计原则)(二)
1、开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改关闭。2、里氏代换原则(Liskov Substitution Principle) 里氏代换原则是面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则...原创 2022-05-22 23:19:18 · 84 阅读 · 0 评论 -
java设计模式(七大设计原则)
设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好代码重用性(相同的功能代码不用多次编写)、可读性(编程规范性、便于其他程序员阅读与理解)、可扩展性(需要添加新功能时,费非常方便并且可维护)、可靠性(增加新功能时对原有的功能没有影响)使程序呈现高内聚(模块内部是非常紧密的,例如一个类或者一个方法只做一件事),低耦合(功能与功能之间是低耦合、例如有A功能和B功能,这两个功能的依赖性是低的,A功能模块出了原创 2022-05-15 18:52:44 · 176 阅读 · 0 评论 -
转载记录mysql安装
手把手教你在Windows 11安装MySQL 8.0下载地址:https://dev.mysql.com/downloads/mysql/原创 2022-05-13 09:18:04 · 136 阅读 · 0 评论 -
mysql索引
1.索引作用MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。举个栗子,就像阅读书籍里面有目录,可以很快定位到你想看的内容。2.使用时注意事项虽然索引可以加快查询速度,提高 MySQL 的处理性能,但是过多地使用索引也会造成以下弊端:创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 除了数据表占数据空间之外,每一个索引还要占一定的物理空间。如果要建立聚簇索引,那么需要的空间就会更大。 当对表中的数据进行增加、删除和修改的时候,原创 2022-05-09 12:35:11 · 62 阅读 · 0 评论 -
@Transactional 注解
1.作用域:接口,接口方法,类及方法。2.声明式事务的常用配置readOnly:该属性用设置当前事务是否为只读事务,设置 true 表示只读,false 表示可读写,默认值false. rollbackFor:该属性用于设置需要进行回滚的异常类数组,当方法中抛出指定异常数组中的异常时,则进行事务回滚。 指定单一异常类:@Transactional(rollbackFor=RuntimeException.class) 指定多个异常类:@Transactional(rollbackFor=原创 2022-04-24 18:58:34 · 571 阅读 · 0 评论 -
int、Integer、BigDecimal类型的比较出现
目录1.int与int比较2.Integer与int比较3.Integer与Integer比较4. BigDecimal类型的比较测试业务的时候遇到int与Integer出现空指针的问题,所以记录一下1.int与int比较这个没什么好说的,使用比较符 "=="、">"、"<"、"<="、">="、"!="。2.Integer与int比较比较符跟int与int比较符一样,Integer与int的比较,因为Integer会有一个拆箱的过程、与int原创 2022-03-20 21:41:04 · 1309 阅读 · 0 评论 -
多线程学习笔记3
多线程七种执行的状态初始化状态、就绪状态、运行状态、死亡状态、阻塞状态、超时等待、等待状态thread.sleep()可以防止cpu占用100%守护线程与用户线程1守护线程是依赖于用户线程,用户线程退出了,守护线程也就会退出,典型的守护线程如垃圾回收线程。2用户线程是独立存在的,不会因为其他用户线程退出而退出。安全的关闭线程1.Interrupt 打断正在运行或者正在阻塞的线程。1)如果目标线程在调用Objectclass的wait()、wait(long)或...原创 2022-01-02 19:19:29 · 54 阅读 · 0 评论 -
多线程学习笔记
synchronized 原理:假设有4个线程(A,B,C,D),假设线程A拿到了锁,执行锁内代码,线程BCD没有抢到锁,就会被存入sysnchronized底层blockedThreads(没有获取到锁的线程)的entrylist中,等到线程A执行完代码就会重新唤醒entrylist中阻塞的线程BCD重新争抢获取锁的资源。join:使得t.join()中的t优先执行,当t执行完后才会执行其他线程。能够使得线程之间的并行执行变成串行执行。首先写三个线程,先不使...原创 2021-12-26 17:28:25 · 253 阅读 · 0 评论 -
使用wait、notity注意事项
等待/通知机制等待/通知的相关方法是任意Java对象都具备的,因为这些方法被定义在所有对象的超类 java.lang.Object上,方法如下:1.notify:通知一个在对象上等待的线程,使其从main()方法返回,而返回的前提是该线程获取到了对象的锁。2.notifyAll:通知所有在等待该对象的线程。3.wait():调用该方法的线程进入WAITING状态,只有等待其他线程的通知或者被中断,才会返回。需要注意调用wait方法...原创 2021-12-19 19:10:00 · 663 阅读 · 0 评论