Java Reference核心原理分析
带着问题,看源码针对性会更强一点、印象会更深刻、并且效果也会更好。所以我先卖个关子,提两个问题(没准下次跳槽时就被问到)。 - 我们可以用ByteBuffer的allocateDirect方法,申请一
AsyncGetCallTrace 源码深度剖析
前言 AsyncGetCallTrace 是由 OracleJDK/OpenJDK 内部提供的一个函数,该函数可以在 JVM 未进入 safepoint 时正常获取到当前线程的调用栈(换句话说,使用
不起眼,但是足以让你收获的JVM内存案例
今天的这个案例我觉得应该会让你涨姿势吧,不管你对JVM有多熟悉,看到这篇文章,应该还是会有点小惊讶的,不过我觉得这个案例我分享出来,是想表达不管多么奇怪的现象请一定要追究下去,会让你慢慢变得强大起来,
SafePoint 与 Stop The World 全解(基于OpenJDK 11版本)
在分析线上 JVM 性能问题的时候,我们可能会碰到下面这些场景:1.GC 本身没有花多长时间,但是 JVM 暂停了很久,例如下面:2.JVM 没有 GC,但是程序暂停了很久,而且这种情况时不时就出现。
如何通过反射获得方法的真实参数名(以及扩展研究)
前段时间,在做一个小的工程时,遇到了需要通过反射获得方法真实参数名的场景,在这里我遇到了一些小小的问题,后来在部门老大的指导下,我解决了这个问题。通过解决这个问题,附带着我了解到了很多新的知识,我觉得
深入汇编指令理解Java关键字volatile
volatile是什么volatile关键字是Java提供的一种轻量级同步机制。它能够保证可见性和有序性,但是不能保证原子性 可见性对于volatile的可见性,先看看这段代码的执行<div alig
认识HotSpot虚拟机第1篇-在Ubuntu 16.04上编译OpenJDK8的源代码(配视频)
本文将详细介绍在Ubuntu16.04 LTS上对OpenJDK8进行编译,为了方便大家快速搭建起OpenJDK8的调试开发环境,我还录制了对应的视频放到了B站上,大家可以参考。视频地址:[https
一个JDK线程池BUG引发的GC机制思考
问题描述前几天在帮同事排查生产一个线上偶发的线程池错误逻辑很简单,线程池执行了一个带结果的异步任务。但是最近有偶发的报错:```javajava.util.concurrent.RejectedExe
Java中,那些关于String和字符串常量池你不得不知道的东西
老套的笔试题在一些老套的笔试题中,会要你判断s1==s2为false还是true,s1.equals(s2)为false还是true。```javaString s1 = new String("xy
PhantomReference? 虚引用? OOM?
背景关于各种引用参考https://www.geeksforgeeks.org/types-references-java/在我之前认知中,虚引用除了自身对象占用内存外,其引用对象referent在不
认识HotSpot虚拟机第2篇-调试HotSpot源代码(配视频)
本文将详细介绍在Ubuntu16.04 LTS上对OpenJDK8进行编译,为了方便大家快速搭建起OpenJDK8的调试开发环境,我还录制了对应的视频放到了B站上,大家可以参考。 视频地址:[http
Shenandoah GC:一个来自OpenJDK12的全新并发压缩垃圾回收器
是不是才听说了JDK11的ZGC,并且还没搞懂?不好意思,OpenJDK12马不停蹄的带来了Shenandoah GC。 概述JDK12新增的一个名为Shenandoah的GC算法,它的evacuat
认识HotSpot虚拟机第4篇-HotSpot的启动过程
本文将详细介绍HotSpot的启动过程,启动过程涉及到的逻辑比较复杂,细节也比较多,下面我们开始以文章的形式简单介绍一下启动过程。HotSpot通常会通过java.exe或javaw.exe来调用/j
Java最前沿技术——ZGC
ZGC介绍ZGC(The Z Garbage Collector)是JDK 11中推出的一款追求极致低延迟的实验性质的垃圾收集器,它曾经设计目标包括:- 停顿时间不超过10ms;- 停顿时间不会随着堆
使用JDK中自带的JVM分析工具解决内存溢出问题
解决常规的JVM异常时,通常依赖JDK中基础工具即可完成问题的定位,从而进行分析和解决,不过这些需要对基础工具熟练使用才行,而很多JDK自身的能力又是经常被忽略的;
JVM NativeMemoryTracking 分析堆外内存泄露
来源:狐狸糊涂https://my.oschina.net/foxty/blog/1934968Native Memory Tracking (NMT) 是Hotspot VM用来分析VM内部内存使用
JVM系列第1讲:Java 语言的前世今生
Java 语言是一门存在了 20 多年的语言,其年纪比我自己还大。虽然存在了这么长时间,但 Java 至今都是最大的工业级语言,许多大型互联网公司均采用 Java 来实现其业务系统。大到国际电商巨头阿里巴巴,小到无名小公司,我们均可看到 Java 的身影。我是 2010 年开始接触 Java 语言
06 “eden没有发生minor gc, 对象直接分配在了old gen“ 的调试
最近在看这样一篇文章的时候,eden区没有发生minor gc,对象直接分配在了old gen,看到了 R大 的叱咤风云, 讲解的非常细致, 十分令人佩服
04 对象的默认内存布局
最近看到了这样的一篇文章,一个对象的引用占多少个字节呢?4个?8个?算出来都不对,这是一个之前想要弄明白, 但是这块的代码似乎是看着有点复杂, 所以一直没有花时间来整理一下, 最近看到了一篇文章, 看了一下 R大的分析 

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

分布式系统绕不开的核心之一的就是数据缓存,有了缓存的支撑,系统的整体吞吐量会有很大的提升。通过使用缓存,我们把频繁查询的数据由磁盘调度到缓存中,保证数据的高效率读写。
21篇文章38544阅读量
Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。
作者:闪电侠,《跟闪电侠学 Netty》已出版了。书的前半部分是掘金小册中的内容:通过一个完整的 IM 项目入门 Netty;后半部分用了较大的篇幅来介绍 Netty 的底层原理,也会穿插讲一些源码阅读的思路,希望能够帮助到你。
13篇文章21865阅读量