自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 桌面端 codex 登录如何跳过电话号码短信验证, 无需升级订阅, 无需境外电话号码, 无需虚拟号接码

安装桌面端的 codex 后登录跳转网页通常会出现电话号码短信验证页, 很多人会卡在这里. 接下来将讲述如何跳过验证并正常使用.注: 如果失败, 尝试退出登录后重新登录再导出认证信息.

2026-11-03 23:55:56 200 1

原创 java注解简写规则

同时使用了这两种简写。

2026-10-28 15:52:22 132

原创 java弱引用WeakReference最直白的理解

当目标对象不再被强引用或软引用保持可达,仅通过弱引用可达时,GC 在处理弱引用时会清除指向该对象的弱引用,使其具备被回收的条件。需要注意,弱引用被清除和对象实际完成内存回收,并不一定发生在同一时刻。因此,弱引用常用于不希望引用关系阻止对象回收的场景,而软引用则曾常用于内存敏感型缓存等场景。这样的引用对象来表达弱引用语义,并由 JVM 配合垃圾回收机制进行特殊处理。对象本身,而是它与目标对象之间的一种特殊引用关系。的字段修饰符,不能直接将普通字段声明为弱引用。所谓弱引用,指的并不是。

2026-10-15 15:27:37 80

原创 Java 并发编程:深入理解 synchronized 的使用与原理

是 Java 提供的内置同步机制,主要用于解决多线程环境下的线程安全问题。当多个线程同时访问共享数据时,如果没有适当的同步控制,就可能出现数据竞争、更新丢失等问题。例如,多个线程同时对一个共享变量执行count++,由于该操作并不是原子的,最终结果可能小于预期值。count++;假设两个线程各自执行 10000 次,理论上最终结果应该是 20000,但实际上可能小于 20000。原因是count++并不是一个原子操作,它大致包含读取、计算和写入三个步骤。

2026-10-12 14:44:36 167

原创 HashMap 的 getOrDefault, putIfAbsent, computeIfAbsent, computeIfPresent 方法在 key 存在但值为 null 时的表现

当 HashMap 中的 key 存在, 但对应的值为 null 时, 调用 computeIfPresent 不会将新值添加进去. 即只有当 key 存在且对应的值不为 null 时该方法才会执行赋值. (即值为 null 的 key 不判定为 present)当 HashMap 中的 key 存在, 但对应的值为 null 时, 调用 putIfAbsent 会将新值添加进去. 即当 key 不存在或对应的值为 null 时该方法均会执行赋值. (即值为 null 的 key 判定为 absent)

2026-09-16 15:56:18 221

原创 java stream 的 findFirst 及 findAny 方法遇到 null 元素时会出现 NullPointerException

【代码】java stream 的 findFirst 及 findAny 方法遇到 null 元素时会出现 NullPointerException。

2026-08-05 14:02:26 14

原创 MySQL里的三个concat函数

【代码】MySQL里的三个concat函数。

2026-06-12 10:51:33 200

原创 java中常见Map的键值是否允许为null总结

2026-06-11 14:28:15 190

原创 深入理解 Java volatile:从可见性到内存屏障

编译器会优化代码顺序CPU 会乱序执行JVM JIT 会优化执行路径int a = 1;int b = 2;b = 2a = 1单线程结果不变JVM 就允许优化。这叫:指令重排序(Instruction Reordering)不能。可见性有序性原子性让一个线程写入的数据对其他线程立即可见“看得见”“抢得到”volatile 保证可见性synchronized 保证原子性这是理解 Java 并发最核心的一组概念。

2026-06-02 10:02:32 236

原创 MySQL 实战:如何根据 ID 将表 B 的字段更新到表 A

跨表更新数据。虽然 MySQL 提供了多种写法,但从稳定性和性能角度来看:是最推荐的标准解法同时要特别注意:⚠️ 子查询写法在未匹配时会写入 NULL⚠️ 这是很多线上事故的常见原因。

2026-04-29 17:08:07 268

原创 HttpServletResponse 中 Header 与 OutputStream 的正确使用顺序(避坑指南)

👉Header 是“声明”,Body 是“内容”,声明必须在内容之前文件下载接口代理网关透传“只要开始写流,就别再碰 header”

2026-04-28 16:24:12 421

原创 java stream 的 findFirst 和 findAny 踩坑点

当集合中包含null元素, 而使用 findFirst() 或 findAny() 方法刚好筛选到该元素时, 会触发 java.lang.NullPointerException , 因为最后的结果是通过 Optional.of(T value) 方法转换的, 该方法要求 value 不能为空.

