自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring的依赖注入方式

1.setter方法注入。

2025-07-19 16:00:14 124

原创 Spring的配置方式

3.基于Java的配置。1.基于xml的配置。

2025-07-19 15:59:39 110

原创 Spring中常用的ApplicationContext 配置加载方式

2.FileSystemXmlApplicationContext:通过绝对路径加载Bean的xml配置文件。1.ClassPathXmlApplicationContext:通过相对路径加载Bean的xml配置文件。ps:以上两个都是ApplicationContext的实现类。

2025-07-19 15:58:57 93

原创 Spring中BeanFactory和ApplicationContext 有什么区别

BeanFactory是Spring的最底层接口,可以理解为Bean的工厂,包含Bean的定义,管理Bean的加载和实例化,控制Bean的生命周期等。实现BeanFactory的容器的特点是每次获取对象时才会创建对象。

2025-07-19 15:58:27 167

原创 Spring内部创建对象的原理(IOC原理)

1.解析XML配置文件,获取类名等信息。2.通过反射,用类型创建对象。3.给创建的对象赋值。

2025-07-19 15:57:42 86

原创 Spring中Bean的作用域

global-session:全局session(用于分布式web开发)singleton:单例(默认)ps:通过@Scope注解修改。prototype:多例。request:一次请求。session:一次会话。

2025-07-19 15:56:47 80

原创 Spring中Bean的生命周期

1.Bean的实例化。2.Bean的属性赋值。3.调用初始化方法。4.使用Bean的过程。5.当容器关闭时,调用销毁方法。

2025-07-19 15:56:05 192

原创 Spring框架的作用

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。IOC是控制反转,就是将原本程序中手动创建对象的控制权,交由Spring框架来管理。简单来说,就是创建对象的控制权被反转到了Spring框架。AOP是面向切面编程,是OOP的一个衍生。AOP将重复的方法横向抽取出来,降低代码的耦合度。如日志切面。AOP的核心概念:1.切面:定义的切面类。2.连接点:需要增强的方法或接口。3.切点:一组连接点,通过表达式定义。4.增强:具体的方法和操作。5.织入:连接增强的过程。6.目标对

2025-07-19 15:54:50 114

原创 String、StringBuffer、StringBuilder的区别

故可以得出,性能StringBuilder > StringBuffer > String。String:储存值的字符数组是final修饰的,值不可变,效率低,浪费内存。StringBuffer:线程安全,公开方法有synchronized修饰。StringBuilder:线程不安全,性能大于 StringBuffer。

2025-07-19 14:30:09 112

原创 Swagger常用注解

ApiModelProperty:实体类属性的说明,用于实体类属性上。@ApiOperation:请求方法的说明,用于请求的方法上。@Api:请求类的说明,用于controller类上。@ApiModel:实体类的说明,用于实体类上。

2025-07-19 14:25:32 142

原创 什么是幂等性

在支付操作的时候,为了防止网络异常原因,用户多次提交,造成的多次重复扣款,此时就应该对接口进行幂等性设计。就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。如下单和支付是一次操作,则需要另外设计门票ticketId来确保订单不会被重复支付。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。3.若未支付,则支付扣款并保存流水。2.如果已经支付,则直接返回结果。1.查询订单支付状态。

2025-07-19 14:23:35 200

原创 Mybatis一级缓存和二级缓存的区别

一级缓存是会话级的,缓存本次会话的查询数据,本次会话中执行增删改查会清空缓存。二级缓存是Mapper级的,缓存查询数据到Mapper对应的缓存区域,相同namespace的Mapper可以共同缓存。其他Mapper也可以通过标签来引用二级缓存。

2025-07-18 16:07:32 221

原创 SpringMVC接收参数的几种方式

常用的方式可分为path,query,body三种。

2025-07-18 16:03:31 130

原创 JJWT是什么

JJWT是为Java和Android提供的JWT库,方便开发和使用。JJWT导入依赖。

2025-07-18 15:57:51 402

原创 JWT是什么

JWT是Json Web Token的缩写,它是基于 RFC 7519 标准定义的一种可以安全传输的的JSON对象,由于使用了数字签名,所以是可信任和安全的。

2025-07-18 15:52:58 189

原创 synchronized、volatile的作用和区别

1.线程的可见性:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。volatile:主要有以下两个作用。synchronized:同步锁。2.顺序一致性:禁止指令重排序。

2025-07-17 10:31:43 109

原创 线程同步的方法

2.使用Lock接口下的实现类,更加灵活。可以实现trylock,尝试获取锁或设置锁的时间。1.使用synchronized关键字,可以修饰方法,也可以修饰代码块。

2025-07-17 10:31:10 336

原创 什么是死锁,如何产生,如何解决

(2)注意加锁时限(线程尝试获取锁的时候加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁)(1)互斥条件:进程对所分配到的资源具有排他性,即一个资源只能被一个进程占用,直到被该进程释放。(1)一个可行的做法是释放所有锁,回退,并且等待一段随机的时间后重试。(4)循环等待条件:当发生死锁时,所等待的进程必定会形成一个环路(死循环),造成永久阻塞。(2)请求和保持条件:一个进程因请求被占用资源而发生阻塞时,对已获得的资源保持不释放。(1)注意加锁顺序(线程按照一定的顺序加锁)

