java常识

来源:互联网 发布:素描大师软件下载 编辑:程序博客网 时间:2024/06/05 14:08

1.JDK与JRE的区别

JDK 开发者工具  = JRE + javac编译器 + 开发者工具 

JRE 运行环境


2.jps、jstack、jmap、jhat、jstat、hprof都是安装JDK后添加环境变量后才可使用的。

3.JPS 只能查看java进程

4.查线程问题

jps [options] [hostid]
-q 不输出类名、Jar名和传入main方法的参数-m 输出传入main方法的参数-l 输出main类或Jar的全限名-v 输出传入JVM的参数
jstack [option] pid
-l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况-m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)
ps -Lfp pid ps -mp pid -o THREAD, tid, time top -Hp pid 查询最耗时的cpu的线程

printf "%x\n" pid  获得线程的16进制
jstack 进程号pid | grep 线程号

5.查询进程的java heap使用情况

jmap -heap 21711 
jmap -histo:live 21711 | more 查看存活对象
jstat -gc 21711 250 4   (pid  间隔毫秒 采样次数) 获取gc情况
S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)EC、EU:Eden区容量和使用量OC、OU:年老代容量和使用量PC、PU:永久代容量和使用量YGC、YGT:年轻代GC次数和GC耗时FGC、FGCT:Full GC次数和Full GC耗时GCT:GC总耗时