2026-04-20 17:32:26 70

原创 java中stream的Collectors.toMap常见踩坑点

如果转换为map后可能出现null的value, 会抛出异常, 需先过滤掉null值value.如果转换为map后可能出现重复key, 默认会抛出异常, 需指定合并策略.如果转换为map后可能出现null的key, 不会抛出异常.

2026-04-16 10:13:35 41

原创 win11首次使用, 如何跳过微软账号登录

时, 按下 Shift + F10 打开命令提示符;在安装界面(OOBE)看到 “

2026-04-14 10:50:14 107

原创 数据库SQL的WHERE中比较条件出现NULL

【代码】数据库SQL的WHERE中比较条件出现NULL。

2026-04-09 09:50:54 44

原创 数据库SQL中的IN, NOT IN和NULL

【代码】数据库SQL中的IN, NOT IN和NULL。

2026-04-03 10:15:00 78

原创 为什么 Java 编译器要求 catch 块显式 return 或 throw

对于有返回值的方法中的try…块的所有路径都要有显示的return或throw, 编译器不会分析方法内部逻辑.的规则,编译器只依赖语法和方法签名来判断返回路径, 而不是去智能推断所有方法内部的实际行为。这是因为java编译器遵循。

2026-03-24 16:44:39 43

原创 NAT是什么

NAT = 通过修改 IP 和端口,让多个内网设备共享一个公网 IP它依赖“连接记录表”决定数据转发方向。

2026-02-26 09:39:45 357

原创 BigDecimal转字符串方法toString(),toPlainString(),toEngineeringString()区别

toString() 或 toEngineeringString() 方法转换的字符串有不确定性, 在数值特别大或特别小的时候可能会以指数形式表示, 因此在需要全数字处理的场景下可能会出现问题, 如始终需要原样输出数字时建议使用 toPlainString() .

2026-02-06 17:10:48 184

原创 java调用可变参数方法时不传该参数, 接收到的是空数组还是null

【代码】java调用可变参数方法时不传该参数, 接收到的是空数组还是null。

2026-01-29 10:34:57 243

原创 java中Date, LocalDate/LocalTime/LocalDateTime与时区

Date本身不包含时区, 它内部通过整型成员变量存储从「1970年1月1日 00:00:00 UTC」开始计算的毫秒数.

2025-11-21 11:00:44 237

原创 关于 isAssignableFrom, isInstance(), instanceof 的使用

以上返回均为boolean值。

2025-03-26 11:04:23 310

原创 java的for循环中的变量何时回收

(注: 基于GC特性不是立即回收, 只是可以回收.)

2025-03-19 09:59:23 388

原创 HashMap在调用getOrDefault, putIfAbsent, computeIfAbsent时, 若key对应的value值为null会如何

说明: 返回指定键映射到的值,如果此映射不包含该键的映射,则返回defaultValue。示例:结论:1. 当key对应的value为null时, 返回的是null2. 当key不存在时返回defaultValue3. 该方法相当于:2. putIfAbsent(K key, V value)说明: 如果指定的键尚未与值关联(或映射为null),则将其与给定的值关联并返回null,否则返回当前值。示例:结论:1. 当key对应的value为null, 或key不存在时, 设置key为va

2025-03-14 11:04:06 601

原创 java方法可变参数传入null值会被如何接收

java方法中的可变参数相当于一个数组, 当调用该方法并传入null时, 实际在方法中接收的是null还是空数组还是一个包含null元素的数组?

2025-03-04 09:52:20 325

原创 线程池关闭方法shutdown()与shutdownNow()

其中 awaitTermination(long timeout, TimeUnit unit) 方法为阻塞等待一段时间后, 返回线程池是否已关闭(返回值: true-已关闭, false-未关闭), 它本身不会发起关闭线程池操作.shutdown() 是将已提交的任务执行完后再关闭。shutdownNow() 是立即尝试中断所有任务。

2025-03-03 14:38:24 495

原创 定时任务线程池ScheduledExecutorService/ScheduledThreadPoolExecutor的核心线程数对提交任务数的影响

ScheduledThreadPoolExecutor与传统线程池不同处之一在于它只支持设置核心线程数corePoolSize(不支持设置maximumPoolSize, 实际该参数无效), 它内部维护的队列为DelayedWorkQueue.

2025-03-03 11:18:22 302

