![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 83
朱季谦
原名朱镕军,阿里云专家博主认证,腾讯云社区2022年度最佳作者,曾著有《黑色玫瑰》等网络小说。
展开
-
手把手图解教你Java SPI源码分析
最详细万字图解Java SPI源码分析原创 2024-01-14 21:48:08 · 1422 阅读 · 1 评论 -
Java编程技巧:if-else优化实践总结归纳
一般用来替换if-else的map,我们就是要求在初始化定义后,就不会再允许修改了,因此,这个ImmutableMap生成的map,可以很好地帮我们实现这一点。另外,原创 2024-01-07 10:43:15 · 913 阅读 · 0 评论 -
JVM学习笔记-如何在IDEA打印JVM的GC日志信息
其中,-XX:+PrintGCDetails这是收集器日志参数输出,即开启了GC日志输出;-XX:SurvivorRatio=8意味着新生代中Eden区与一个Survivor区的空间比例是8:1。在main方法运行时,对Java堆大小进行限制设置,如设置堆大小为20MB,即可通过-Xms20M、-Xmx20M、-Mmn10M三个参数来进行设置。若要在Idea上打印JVM相应GC日志,其实只需在Run/Debug Configurations上进行设置即可。原创 2023-12-09 16:32:49 · 1031 阅读 · 0 评论 -
ExecutorService、Callable、Future实现有返回结果的多线程原理解析
ExecutorService、Callable、Future实现有返回结果的多线程原理解析原创 2023-12-08 08:02:29 · 1261 阅读 · 0 评论 -
Java解析xml文件遇到特殊符号&会出现异常的解决方案
Java解析xml文件遇到特殊符号&会出现异常的解决方案原创 2023-12-08 07:54:50 · 1846 阅读 · 0 评论 -
如何写出一个性能优化的单例模式
同时,由于实例的建立是在类加载时才完成的,故天生对多线程友好,getInstance方法也无需使用同步synchronized,可见,使用内部类方式实现单例,既可以做到延迟加载,也不必使用同步关键字,是一种比较完善的实现。这里需注意的地方是:getInstance()方法必须是同步的,否则在多线程环境下,当线程1正新建单例时,完成操作赋值时,线程2可能判断instance为null,故线程2也将启动新建单例程序,这样就会导致多个实例被创建,对性能的影响将会加剧,故加synchronized做同步是必须的。原创 2023-12-05 07:56:09 · 725 阅读 · 0 评论 -
让代码变得优雅简洁的神器:Java8 Stream流式编程
Java8 Stream流式编程原创 2023-12-05 07:53:42 · 1189 阅读 · 0 评论 -
ThreadLocal应用场景及源码分析
ThreadLocal应用场景及源码分析原创 2023-12-04 07:47:33 · 974 阅读 · 0 评论 -
SpringBoot结合easyexcel处理Excel文件
SpringBoot结合easyexcel处理Excel文件原创 2023-12-01 10:41:34 · 870 阅读 · 0 评论 -
设计一款可扩展和基于windows系统的一键处理表格小工具思路
设计一款可扩展和基于windows系统的一键处理表格小工具思路。原创 2023-12-01 10:40:30 · 983 阅读 · 0 评论 -
图解ReentrantLock底层公平锁和非公平锁实现原理
图解ReentrantLock底层公平锁和非公平锁实现原理原创 2023-11-30 09:16:22 · 1835 阅读 · 1 评论 -
Maven Helper插件——实现一键Maven依赖冲突问题
Maven Helper插件——实现一键Maven依赖冲突问题原创 2023-11-28 07:44:36 · 1188 阅读 · 0 评论 -
通过本质看现象:关于Integer受内部初始化赋值范围限制而出现的有趣现象
而当c,d赋值为1000时,就超过了范围,就会创建新的对象,两个引用指向不同的对象,即使对象拥有相同的内容,用==比较结果依然是false,这样的话,c,d已不属于同一个对象了,自然就会为false。前几天我在逛论坛的时候,偶然看到有人讨论这样一个现象,定义四个Integer类型的变量,分别初始化赋值为a=100,b=100,c=1000,d=1000,然后用println分别打印输出a==b和c==d的boolean值。问题便来了,同样类型的数值,为何a==b是正确的,而c==d则被判断为错误。原创 2023-11-25 09:18:19 · 352 阅读 · 0 评论 -
Java源码分析:Guava之不可变集合ImmutableMap的源码分析
Java源码分析:Guava之不可变集合ImmutableMap的源码分析。原创 2023-11-18 07:05:50 · 1181 阅读 · 0 评论 -
String字符串性能优化的几种方案
String字符串是系统里最常用的类型之一,在系统中占据了很大的内存,因此,高效地使用字符串,对系统的性能有较好的提升。原创 2023-11-17 08:01:40 · 900 阅读 · 0 评论 -
Java反射机制开发经验总结
反射是框架底层的灵魂,无论是Spring还是Dubbo,底层都大量使用到反射机制。可以说,反射是Java开发当中一个绕不过的坎。我曾经在实际项目当中有经常用到反射机制,故而将学会的反射用法做一些汇总笔记,当做以后复盘所用。原创 2023-11-15 10:58:43 · 126 阅读 · 0 评论 -
策略枚举:消除在项目里大批量使用if-else的优雅姿势
策略枚举消除大量if-else的方案。原创 2023-11-11 19:50:21 · 332 阅读 · 0 评论 -
微信扫码登录的技术实现思考
微信扫码登录是经常用到的的骚操作,但是,其实现的思路是怎样的,可能很多人都没有去思考过。记得曾经在一次面试当中,面试官就曾问过微信扫码登录的实现思路,这次,以微信读书网页版扫码登录为例子,聊聊我对微信扫码登录技术实现思路一些思考。以谷歌浏览器来做本次分析,打开F12,准备随时观察http连接状况。接下来用谷歌浏览器打开网页版微信读书,点击登录,会弹出一个二维码:可以看到,在二维码弹出来的时候,前端调用了后端两个接口,一个是getuid(),一个是getinfo(),这里面涉及到哪些逻辑实现呢原创 2021-03-11 15:26:17 · 1568 阅读 · 0 评论