Loading

摘要: 我有一篇Java Stream使用手册,学了就是你的了! 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介 日常编程工作中,Java集合会经常被使用到,且经常需要对集合做一些类似过滤、排序、对象转换之类的操作。 为了简化这类操作,Java8添加了一套新的Stream API,使用方式就像写SQL一样,大大简化了这 阅读全文
posted @ 2023-02-25 12:09 扣钉日记 阅读(931) 评论(0) 推荐(2) 编辑
摘要: 记一次使用gdb诊断gc问题全过程 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 上次解决了GC长耗时问题后,系统果然平稳了许多,这是之前的文章《GC耗时高,原因竟是服务流量小?》 然而,过了一段时间,我检查GC日志时,又发现了一个GC问题,如下: 从这个图中可以发现,我们GC有一些尖峰,有时会 阅读全文
posted @ 2023-02-04 18:47 扣钉日记 阅读(2264) 评论(6) 推荐(12) 编辑
摘要: 请求量突增一下,系统有效QPS为何下降很多? 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 最近我观察到一个现象,当服务的请求量突发的增长一下时,服务的有效QPS会下降很多,有时甚至会降到0,这种现象网上也偶有提到,但少有解释得清楚的,所以这里来分享一下问题成因及解决方案。 队列延迟 目前的Web服务器, 阅读全文
posted @ 2023-01-16 22:40 扣钉日记 阅读(1739) 评论(4) 推荐(5) 编辑
摘要: GC耗时高,原因竟是服务流量小? 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 最近,我们系统配置了GC耗时的监控,但配置上之后,系统会偶尔出现GC耗时大于1s的报警,排查花了一些力气,故在这里分享下。 发现问题 我们系统分多个环境部署,出现GC长耗时的是俄罗斯环境,其它环境没有这个问题,这里 阅读全文
posted @ 2023-01-07 22:02 扣钉日记 阅读(805) 评论(3) 推荐(3) 编辑
摘要: Java8中那些方便又实用的Map函数 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,一起来看看吧。 computeIfAbsent函数 比如,很多时候我们需要对数据进行分组,变成Map< 阅读全文
posted @ 2022-11-12 14:38 扣钉日记 阅读(699) 评论(0) 推荐(1) 编辑
摘要: Optional用法与争议点 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 要说Java中什么异常最容易出现,我想NullPointerException一定当仁不让,为了解决这种null值判断问题,Java8中提供了一个新的工具类Optional,用于提示程序员注意null值,并在特定场 阅读全文
posted @ 2022-11-06 20:45 扣钉日记 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 如何kill一条TCP连接? 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 如果你的程序写得有毛病,打开了很多TCP连接,但一直没有关闭,即常见的连接泄露场景,你可能想要在排查问题的过程中,先临时kill一波泄露的连接。 又比如你要验证程序在遇到网络错误时的自愈能力,想手动kill掉一些正 阅读全文
posted @ 2022-10-29 15:30 扣钉日记 阅读(1189) 评论(1) 推荐(1) 编辑
摘要: Java实现7种常见密码算法 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 前面在密码学入门一文中讲解了各种常见的密码学概念、算法与运用场景,但没有介绍过代码,因此,为作补充,这一篇将会介绍使用Java语言如何实现使用这些算法,并介绍一下使用过程中可能遇到的坑。 Java加密体系JCA J 阅读全文
posted @ 2022-10-22 11:35 扣钉日记 阅读(1531) 评论(0) 推荐(0) 编辑
摘要: tar、gzip、zip、jar是什么,怎么查看? 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 如果你是后端程序员,我想你一定见过*.tar.gz、*.zip、*.jar后缀的文件吧,这些都是压缩文件,那这些文件都是怎么生成的,又有哪些关键区别呢?本文将带你一起了解这些文件和配套的操作命令,以及其经常使用的场 阅读全文
posted @ 2022-09-17 15:36 扣钉日记 阅读(891) 评论(1) 推荐(1) 编辑
摘要: 异或的4种堪称神奇的运用场景 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 众所周知,编程语言一般都内置了3种位运算符&(AND)、|(OR)、~(NOT),用来实现位运算,但其实还有一种非常常用的位运算,即异或^(XOR),数学中常用⊕表示。 异或的运算逻辑如下: 1 ⊕ 1 = 0 1 阅读全文
posted @ 2022-09-10 12:12 扣钉日记 阅读(805) 评论(0) 推荐(0) 编辑