0%

JPDA 的全称是「Java Platform Debugger Architecture」,它是一个多层的调试架构,支持创建跨平台的调试程序,可同时支持不同的虚拟机实现和不同的 JDK 版本。

阅读全文 »

有时候一台电脑上使用了多个 git 账号,需要经常在不同账号间切换,用来控制 git 提交记录显示的名字。

阅读全文 »

javaagent 使用 jar 文件格式进行打包,通过 jar 文件里的 manifest 清单文件指定被加载的类,用于启动 agent。

阅读全文 »

javaagent 可以在 main 方法执行前执行一些操作,比如增加一些特殊启动逻辑、在类完成加载前对类的字节码进行修改等。本文不谈底层原理,只介绍如何从零手写一个javaagent。

阅读全文 »

本文讲的是:在 linux 环境下,定位 cpu 使用率最高的 java 线程,找出对应代码的方法。基本思路是:使用 top 命令找出 cpu 占用率最高的 java 线程,然后结合 jstack 定位问题代码。

阅读全文 »

redis 从 3.2.0 版本开始提供了对地理位置的支持,相关的命令有 GEOADDGEOHASHGEOPOSGEODISTGEORADIUSGEORADIUSBYMEMBER,本文简单介绍下这些命令的用法。

阅读全文 »

最近遇到一个 netty 的 OutOfDirectMemoryError 报错,是在分配 direct memory 时内存不足导致的,看了下报错提示,要分配的内存大小为 16M,剩余的空间不足。这里 max direct memory 大约有 7G,于是就有一个疑问,这个值是怎么设置的?

阅读全文 »

jdk 中有很多 native 方法,比如 Object 类的 registerNatives 方法、String 类的 intern 方法等。这些方法在 java 层面只有接口定义,具体的方法实现则是在 jdk 中,采用 c/c++ 实现。本文主要讲下如何找到 native 方法的实现。

阅读全文 »