2025-07-17 10:30:40 396

原创 Java中的线程池

因为频繁创建和销毁线程需要消耗很多cpu性能,所以需要有一个线程池来管理这些线程。

2025-07-17 10:29:48 360

原创 线程创建的几种方式

2.实现Runnable接口,实例化后当作构造参数传给Thread对象。1.继承Thread类,重写run方法。3.通过线程池获取线程。

2025-07-17 10:27:15 231

原创 线程的生命周期

(1)等待阻塞:线程调用wait方法,进入等待池,只能等待notify或notifyAll方法唤醒线程。(3)其他阻塞:现成调用sleep方法或join方法或发出了IO请求时,线程会进入阻塞状态。3.运行:就绪状态的线程调用run方法后就进入运行状态,获取cpu开始执行程序代码。(2)同步阻塞:线程获取对象同步锁时,锁被别的线程占用,JVM将线程放进锁池。2.就绪:调用start方法之后就处于就绪状态,等待获取cpu使用权。ps:join方法 => 调用的线程 强占cpu资源,直到执行完毕。

2025-07-17 10:26:50 388

原创 进程和线程的区别

1.进程是执行中的一段程序,而一个进程中执行的每个任务即为一个线程。3.一个线程只属于一个进程,但是一个进程可以包含多个线程。2.一个程序至少有一个进程,一个进程至少有一个线程。进程:操作系统进行资源分配和调度的一个独立单位。线程:cpu调度的最小(基本)单位。

2025-07-17 10:24:42 373

原创 BIO、NIO、AIO的区别

AIO:异步非阻塞。一个有效请求一个线程。NIO:同步非阻塞。

2025-07-17 10:23:27 379

原创 Java集合框架

LinkedHashSet:底层数据结构是链表和哈希表,元素有序且唯一,线程不安全,可以存null。HashSet:底层数据结构是哈希表,元素无序且唯一,线程不安全,效率高,可以存null。HashMap:底层数据结构是哈希表,可以存入null键和null值,线程不安全,效率高。LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高。ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高。Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低。

2025-07-16 13:34:26 220

原创 Java方法传参是值传递还是引用传递

当传的是基本类型时,传的是值的拷贝,对拷贝变量的修改不影响原变量;当传的是引用类型时,传的是引用地址的拷贝,但是拷贝的地址和真实地址指向的都是同一个真实数据,因此可以修改原变量中的值;当传的是String类型时,虽然拷贝的也是引用地址,指向的是同一个数据,但是String的值不能被修改,因此无法修改原变量中的值。由此可见,实际上java都是值传递,虽然官方也无明确说明。

2025-07-15 14:43:26 199

原创 @Transactional注解的作用

SpingBoot用来实现声明式事务管理的注解。

2025-07-14 20:58:33 371

原创 Java开发中的术语缩写(持续更新)

DTO:数据传输对象(Data Transfer Object)DAO:数据访问对象(Data Access Object)有时候看到一些术语缩写,就想知道是到底什么意思…虽然不理解也没什么影响,就纯好奇。

2025-07-14 17:33:41 117

原创 Token的作用和生成方式

在 Java 开发中,尤其是在 Web 应用和 API 开发领域,Token(令牌)扮演着至关重要的角色,主要用于解决身份认证和授权问题。其核心目标是实现无状态、安全的交互。

2025-07-14 17:27:02 870

原创 Servlet的九大对象和四个作用域

Servlet的九大对象和四个作用域

2024-01-25 17:38:16 486

原创 BigDecimal的比较问题

BigDecimal的比较问题

2024-01-25 15:30:20 621

原创 @RequestBody和@RequestParam的应用场景

@RequestBody和@RequestParam的应用场景

2024-01-25 15:26:54 494

原创 异常捕获try...catch...finally

异常捕获try...catch...finally

2024-01-25 15:24:41 398

原创 dependencies和dependencyManagement的区别

dependencies和dependencyManagement的区别

2024-01-25 15:23:50 428

原创 long和Long的赋值问题

long和Long的赋值问题

2024-01-25 15:19:08 614

原创 树形结构返回所有菜单列表

树形结构返回所有菜单列表

2024-01-25 15:17:12 391

原创 注解的快速赋值机制

注解的快速赋值机制

2024-01-25 15:13:22 430

原创 swagger常用注解

swagger常用注解

2024-01-25 15:12:15 394

原创 SpringBoot的依赖覆盖问题

SpringBoot的依赖覆盖问题

2024-01-25 15:11:01 503

原创 Mybatis控制台输出执行的sql语句的两种方法

Mybatis控制台输出执行的sql语句的两种方法

2024-01-25 15:07:59 1415

原创 ConcurrentHashMap作用和实现原理

ConcurrentHashMap作用和实现原理

2024-01-23 15:27:04 367

空空如也

空空如也

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

TA关注的人

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