- 博客(131)
- 收藏
- 关注
原创 Java项目集成Kotlin语法
作为JVM上跑的东西,编译成.class的文件都可以直接衔接集成执行,除了Java外,Kotlin、Scala等都可以集成到Java
2025-03-24 15:33:52
267
原创 Error running ‘WebApplication‘ Error running WebApplication. Command line is too long解决办法
Error running ‘WebApplication‘ Error running WebApplication. Command line is too long解决办法
2025-02-20 11:52:56
140
原创 HTTP、HTTPS区别可靠性及POST为什么比GET安全的探讨
HTTP、HTTPS的执行流程、POST、GET到底哪个安全?都安全还是都不安全?
2025-02-16 16:40:23
1338
1
原创 Java编译.class字节码图示解析
通过上面的定义规则,下图标记了一部分常量池项,每种连续的颜色代表一项从第一项0a开始,CONSTANT_Methodref 0x0A 5 字节(1 + 2 + 2),所以第一行绿色5字节代表这个方法名常量,00 06代表指向第6项指向(第二行黑色框)00 0f表示索引是常量池15项(9行绿色)
2025-01-11 17:20:35
512
原创 G1垃圾回收器的FullGC
垃圾回收等参数是非常重要的调试参数,用于捕获内存溢出时的堆内存快照,帮助分析内存泄漏或内存使用问题。建议在开发或生产环境中开启这些参数以备问题分析之需。
2025-01-09 22:33:10
446
原创 360pika—弹性 KV 数据存储系统入门安装使用
360、360游戏、新浪微博、喜马拉雅、美团网、学而思网校、58同城、小米、脉脉等公司都在使用的Pika,不用修改代码平滑从Redis迁移到Pika,对热数据做缓存,将全量数据持久化存储到 RocksDB,并且实现冷热分级存储
2024-12-23 19:03:08
860
原创 Netty内存分配机制:直接/堆内存、池化/非池解析
自定义ByteBuf可以heap或direct内存,但是通过网络IO返回的ByteBuf无法指定内存类型只能是direct
2024-12-16 12:53:01
470
原创 服务请求QPS上不来?看看有没有正确配置参数
"不改参数,就请求都进不来!" 看似玩笑,实际却是许多系统性能问题的真实写照。不要再抱怨你的服务“扛不住高并发”,先看看是不是被小小的参数限制住了。
2024-12-16 10:24:16
475
原创 Java线程interrupt、wait-notify/all、sleep等方法(源码级分析)
也就是WAIT/TIME WAIT本质上是用一个Object中的等待队列去存储需要等待的线程对象,每一个Object对象都可以充当这个角色,获取这个对象的waitset才能把Thread放入,唤醒相当于再从这个waitset中把线程剔除来再唤醒,这也就是为什么wait notify/all 方法需要synchronized同一个对象了。它清除中断标志是为了避免开发者不小心忽略异常后,线程还带着一个“脏标志”继续运行,导致逻辑混乱,真是贴心的很。由于迭代器用的还是DequeueWaiter,所以这个仍然是。
2024-12-06 19:36:01
674
原创 CentOS查看日志:别用 cat,当心服务器“嘎了”
再强调一遍,日志大,别用 cat,整不好就让服务器“嘎”了! 用 tail 看尾巴,用 less 分页翻,用 grep 定点搜,既稳又快。记住,工作稳当,生活安逸,别给自己找麻烦。
2024-12-02 01:16:54
207
原创 别整手动ACK了,自动ACK才是正道!
手动ACK看着灵活,但是真不好用,容易增加开发难度,还给自己挖坑。自动ACK简单直接,收到就算确认,失败了也不用担心,直接死信队列兜底,队列和业务分工清楚,系统也能更稳。
2024-11-30 20:03:45
472
原创 理解Linux的select、poll 和 epoll:从原理到应用场景
I/O 多路复用并不是什么新东西,select早在 1983 年就出现了,poll在 1997 年,epoll是 2002 年的产物。面试题总爱问“多路复用多厉害?”其实它就是把轮询的锅甩给了操作系统,而操作系统不过是用 CPU 指令帮你完成事件监听罢了。厉害?能让程序员少操点心才算厉害!
2024-11-29 17:33:18
622
原创 ClickHouse 中利用Map类型存储多key数组并进行高效查询
在 ClickHouse 中使用 Map 类型存储复杂的嵌套数据结构(如包含数组的 JSON 数据)
2024-11-28 18:21:56
746
原创 深入解析Java的int类型(24年了你不会还不知道它最大是约21亿吧)
由于固定的范围和溢出问题,在处理大整数或高精度计算时,需使用 long 或 BigInteger。通过理解 int 的存储结构和特性,我们可以更好地在开发中发挥它的优势,同时规避潜在的陷阱。
2024-11-23 21:53:52
636
原创 ByteBuffer 与 ByteBuf 的对比与优缺点分析
在大多数高性能网络开发中,ByteBuf 是更好的选择,尤其是在需要高吞吐量、低延迟的场景下,ByteBuf 的灵活性和效率是 ByteBuffer 无法比拟的。如果你正在构建基于 Netty 的系统,或者处理大量流式数据,ByteBuf 是首选。
2024-11-23 21:31:38
844
原创 IOException: Broken pipe与IOException: 远程主机强迫关闭了一个现有的连接
IOException: Broken pipe与IOException: 远程主机强迫关闭了一个现有的连接,这两个经常会有概念上的混淆,到底是什么原因,在这里我做出解释
2024-11-17 02:08:30
1499
原创 通过物流分拣系统来理解RabbitMQ的消息机制
想象一个物流分拣系统,包裹穿梭于不同的分拣中心和配送站,最后精准地送达客户手中。RabbitMQ的消息传递机制就像这样的物流系统!
2024-11-12 12:44:32
1180
原创 Java对接ByteHouse(数仓版)并使用Mybatis Plus@DS多数据源
Java对接ByteHouse并且使用Mybatis Plus操作、多数据源切换操作
2024-10-25 11:28:28
1075
原创 Java实现油画滤镜效果【参数可调】
油画滤镜的目的是通过模仿油画的画笔笔触,使得图像看起来像是手工绘制的一幅油画,而不仅仅是照片。本文将带你一起实现一个简单的油画滤镜,并结合多线程技术,提高图像处理的效率。
2024-10-19 01:44:15
373
原创 【Linux】top命令查看CPU、内存使用率、解释
top 是 Linux 和类 Unix 系统中非常常用的一个命令,用于实时显示系统的进程和资源使用情况。它帮助用户监控系统的性能、查找占用较高资源的进程,并管理系统任务。它动态更新,并提供了许多交互式功能,用户可以通过快捷键对显示进行调整或操作。
2024-10-18 11:57:04
9132
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人