JVM
文章平均质量分 78
heqianqiann
每一个不曾起舞的日子都是对生命的辜负
展开
-
JVM 指令助记符
栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int类型常原创 2017-06-06 08:46:42 · 914 阅读 · 0 评论 -
JVM 使用javap反编译命令解释i++和++i的区别
一个简单的例子public class Test{ public static void main(String[] args){ int i = 0; int j = 1; int k = 2; i = i++; j = ++j; k += 2; }}输出结果我们知道是原创 2017-06-06 15:12:24 · 1359 阅读 · 0 评论 -
JVM 参数使用总结
1. 参数分类1.标准参数 功能和输出的参数都是很稳定的 在未来的JVM版本中不会改变 可以使用java -help检索出所有的标准参数2.X参数 非标准化参数 在未来的版本可能会改变 所有的参数都用-X开始 可以使用java -X检索 但是注意没有-Xcomp3.XX参数 非标准 很长一段时间不会列出来 用于JVM开发的debug和调优说明XX参数的语法:所有的XX参数都以”-XX原创 2017-08-16 21:41:17 · 13706 阅读 · 2 评论 -
JVM 监控工具和调优工具[图形化]
之前有总结过JVM监控和调优的工具JVM 监控工具和调优工具 不过这些都是命令行和设置JVM参数的方式,现在来总结归纳下一些图形化的工具JConsoleJConsole 是一个基于JMX 的图形监控工具,用于连接正在运行的JVM,可以以图表化的形式显示各种数据,并可通过远程连接监视远程的服务器VM 情况,此类工具可以较直观观察各种变化,但比较耗费资源。在JDK 1.5之后JConsole 已经成为J原创 2017-09-24 10:33:47 · 4305 阅读 · 0 评论 -
JVM SafePoint安全点分析
什么是safepointsafepoint可以用在不同地方,比如GC、Deoptimization,在Hotspot VM中,GC safepoint比较常见,需要一个数据结构记录每个线程的调用栈、寄存器等一些重要的数据区域里什么地方包含了GC管理的指针。从线程角度看,safepoint可以理解成是在代码执行过程中的一些特殊位置,当线程执行到这些位置的时候,说明虚拟机当前的状态是安全的,如果有需要,转载 2017-09-24 11:13:29 · 2385 阅读 · 0 评论 -
JVM 监控工具和调优工具
监控工具1.jps 用来查看JVM里所有进程的具体状态 包括进程ID和进程的启动路径常用参数-l 输出完整打包包名称-m 输出程序的命令行参数-v 输出完整的JVM参数2.jstack 1) 查看java程序崩溃的core文件 获得core文件的java stack和native stack的信息 2) 查看正在运行的java程序的native stack的信息 a) 查看运行原创 2017-09-17 10:30:14 · 487 阅读 · 0 评论 -
JVM 深入理解Java虚拟机读书笔记
讲道理,这是我第四遍看这本书了,不过之前有些知识点印象不深,现在记录一下。1.对象的创建为新生对象分配内存的两种方式指针碰撞 一边是空闲的内存 一遍是已经使用的内存,中间一个指针作为标志,分配内存的时候就把指针往空闲内存移动一段和对象大小相同的距离 指针碰撞的前提是内存规整,一般使用复制清除法的收集器就是使用这种方法,比如Serial,ParNew.空闲列表 维护一个记录内存中空闲块的列表原创 2017-09-25 21:08:29 · 1461 阅读 · 0 评论 -
JAVA BIO NIO和AIO的区别
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO一.BIO在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝请求,如果有的话,客户转载 2017-10-22 13:10:41 · 1547 阅读 · 0 评论