自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 揭秘!IDEA 中那些让你事半功倍的实用技巧

大家好,我们又见面了。这期给大家带来的是个人在实际工作过程中使用 idea 开发 Java 的一些实用的技巧。个人使用的是 Mac 版 IntelliJ IDEA 2024.2.4。为了保证准确性,所以本文将以 Mac 版为准,Win 版可以尝试将 command 代替为 ctrl,option 替代为 Win 中的 alt 进行学习。例如 Mac 中复制是 command + C 而 Win 中是 ctrl + C,如通过替换未能得到正确快捷键,烦请百度查询,本文旨在提供思路。这个模块会列举个人平时工作

2024-11-29 09:15:02 514

原创 揭秘HotSpot JVM:探索内存区域划分细节

大家好,我们又见面了。这一篇内容将承接《JVM 内存区域划分精讲 上》,唠一唠 HotSpot 虚拟机实现的一些小细节,HotSpot 是 OracleJDK 和 OpenJDK 中所带的虚拟机,也是目前使用范围最广的 Java 虚拟机。安全带系好,发车咯!HotSpot 在虚拟机栈和本地方法栈的实现上,直接将二者合二为一,也就是说使用同一个栈来支持 Java 方法和本地方法的执行,下文以 Java 栈代称。并且在 HotSpot 的实现中 Java 栈是不支持动态扩展的,也就是说 Java 栈通常只会抛出

2024-11-18 09:02:26 1008

原创 JVM内存区域划分精讲 上

大家好,我们又见面了。有小伙伴说 JVM 内存区域在学习与面试的时候常常理不清,为了解决这位小伙伴的困扰,我将通过两篇文章为大家理清 JVM 内存区域划分,这篇是第一篇将为大家介绍 JVM 内存区域的逻辑概念,下一篇将和大家唠一唠 HotSpot 虚拟机实现的一些小细节。安全带系好,发车咯!首先我们来明确一下运行时数据区的概念,Java 虚拟机在执行 Java 程序的过程中会将它所管理的内存划分为若干不同的数据区,这些数据区就是运行时数据区,这些区域有各自的用途和生命周期。根据《Java 虚拟机规范》的规定

2024-11-13 13:16:04 969

原创 唠点面试官爱听的系列之ThreadLocal

在实际开发中,我们更应该主动在恰当时机调用 remove 方法,对不再使用的 ThreadLocal 对象进行清理,避免触发 ThreadLocal 的清理机制,进而提升 get、set、remove 方法的执行效率。每个线程对 ThreadLocal 变量的访问都是独立的,每个线程都会拥有自己独立的副本。ThreadLocal 的优势是无锁化提升并发性能和简化变量的传递逻辑,每个线程对 ThreadLocal 变量的访问都是独立的,每个线程都会拥有自己独立的副本。

2024-11-11 11:33:31 797

原创 ThreadLocal源码解读:内存泄露问题分析

通过两期文章的深度剖析,大家应该对 ThreadLocal 的 API 使用以及内存泄露问题有了进一步的理解。ThreadLocal 优势是无锁化提升并发性能和简化变量的传递逻辑。在实际业务中使用 ThreadLocal 类时应该在恰当位置调用 remove 方法显式移除值。尽可能的避免触发 ThreadLocal 清理过时 Entry 的逻辑,从而提高 ThreadLocal 性能。

2024-10-31 09:07:48 1876

原创 ThreadLocal源码解读:初识ThreadLocal

每一个线程对象中都存储了一个 ThreadLocalMap 对象,ThreadLocalMap 对象以 ThreadLocal 对象作为 key 存储值,这个值就是我们所说的局部变量。但是在设计的过程中并没有直接暴露给我们操作 ThreadLocalMap 的 API,所以在这个过程中我们需要 ThreadLocal 对象作为桥梁,ThreadLocal 类包含 initialValue、get、set、remove 方法。

2024-10-28 08:36:14 755

原创 面试官:主键使用自增还是UUID?

通过上述分析我们可以看出无论是自增id还是UUID都各有优势,在实际开发中,我们可以根据不同的场景选用不同的主键策略。对于非核心业务,可以使用对应表的主键自增id,例如告警、日志、监控等信息。对于核心业务,主键的设计应该优先考虑全局唯一且单调递增即分布式id。除非已经确定系统一定是单机系统,未来也没有迭代成分布式系统的可能。对于分布式id目前主流方案包括UUID、雪花算法、MySQL维护自增id表、redis的incr命令、美团技术团队的Leaf分布式id生成服务等。在软件开发中只有平衡,没有银弹。

2024-10-24 11:32:37 714

原创 实战学习Java8 Stream新特性

学会使用java8的Stream新特性,可以极大的减少工作中的代码量,可以使自己的代码看起来更整洁,同时很多框架源码中也大量使用Stream,掌握了它也可以为我们阅读源码提供帮助,希望这篇文章可以给大家带来帮助。

2024-10-09 08:30:51 485

原创 MySQL——带着面具的“内连接”

MySQL优化器可能决定使用内连接来执行原本的外连接查询,因为它认为这样可以提供更好的性能。优化器的决策基于多种因素,包括连接条件、过滤条件、统计信息和索引使用情况。如果优化器的行为不符合你的期望,你还可以考虑使用提示或其他方式来指导优化器按照你的意图执行查询。

2024-10-05 13:53:40 537

原创 开发利器——异常栈,你真的会看吗?

学会查看分析异常栈,可以为我们工作大大提高效率,希望这篇文章给大家带来收获,最后再送给大家一个小技巧。异常栈不仅仅可以用来排查异常哦,还可以帮助大家学习源码,debug 源码找不到入口怎么办,那就创造一个异常!

2024-09-11 20:21:20 1834 1

原创 UML类图基础与设计模式六大原则

值得收藏的设计模式启蒙文章

2022-09-26 21:04:34 2347

空空如也

空空如也

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

TA关注的人

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