自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 优化程序性能:JVM 会对final变量进行优化(如编译期常量折叠,直接将常量值嵌入字节码中,避免运行时获取);具体含义

* 常量折叠(Constant Folding)是 JVM 在编译阶段(由 javac 编译器 + JIT 编译器协同完成)** 对符合条件的final变量进行的优化手段:它会将代码中对final常量的 “引用访问”,直接替换为 “常量的实际值”,并将该值嵌入到生成的字节码中,从而避免程序运行时通过类 / 对象查找获取变量值的开销,提升执行效率。简单说:就是 “编译时把变量名换成具体值”,运行时不用再去读取变量的内存地址,直接使用现成的值。常量折叠是 JVM 编译阶段的优化,将符合条件的。

2025-12-21 18:19:39 905

原创 java中<clinit>()与<init>()区别

类加载的初始化阶段不会执行实例构造方法(<init>(),即平时写的构造函数),仅执行类构造方法(<clinit>()类构造方法<clinit>()是编译器自动生成的,用于初始化静态变量和静态代码块,仅执行一次;实例构造方法<init>()用于初始化对象的实例资源,仅在创建对象(new/ 反射等)时执行,与类加载流程无关;类初始化阶段由「主动使用」触发,核心任务是执行<clinit>(),保证类的静态资源完成初始化。

2025-12-21 17:52:48 485

原创 git切换分支

Git stash pop冲突后文件状态解析 当git stash pop遇到冲突时: 冲突文件会以特殊状态同时存在于暂存区和工作区 暂存区记录了冲突前的多个版本(基础版、当前版、stash版) 使用git checkout stash@{0}--<file>仅覆盖工作区文件 暂存区仍保留冲突标记,导致文件看似"已在暂存区" 解决方案: 确认文件内容后执行git add正式解决冲突 或使用git reset放弃冲突修改 这种情况是Git处理冲突时的特殊机制,不同于常规的文件暂

2025-12-13 17:44:13 632

原创 git filter -branch作用

git filter-branch是Git中用于重写历史记录的危险命令,主要用于删除敏感信息、修改提交者信息、提取子目录和文件重命名。它通过--tree-filter等选项批量修改提交,但会改变所有提交哈希值,影响协作。由于破坏性强,官方推荐使用更安全的git-filter-repo或BFG Repo Cleaner替代。操作前务必备份仓库,并在副本上测试,处理共享仓库时需协调团队成员。该命令适合深度清理历史,但应谨慎使用。

2025-12-13 17:17:54 379

原创 当前分支是hotfix/pay-error,然后在当前分支基于dev分支创建release1,解析这段代码执行步骤,以及出现错误的原因

Git切换分支时冲突与否的关键在于文件是否有提交记录。对于已跟踪文件:1)有提交记录且未提交修改的文件,切换分支会因删除历史数据而冲突;2)仅add但未提交的文件,切换分支不会冲突。冲突本质是Git保护已提交历史不丢失的行为。解决方案包括暂存修改、提交修改或放弃修改。核心逻辑:已"存档"文件修改后切换易冲突,仅"草稿"状态文件切换不冲突。

2025-12-03 19:48:36 1015

原创 git 新建分支基于什么

Git新建分支的本质是基于某个特定提交节点创建指针。默认情况下会基于当前分支的最新提交创建新分支,但也可指定其他基础,包括:1)其他本地分支;2)历史提交(用于调试);3)远程分支(协作开发);4)暂存修改(stash)。关键注意:新建分支会携带当前未提交的修改,建议先提交或暂存修改再创建分支。通过git checkout -b或git switch -c命令实现,后接目标基础的分支名/提交哈希/远程分支名即可灵活创建不同场景所需的分支。

2025-12-03 08:40:36 871

原创 Git 学习路径

摘要:本文为Java程序员提供了一套系统化的Git学习路径,重点强调理解原理而非死记命令。建议从官方文档《ProGit》入手掌握基础概念,通过可视化工具LearnGitBranching练习分支操作,再结合廖雪峰教程进行实战演练。深入阶段需理解Git对象模型和引用机制,并通过模拟团队协作场景(如冲突解决、PR流程)巩固技能。推荐使用GitKraken和IDEA内置工具提升效率,遇到问题优先从原理推导解决方案。整个学习过程建议1-2周打基础,2-3周实战演练,最终形成"问题→原理→解决"的

2025-12-02 18:43:41 758

原创 Kafka日志清理与日志压缩策略(面试核心解析)

log.compaction.delete.retention.ms :被标记为“待删除”的消息(Key 对应的最新消息为 tombstone 墓碑消息)的保留时间(默认86400000ms=24小时),过期后彻底删除。日志压缩针对 Key非null 的消息,核心是“保留每个 Key 的最新版本,删除历史旧版本”,适用于需要“状态回溯”的场景(如用户配置、订单状态同步)。- log.cleaner.max.compaction.lag.ms :消息写入后最多多久必须被压缩(默认-1,无强制限制)。

2025-12-02 15:54:16 360

原创 git rm --cached*.java清除暂存使用相关

https://chat.deepseek.com/share/redok2kl7k4ffuh56w

2025-12-01 11:43:08 131

deepseek_share_1764480135438.png

deepseek_share_1764480135438.png

2025-11-30

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

TA关注的人

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