java虚拟机
zhanghc_kedamaomao
这个作者很懒,什么都没留下…
展开
-
java对象的访问方式
java需要通过栈上的reference数据来操作堆上的具体对象,目前主流有两种方式:1.使用句柄 使用句柄的话,java堆将会划分一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与对象类型数据各自的具体地址信息2.直接指针 reference中存储的直接就是对象地址 两种方式各有优势,使用句柄访问最大好处是reference中存储的稳定的...原创 2016-12-06 10:52:25 · 140 阅读 · 0 评论 -
java虚拟机启动参数设置
虚拟机中除了程序计数器不会发生内存溢出,其他几个内存区域都可能发生内存溢出。 可在eclipseIDE中的Debug/Debug Configuration 中设置启动参数: 堆设置: -Xms20m -Xmx20m :这两个参数设置虚拟机堆内存大小,前面是堆的最小值,后面是堆的最大值,设置的一样可避免堆内存自动扩展。 -Xmn2g:设置年轻代大小为2G.整个堆大小=年轻代大小 + 年...原创 2016-12-06 11:19:01 · 239 阅读 · 0 评论 -
java堆、栈、方法区内存溢出
1.java堆内存溢出 java堆用于存储对象,只要不断的创建对象,并且保证GC Roots到对象的之间有可达路径来避免垃圾回收机制清楚这些对象,那么在对象数量达到最大堆容量限制后就会产生内存溢出异常。 2.栈内存溢出 在单个线程下,无论是由于栈帧太大还是虚拟机栈容量太小,当内存无法分配的时候,虚拟机抛出的都是StackOverflowError异常。 多线程下,不断建立线程会...原创 2016-12-06 13:31:35 · 1125 阅读 · 0 评论 -
谈谈java的开发者工具
在java的jdk的bin目录下,有一系列的命令行工具,它们大多是jdk/lib/tools.jar类库的薄包装而已,jdk版本不同、操作系统不同工具所支持的功能可能会有较大差别。 1.jdk监控和故障处理工具 jps:显示指定系统内所有的HotSpot虚拟机进程 jstat:用于收集HotSpot虚拟机各方面的运行数据 jinfo:显示虚拟机配置信息 jmap:生成虚拟...原创 2016-12-12 14:02:13 · 100 阅读 · 0 评论