自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java - SpringBoot打包部署

Spring Boot 部署和运行方式Spring Boot 打包为 warSpring Boot 打包为 jar

2023-12-17 17:49:09 524

原创 Redis - 分布式锁、Redisson

分布式锁Redisson 可重入锁 - 单机Redis下分布式锁Redisson - 红锁 - 集群Redis下分布式锁分段锁Redisson 详解

2023-12-13 20:58:14 1355

原创 Redis - 做缓存时高并发问题:缓存穿透、击穿、雪崩,数据库缓存双写不一致

缓存穿透缓存击穿缓存雪崩数据库缓存双写不一致

2023-12-13 17:52:15 1368

原创 Java - CAP定理

Java - CAP定理

2023-12-13 17:14:46 702

原创 Redis - 主从集群下的主从复制原理

主从复制过程数据同步演变过程

2023-12-13 17:09:52 1016

原创 Redis - RDB与AOF持久化技术

Redis 持久化技术RDB 持久化AOF 持久化

2023-12-13 00:33:11 986

原创 Redis - 事务隔离机制

Redis - 事务隔离机制

2023-12-12 23:59:44 672

原创 Java - Spring中Bean的循环依赖问题

Java - Spring中Bean的循环依赖问题

2023-12-12 21:52:55 519

原创 Java - Bean的生命周期

Bean的生命周期之5步Bean生命周期之7步Bean生命周期之10步

2023-12-12 17:32:56 384

原创 Java - Spring中BeanFactory和FactoryBean的区别

BeanFactoryFactoryBeanBean的实例化方式 通过构造方法实例化 通过简单工厂模式实例化 通过factory-bean实例化 通过FactoryBean接口实例化

2023-12-12 17:17:47 827

原创 Java - Mybatis借助PageHelper实现分页,集成SpringBoot

Java - Mybatis借助PageHelper实现分页,集成SpringBoot

2023-12-12 00:29:19 701

原创 Java - Mybatis的缓存机制、集成SpringBoot后缓存相关问题

mybaits提供一级缓存,和二级缓存一级缓存(默认开启)二级缓存开启二级缓存mybatis整合ehcache集成SpringBoot缓存相关问题

2023-12-11 23:55:04 1403

原创 MySQL - 事务隔离级别

MySQL 事务概念说明事务隔离级别实例 读未提交 读提交 可重复读MySQL 中是如何实现事务隔离的 MVVC - 实现可重复读 行锁 - 并发写问题 行锁和间隙锁合并(Next-Key锁) - 解决幻读

2023-12-11 14:25:40 983

原创 MySQL - InnoDB 和 MyISAM 的索引实现的区别

MySQL - InnoDB 和 MyISAM 的索引实现的区别

2023-12-10 23:28:33 473

原创 MySQL - 聚簇索引和非聚簇索引,回表查询,索引覆盖,索引下推,最左匹配原则

聚簇索引和非聚簇索引什么是回表查询例子什么是索引覆盖索引下推什么是最左匹配原则

2023-12-10 23:16:06 1233

原创 Java - 线程间的通信方式

线程通信的方式共享内存消息传递管道输入/输出流

2023-12-10 21:52:30 1232

原创 Java - Spring项目的统一功能处理

目标用户登录权限效验统⼀异常处理统一数据返回格式

2023-12-10 16:20:41 835

原创 Java - JVM内存模型及GC(垃圾回收)机制

JVM内存模型垃圾回收机制如何判断一个对象是否为 "垃圾"几种垃圾回收算法

2023-12-10 15:16:34 1269

原创 Java - JVM内存区域的划分

Java - JVM内存区域的划分

2023-12-10 14:30:18 964

原创 Java - Lombok介绍、使用、工作原理、优缺点

介绍Lombok的使用示例Lombok工作原理常用注解注解使用有风险

2023-12-10 13:38:47 1017

原创 Java - JUC(java.util.concurrent)包详解,其下的锁、安全集合类、线程池相关、线程创建相关和线程辅助类、阻塞队列

