JUC: 线程锁
1 面试题复盘
如何理解多线程,如何处理并发,线程池有哪些核心参数?
Java加锁有哪几种锁?
synchronized原理是什么?为什么可重入?如何获取对象的锁?
JVM对原生锁做了哪些优化?
什么是锁清除和锁粗化?
乐观锁是什么?synchronized与乐观锁什么区别?
volatile有什么作用?
ReentrantLock原理是什么? ...
Spring知识点(2)
一、有哪些依赖注入方式?
构造方法注入:通过调用类的构造方法,推荐用于强依赖(没有依赖对象就没法工作)。这也是官方推荐的注入方式。好处:依赖不可变(final修饰)、更安全。
@Component
public class UserService {
private final UserDao userDao;
// Spring 会自动注入 UserDao
@Autowired ...
Spring Boot接入邮箱,完成邮箱验证码
原文出处:[https://www.huaguoniang.top/archives/spring-boot-mail]
先知
邮箱的一些基本概念:
发送邮件
STMP协议:
Simple Mail Transfer Protocol ,简单邮箱传输协议,用于发送邮件的协议。
基于TCP,保证可靠性,但不安全,是明文传输
Spring Boot默认也是基于此协议进行发送邮件
接收邮件
POP3协议: ...
Java中实现html转pdf
目录1、背景2、需求3、思路4、实现步骤4.1 搭建一个简单的工程4.1.1 引入依赖4.1.2 编写Freemarker工具类4.1.3 编写pdf工具类4.1.4 增加一个模板4.1.5 增加一个控制层4.1.6 运行4.2 功能完善4.2.1 生成的pdf需要支持中文4.2.1.1 程序中引入宋体4.2.1.2 pdf工具类中增加使用中文字体4.2.1.3 freemarker模板中使用中文字体4.2 ...
全球知名的Java Web开发平台Vaadin上线慧都网!
近日,慧都科技正式与国际知名的企业级Java Web开发平台供应商Vaadin达成合作伙伴关系。双方的合作,不仅补强了慧都在前端与应用开发领域的能力,更标志着慧都在软件工程数字化方案版图上的进一步扩展与深化,也为中国企业构建现代化应用开发注入了新动能。
目前Vaadin 开发框架及核心组件已全面上架慧都网,对慧都Dev ...
Java 日志管理的黄金组合: SLF4J+Logback
slf4j 的前世今生
Log4J、Log4J2和LogBack的历史故事
使用过Log4J和LogBack的同学肯定能发现,这两个框架的设计理念极为相似,使用方法也如出一辙。其实这个两个框架的作者都是一个人,Ceki Gülcü,俄罗斯程序员。
Log4J 最初是基于Java开发的日志框架,发展一段时间后,作者Ceki Gülcü将Log4j捐献给了Apache软件基金会 ...
【LeetCode】121. 买卖股票的最佳时机
121. 买卖股票的最佳时机
题目
给定一个数组 prices ,它的第 i 个元素 prices 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
例子
...
剑指offer-33、丑数
题⽬描述
把只包含质因⼦ 2 、 3 和 5 的数称作丑数( Ugly Number )。例如 6 、 8 都是丑数,但 14 不是,因为它包含质因⼦ 7 。 习惯上我们把 1 当做是第⼀个丑数。求按从⼩到⼤的顺序的第 N 个丑数。
如果 n = 9 , 返回 10 。注意事项:我们可以认为 1 也是⼀个丑数。
输⼊:7
返回值:8
思路及解答
暴⼒破解
⾸先,我 ...
【源码解读之 Mybatis】【基础篇】-- 第3篇:SqlSession的创建与生命周期
第3篇:SqlSession的创建与生命周期
1. 学习目标确认
1.0 第2篇思考题解答
在深入学习SqlSession之前,让我们先回顾并解答第2篇中提出的思考题,这将帮助我们更好地理解SqlSession在整个架构中的作用。
思考题1:为什么MyBatis要设计如此复杂的配置系统?
答案要点:
统一管理:所有配置项集中管理,避免配置分散和重复
灵 ...
内部类
什么是内部类
内部类是一个定义在另一个类内部的类。
内部类可分为四种:
1. 成员内部类: 定义在另一个类内部,且没有使用static修饰,且可以访问外部类所有的成员。要创建内部类的实例必须先存在外部类的实例。
public class Outer {
String name;
class Inner {
public void test() {
...
靠谱的程序员推荐阅读----->《阿里Java开发手册》【强制】所有的覆写方法,必须加@Override注解
《阿里巴巴Java开发手册》编程规约->OOP规约 其中有一条,强制要求所有覆写方法添加 @Override 注解。
这是一项非常重要的编码规范。它主要有以下几个核心目的和好处:
📌 1. 编译时检查覆写是否正确
@Override 注解会让编译器检查该方法是否确实成功覆写了父类(或接口)中的方法。如果方法签名与父类方法不一致(例如, ...
springboot~获取原注解的方法findMergedAnnotation使用场景
一 重要知识点
在Spring框架中,AnnotationUtils.findAnnotation()和AnnotatedElementUtils.findMergedAnnotation()是两种不同的注解查找方式,主要区别如下:
1. AnnotationUtils.findAnnotation()
特点:直接查找原始注解
局限性:
无法获取被元注解(如@AliasFor)覆盖的属性值
无法处理注解属性覆盖(Annotation Attr ...
国产化Excel处理组件Spire.XLS教程:Java在 Excel 表格中轻松添加下标
当 Excel 表格中包含化学式、统计脚注或科学数据时,往往需要使用下标来表示。这不仅能够让数据更加清晰,也使文档更加专业。但是,Microsoft Excel 自带的下标功能操作比较繁琐,而且也不支持批量应用,手动操作通常需要花费大量的时间。 基于此,本篇指南将介绍如何借助Spire.XLS使用 Java 实现轻松在 Excel 中插入 ...
剑指offer-32、把数组排成最⼩的数
题⽬描述
输⼊⼀个正整数数组,把数组⾥所有数字拼接起来排成⼀个数,打印能拼接出的所有数字中最⼩的⼀个。例如输⼊数组 {3,32,321} ,则打印出这三个数字能排成的最⼩数字为 321323 。
示例1
输⼊:[3,32,321]
返回值:"321323"
思路及解答
自定义排序(推荐解法)
这道题要求拼起来的数是最⼩的数字,其实是⼀个排序问 ...
接私活神器!一个轻量级的 Java 快速开发平台!
大家好,我是 Java陈序员。
在日常开发中,无论是企业内部开发,还是个人独立开发,亦或是接私活,常常需要进行一些基础设施开发工作,十分繁琐。
这时,如果有一款脚手架开发平台,就能大大提高开发效率。
今天,给大家介绍一个轻量级的 Java 快速开发脚手架,包含前后端,可以说是接私活神器!
关注微信公众号:【Java陈 ...
JDK 25 正式发布,长期支持
JDK 25 是 LTS(长期支持版),至此为止,有 JDK8、JDK11、JDK17、JDK21 和 JDK 25 这四个长期支持版了。
JDK 25 共有 18 个新特性,这篇文章会挑选其中较为重要的一些新特性进行详细介绍
语言特性
基本类型模式匹配(JEP 507)
JDK25作为第三次preview
在Java的模式匹配框架instanceof和switch中直接支持原始类型(如int、 ...
wso2~api的高级限流策略
发布者平台使用高级策略
在发布者平台,对api资源配置时,可以配置api级别或者是消费者(订阅)级别的限流策略;前者api级别配置的策略(高级限流策略),可以只针对某个具有资源,也可以针对某个api资源。
关闭整个api级别的限流,可以对某个资源选择限流策略
admin平台配置高级策略
高级策略-默认,当没有被条件组合选 ...
剑指offer-31、整数中1出现的次数
题⽬描述
求出 1~13 的整数中1出现的次数,并算出 100~1300 的整数中 1 出现的次数?为此他特别数了⼀下 1~13 中包含 1 的数字有 1、10、11、12、13 因此共出现 6 次,但是对于后⾯问题他就没辙了。 ACMer 希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意⾮负整数区间中 1 出现的次数(从 1 到 n 中 1 出现的次数 ...
wso2~系统端口总结
好的,这是 WSO2 API Manager 中这些常见端口的详细总结。了解这些端口对于部署、运维和故障排查至关重要。
我将它们分为 API 流量端口、管理/控制平面端口 和 内部通信端口 三类。
一、API 流量端口 (API Traffic Ports)
这些端口用于处理实际的 API 调用(数据平面流量)。
端口
协议
服务
作用描述
默认使用者
8 ...
刚刚 Java 25 炸裂发布!让 Java 再次伟大
大家好,我是程序员鱼皮。
刚刚,Java 25 正式发布!这是继 Java 21 之后,又一个 LTS 长期支持版本,也是 Java 开发者们最期待的版本之一。其中有个特性可以说是颠覆了我对 Java 的认知,让 Java 再次伟大!
那么 Java 25 都发布了哪些新特性?有没有必要升级?
一篇文章,带你速通 Java 新特性,学会后又能愉快地和面试官 ...