原创 java反射getDeclaredFields/getDeclaredField与getFields/getField的区别

如何获取本类(private, default, protected, public)及父类/超类(private, default, protected, public)的所有字段?(2) 在(1)的基础上, 该字段可以是同时被 static, final, volatile, transient 中的一种或几种修饰。(2) 在(1)的基础上, 该字段可以是同时被 static, final, volatile, transient 中的一种或几种修饰。(1) 能且仅能获取到。

2025-02-18 10:01:49 712

原创 java类成员变量直接赋值, 代码块赋值, 构造函数赋值的区别及执行顺序

【代码】java类成员变量直接赋值, 代码块赋值, 构造函数赋值的区别及执行顺序。

2025-02-17 10:56:36 322

原创 java按集合中对象的某几个属性去重

由于该方式需要修改原实体类, 并可能会影响到其他使用hashCode及equals的功能而引起bug, 故不推荐.

2025-02-14 16:44:53 396

原创 如何下载m3u8视频到本地

下载安装VLC media player, 地址: 使用chrome浏览器, 打开F12, 打开播放视频的网页, 在Network中筛选带有m3u8关键字的URL, 如下图所示:打开VLC播放器, 选择 媒体-> 打开网络串流, 如下图所示:将第2步中筛选出的带有m3u8的URL复制粘贴到第3步打开的窗口的文本框中, 并点击右下角转换, 如下图所示:在弹出的转换窗口中配置视频信息, 也可直接使用默认项mp4, 点击浏览按钮, 设置保存文件的路径及名称, 点击开始进行下载转换, 入下图所示:

2025-02-08 00:40:39 5997

原创 如何使用ssh方式克隆/推送/拉取github仓库文件

【代码】如何使用ssh方式克隆/推送/拉取github仓库文件。

2025-01-24 10:32:16 1010

原创 如何查看windows下端口占用进程并终止进程

若在windows下启动应用, 出现端口被占用的情况, 可使用dos命令按以下步骤进行查询端口占用进程, 并按需决定是否强制终止.

2025-01-21 11:15:53 734

原创 mybatis中SqlSessionFactory及SqlSession线程安全问题

1. SqlSessionFactory默认是线程安全的, 建议全局唯一, 不要多次重复创建, 可使用单例模式.2. SqlSession默认不是线程安全的, 建议将作用域限定在方法内部, 即使用时创建, 用完关闭, 不能将其设置为类变量(静态变量)或实例变量.mybatis用户手册中关于 SqlSessionFactoryBuilder, SqlSessionFactory, SqlSession, 映射器实例 作用域(Scope)和生命周期的说明如下:

2025-01-21 10:40:51 478

原创 对于比较类Comparator方法int compare(T o1, T o2)的应用与理解

Comparator类是一个被@FunctionalInterface标注的函数式接口,故通常状况下只需实现其intcompare(To1,To2)方法,且通常已匿名内部类或lambda的形式出现,常见的应用场景如:创建有序集合:二.如何根据intcompare(To1,To2)方法的返回值进行排序?先看jdk中对于该方法参数及返回值的注释说明:如果直译的话可能不太容易理解甚至容易给人造成困惑,故可以将其以一种更容易接受的方式进行同等表述,即理解方式一:或

2025-01-20 14:50:09 716

原创 CentOS安装java

CentOS安装java

2025-01-16 12:19:45 558

原创 spring aop通知类型注解方法执行顺序

【代码】spring aop通知类型注解方法执行顺序。

2025-01-02 10:11:33 489

原创 List按照指定顺序集合的元素排序, 不在指定顺序集合中的元素排最后

List按照指定顺序集合的元素排序, 不在指定顺序集合中的元素排最后。

2024-12-23 16:10:10 329

原创 CentOS安装nginx

【代码】CentOS安装nginx。

2024-12-10 15:10:20 496

原创 Apache ListUtils.partition或Guava Lists.partition注意事项

无论是使用Apache commons-collections4中的ListUtils.partition还是使用Guava的Lists.partition, 作用都是将大集合分割成若干小集合.两者底层均基于jdk中List的subList方法实现, 由于subList方法分割后的集合只是原集合固定索引段的视图, 而非新集合, 故一些不当的增删操作会产生难以预料的错误.假设现在要遍历以上拆分后的集合, 并删除每个子集合中包含"1"的元素, 之后进行相应的逻辑处理, 若采用以下写法, 将不能得到预期结果,

2024-12-04 16:15:43 823

空空如也

空空如也

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

TA关注的人

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