JUC是什么?Java中线程有六个状态JUC的结构synchronized和JUC的Lock reentrantLock Condition JUC下的读写锁ReentrantReadWriteLock不安全的集合类和JUC的collections list 不安全-CpoyOnWriteArrayList set 不安全-CopyOnWriteArraySet HashMap不安全-ConcurrentHashMapJUC的Callab

2023-12-09 23:44:29 1484 1

原创 Java - CAS在Java中的应用、CAS的三大问题

什么是CAS什么是 CASCAS 的原理CAS 如何实现原子操作CAS 的三大问题ABA 问题长时间自旋多个共享变量的原子操作

2023-12-09 21:24:14 889

原创 Java - Synchronized的锁升级之路

Synchronized锁锁的升级偏向锁轻量级锁重量级锁

2023-12-09 20:24:22 956

原创 SpringBoot - 四种常见定时器

常见实现方案@Scheduled注解实现定时器Timer().schedule实现定时器线程实现定时器

2023-12-09 11:47:18 2983

原创 Java - HashMap

该文章主要介绍了数组、链表和HashMap的区别以及HashMap的数据结构和工作原理。数组和链表是两种基本的数据结构,它们各有优缺点。数组的优点是随机读取效率高,缺点是插入和删除数据效率低;链表的优点是插入删除速度快,内存利用率高,缺点是不能随机查找。HashMap是一种键值对的集合,它的数据结构为数组+链表或红黑树,这种结构使得查询和插入、删除的效率都很高。在HashMap中,元素的存储位置是通过计算键的哈希码值和数组长度取模得到的。如果该位置没有元素,则直接将元素存储进去;如果该位置已有元素,则比较两

2023-12-08 21:36:14 744

原创 Java - 对象克隆、Cloneable接口、浅克隆和深克隆

本文总结了Java中的Cloneable接口的作用及其使用方式,以及Java创建对象的四种方式。Cloneable接口是一个标记接口,实现它并重写Object中的clone方法才能成功克隆对象。Object的clone方法是浅拷贝,如果要执行深拷贝,需要按需重写clone方法。Java创建对象的方式包括new、clone、输入输出流和反射构造对象等。此外,本文还介绍了浅克隆和深克隆的概念和示例代码,并解释了为什么需要实现Cloneable接口才能实现深克隆。

2023-12-08 15:59:28 1106

原创 Java - java.util.Date和java.sql.Date的区别

本文介绍了java.sql.Date和java.util.Date之间的关系和异同。java.sql.Date是java.util.Date的子类,两者都有getTime方法,可以相互转换。java.sql.Date的时间格式是年-月-日,没有时间部分,强制获取时分秒会抛异常。两个对象都能使用SimpleDateFormat进行格式化,但tostring()显示不同。java.sql.Date对其进行了重写。

2023-12-08 00:07:46 368

原创 Java - 获取方法的参数名

本文主要介绍了如何在Java中获取方法参数名。首先介绍了Java编译器在编译时默认会抹去方法参数名,使得在运行期无法直接从.class字节码中获取参数名。然后通过实例说明了在使用Spring MVC和MyBatis框架时,即使不使用注解,只要参数名和请求参数的key对应上了,就能自动完成数值的封装。最后介绍了两种获取方法参数名的途径:使用-parameters选项或者借助ASM框架分析字节码信息中的本地变量表。文章还提到了Spring MVC借助ParameterNameDiscoverer完成了方法参数名

2023-11-30 21:46:27 1312

原创 Java - 内部类

在Java中,内部类是定义在另一个类或者方法内部的类。根据访问修饰符和定义位置的不同,内部类可以分为四种:静态内部类、成员内部类、局部内部类和匿名内部类。成员内部类可以访问外部类的所有成员属性和方法,包括private成员和静态成员。静态内部类不能使用任何外部类的非static成员变量和方法。局部内部类仅限于方法或作用域内访问。匿名内部类没有构造器,使用范围有限,通常用于继承其他类或实现接口。在匿名内部类中,访问外部局部变量是不被允许的。如果需要修改外部局部变量,需要将其改为final。访问外部成员变量是可

