一、锁的分类1.1 可重入锁、不可重入锁Java中提供的synchronized,ReentrantLock,ReentrantReadWriteLock都是可重入锁。重入:当前线程获取到A锁,在获取之后尝试再次获取A锁是可以直接拿到的。不可重入:当前线程获取到A锁,在获取之后尝试再次获取A锁,无法获取到的,因为A锁被当前线 程占用着,需要等待自己释放锁再获 ......
143
0
0
2024-09-01
0、前言我们在开发中经常用到String对象【一个项目中各个地方都有它的身影,你和同事所写的代码,所使用的框架、库、工具包基本都会用到String】。作为使用率最高的对象,java对String做了不少优化,主要分为两方面,一个是使用方式的优化,一个是性能优化使用方式的优化 体现在:虽然String是对象,但可以不用new来创建,可以直接用""来创建Stri ......
162
0
0
2024-08-31
一、SpringBoot启动配置原理简述本内容直接查看分析SpringBoot启动配置原理,传送门:https://zyfcodes.blog.csdn.net/article/details/130903779因为本期的各种优化干预手段都依赖其基本原理,建议在使用前进行阅读。二、SpringBoot启动过程干预Spring Boot启动过程中我们可以实现以 ......
137
0
0
2024-08-27
hi,我是程序员王也,一个资深Java开发工程师,平时十分热衷于技术副业变现和各种搞钱项目的程序员~,如果你也是,可以一起交流交流。今天我们来一起聊聊Java中遍历HashMap的5种方式。HashMap基础HashMap是Java中最常用的集合之一,它实现了Map接口并提供了键值对的映射。在Java中,HashMap是一个非同步的类,它的主要目的是为了快速 ......
174
0
0
2024-08-21
本篇将带你快速了解什么是Spring Security,通过入门案例以及相关原理和类的分析让你快速入门。一、概述官网:https://spring.io/projects/spring-securitySpring Security是一个Java框架,用于保护应用程序的安全性。它提供了一套全面的安全解决方案,包括身份验证、授权、防止攻击等功能。1、身份认证是 ......
188
0
0
2024-08-21
UUID的基本知识UUID(Universally Unique Identifier)是一个128位长的数字,用于在分布式系统中唯一标识信息。它由两部分组成:一个32位的段和一个96位的段,通过特定的算法生成,以确保在全球范围内的唯一性。UUID的结构和版本类型UUID的标准格式由32个十六进制数字组成,以连字符分为五组,形式为8-4-4-4-12,例如: ......
251
0
0
2024-08-20
在有些场景,能通过调整日志的打印策略来提升我们的系统吞吐量,你知道吗?我们以Springboot集成Log4j2为例,详细说明Springboot框架下Log4j2是如何工作的,你可能会担心,如果是使用Logback日志框架该怎么办呢?其实Log4j2和Logback极其相似,Springboot在启动时处理Log4j2和处理Logback也几乎是一样的套路 ......
228
0
0
2024-08-12
简介MyBatis框架的核心功能其实不难,无非就是动态代理和jdbc的操作,难的是写出来可扩展,高内聚,低耦合的规范的代码。上图分析总结: 1、mybatis的配置文件有2类mybatisconfig.xml,配置文件的名称不是固定的,配置了全局的参数的配置,全局只能有一个配置文件。Mapper.xml 配置多个statemement,也就是多个sql,整个 ......
251
0
0
2024-07-27
简介罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活。对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手撸一个简易版的 Lombok,让你理解这个热门技术背后的执行原理,以及它的优缺点分析。Lombok 是一个非常热门的开源项目,使用它可以有效的解决 Java ......
249
0
0
2024-07-27
简介Spring Boot非常简单容易上手,它隐藏了很多内容而不需要你去关心。但对于一个好的开发人员也许希望知道Spring Boot自动配置背后到底发生了什么?Spring Boot并不属于一种新的技术,只不过Spring Boot的启动器帮我们配置了若干个被Spring管理的bean,当我们的项目依赖这些jar并启动Spring应用时,Spring的Co ......
243
0
0
2024-07-27
spring cloud: 大话spring cloudhttps://smile.blog.csdn.net/article/details/71077213Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、 微代理、控制总线、全局锁、决策竞选、分布式会话和集群 ......
216
0
0
2024-07-26
Mybatis面试详解1、什么是 Mybatis?2、Mybaits 的优点:3、MyBatis 框架的缺点:4、MyBatis 框架适用场合:5、MyBatis 与 Hibernate 有哪些不同?6、#{}和${}的区别是什么?7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?8、 模糊查询 like 语句该怎么写?9、通常一个 Xml 映射文件, ......
243
0
0
2024-07-25
MyBatisPlus的SQL注入器一、介绍在前些天的时候,我需要写一个存在则更新的sql语句,这以前我有记录过。MySQL插入重复后进行覆盖更新 | 半月无霜 (banmoon.top)但以前我是在mapping.xml文件中,自己手动拼出来的。虽然可以实现,但真的好麻烦,每个实体都要这样写吗?我不,我去看了MyBatis plus的BaseMapper是 ......
382
0
0
2024-06-13
一、摘要在之前的文章中,我们介绍了对象的创建过程,以及运行期的相关优化手段。本文主要介绍对象回收的判定方式以及垃圾对象的回收算法等相关知识。下面我们一起来了解一下。二、对象回收判定方式当一个对象被创建时,虚拟机会优先分配到堆空间中,当对象不再被使用了,虚拟机会对其进行回收处理,以便释放内存空间,这个过程也被称为垃圾对象回收。那么如何找到对象是否可以进行回收呢 ......
321
0
0
2024-06-11
person.propertiesperson.nickName=\u5C0F\u674E\u56DB MainConfigOfPropertyValues//使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值 @PropertySource(value={"classp ......
327
0
0
2024-06-11