首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
苦味代码
掘友等级
开发工程师
|
阿里巴巴
后端仔
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
10
文章 10
沸点 0
赞
10
返回
|
搜索文章
最新
热门
ConcurrentHashMap中有十个提升性能的细节,你都知道吗
一些题外话 前一篇文章我们对HashMap的实现做了详细的解析和总结,这篇文章继续剖析一下ConcurrentHashMap的实现。由于ConcurrentHashMap的内容比较多,而且Java 7
Java 8 ConcurrentHashMap源码中竟然隐藏着两个bug
Java 7的ConcurrenHashMap的源码我建议大家都看看,那个版本的源码就是Java多线程编程的教科书。在Java 7的源码中,作者对悲观锁的使用非常谨慎,大多都转换为自旋锁加volati
Java中七个潜在的内存泄露风险,你知道几个?
虽然Java程序员不用像C/C++程序员那样时刻关注内存的使用情况,JVM会帮我们处理好这些,但并不是说有了GC就可以高枕无忧,内存泄露相关的问题一般在测试的时候很难发现,一旦上线流量起来,立刻就是一个线上故障。 1. 内存泄露的定义 2. 未关闭的资源类 当我们在程序中打开一…
【技术洞察】JDK 16 新特性速览
1. 支持类型匹配的instanceof 2. record关键字 与CMS中的ParNew和G1类似,ZGC也采用标记-复制算法,不过ZGC对该算法做了重大改进:ZGC在标记、转移和重定位阶段几乎都是并发的,这是ZGC实现停顿时间小于10ms目标的最关键原因。 ZGC只有三个…
啥?用了并行流还更慢了
Java 8给大家带来了一个非常便捷的多线程工具:并行流,一改往日Java多线程繁琐的编程规范,只需要一行代码,就可以让一个多线程跑起来,似乎让很多人忘记了被多线程支配的恐惧,这篇文章给大家分享一个真实的生产故障,由于在消费消息的处理器中使用了Java 8的并行流,导致集群消费…
InnoDB自增原理都搞不清楚,还怎么CRUD?
虽然我们习惯于给主键ID指定AUTO_INCREMENT属性,但是AUTO_INCREMENT也是可以指定到非主键字段的,唯一的约束就是这个字段上面得加索引,有了索引,就可以通过类似SELECT MAX(*ai_col*)的语句快速读到这列数据的最大值。 在这个版本之前,用AU…
Builder注解不好用,试试SuperBuilder
相信Lombok插件大家一定不会陌生,一个常用的注解是:@Builer, 它可以帮我们快速实现一个builder模式。以常见的商品模型为例: 这样写不但美观,而且还会省去好多无用的代码。 给BaseDTO上加上Builder注解也不会有任何效果。事实上,Builder注解只管承…
Arthas原理系列(五):watch命令的实现原理
通过前面几篇文章的介绍,我们可以看到Arthas是如何通过插装来获取运行时信息的,从这篇文章开始,我们开始看Arthas里面的命令具体是如何实现的,涉及到的命令有watch, trace, monitor, stack, time tunnel, 这几条命令相应的Command…
Arthas原理系列(四):字节码插装让一切变得有可能
在前面的文章中我们可以看到watch命令对原来的字节码进行了插装,并且我们以此为思路实现了一个简易版的watch命令,但真实的watch提供的能力远不止统计方法的运行时间,我们最常用他的一个功能还是观察方法的入参返回值等运行时的变量。所有需要插装字节码的命令都继承了Enhanc…
Arthas原理系列(三):服务端启动流程
本篇文章主要讲我们在终端中敲入的命令是如何被 arthas 服务器识别并且解释的。要注意这个过程是 arthas 对所有命令执行过程的抽闲,对于具体命令的执行过程我会在后面的系列文章中再说。 这段方法用反射的方法调用了com.taobao.arthas.core.server.…
下一页
个人成就
文章被点赞
27
文章被阅读
11,116
掘力值
385
关注了
3
关注者
27
收藏集
0
关注标签
4
加入于
2020-12-02