2023-11-30 21:30:21 829

原创 Java - 多线程下ThreadLocalRandom

在多线程下使用产生随机数时,直接使用。

2023-11-21 23:29:11 81

原创 Java - 为什么 ThreadLocal 会导致内存泄漏

如果 ThreadLocal 没有被直接引用(外部强引用),那么在垃圾回收的时候,由于 ThreadLocalMap 中的 key 是弱引用,所以 key 一定会被回收,因此 ThreadLocalMap 中就会出现 key 为 null 的 Entry,并且没有办法访问这些数据,那么强引用链 Thread -> ThreadLocalMap -> Entry -> value 就会一直存在,导致 value 无法被 GC 回收,从而导致内存泄漏。为什么是一直持有 value?

2023-11-09 13:38:26 88

原创 Junit5单元测试

创建 runSuite 测试套件类, 添加@Suite注解, @SelectClasses 注解, 指定类运行类下的加了 @Test 注解, 或者参数化的测试用例.该注解是修饰方法的, 当一个测试方法加上 @BeforeEach 注解之后, 就表示当前方法需要。该注解是修饰方法的, 当一个测试方法加上 @BeforeAll 注解之后, 就表示当前方法需要。@CsvSource({"第一组数据", "第二组数据", "第三组数据", ....}). 并且被该注解修饰的方法必须为静态方法.

2023-11-08 20:25:12 26

原创 selenium - web自动化测试

解压,找到msedgedriver.exe,将其放到 Java 系统环境变量下,例如 : 将其放到 JDK 的 bin 目录下启动发现edge浏览器webdriver请求地址是127.0.0.1 : 9515。

2023-11-08 17:16:03 24

原创 正则表达式

ooooo+?

2023-11-06 23:12:38 26

原创 Java - session和ConcurrentHashMap

Map集合中保存的对象是Tomcat中一个会话对应一个session,其实现类是StandardSession,查看源码,可以找到一个attributes成员属性,即存储session的数据结构,为ConcurrentHashMap,支持高并发的HashMap实现;那么,tomcat中多个会话对应的session是由谁来维护的呢?

2023-11-06 09:49:55 89

原创 Java - Spring的事务

2. NESTED (嵌套事务) : 如果当前有事务, 创建一个事务作为当前的嵌套事务来执行, 相当于在当前事务这里有一个保存点, 如果执行过程中嵌套事务抛出异常, 就回滚到保存点, 只回滚嵌套事务(局部回滚), 不会影响上一个方法中执行的结果.当进入方法的时候, 它就会自动开启事务, 当方法结束后, 它就会自动提交事务. 说白了它就是 AOP 的一个环绕通知. 只要加了 @Transactional 注解的方法, 都有一个事务的 AOP , 这都是 Spring 帮我们封装好的.通过代码手动回滚事务.

2023-11-05 14:03:02 36

原创 Java - Spring一些细节

当类名首字母和第二个字母都是大写的情况, bean 的命名规则为 "原类名"查看源码的方法注意这里所以,在程序中的id为原类名,并非是uController。

2023-11-05 09:33:42 42 1

原创 Java - 网络编程

/ 构造词汇dict.put("hello","你好");dict.put("monkey","孙悟空");dict.put("fuck","卧槽");dict.put("dog sun","狗日");// 重写 process@Overridereturn dict.getOrDefault(request,"这个问题俺也不会!");3.UdpEchoClient 代码(客户端)// 客户端的端口号,一般都是由操作系统自由分配的。

2023-11-04 17:21:53 29 1

原创 Java - 线程池

Executors提供四种线程池newCachedThreadPool:newFixedThreadPool:newScheduledThreadPool:newSingleThreadExecutor:线程池执行流程线程池监控

2023-11-04 13:56:55 47 1

原创 Java - 阻塞队列BlockingQueue

什么是阻塞队列?BlockingQueue的核心方法阻塞队列的成员两个核心方法:put和take

2023-11-04 11:31:36 65 1

空空如也

空空如也

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

TA关注的人

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