jvm java虚拟机
分享牛
BPM推广者,核心开发人员。盘
展开
-
java虚拟机参数设置 jvm参数设置
java进程命令行使用方式如下:java [-options] class [args...]-options 表示虚拟机的启动参数,class为带有main()函数的java类的全名称args表示传递给主函数main()的参数 多个用空格 分割即可。如以下代码,看一下如何设置参数并且获取到参数。package cn.xhgg.test; public class Jv原创 2016-03-27 18:33:33 · 6468 阅读 · 0 评论 -
java虚拟机 jvm 出入java栈 栈空间内存分配
java栈空间是一块线程私有的内存空间,java堆和程序数据密切相关,那么java栈就是和线程执行密切相关。线程最基本的执行行为就是函数的调用。每次函数调用其实是通过java栈传递数据的。数据结构中的栈的特性:先进后出,后进先出。FIFO.java内存中的栈跟数据结构中的特性相似也是FIFO.但是只支持进栈和出栈操作。java栈中保存的主要内容是栈帧。每一次函数调用都会有对应的栈帧被压原创 2016-04-02 08:59:08 · 10991 阅读 · 4 评论 -
java虚拟机 jvm 局部变量表实战
java局部变量表是栈帧重要组中部分之一。他主要保存函数的参数以及局部的变量信息。局部变量表中的变量作用域是当前调用的函数。函数调用结束后,随着函数栈帧的销毁。局部变量表也会随之销毁,释放空间。由于局部变量表存在栈帧中。所以,如果函数参数和局部变量比较多,会使的局部变量表膨胀,每一次调用会占用更多的栈空间。最终结局就是栈空间内存一定的情况下调用的次数减少。1.1.1. 局部变量表变量影响原创 2016-04-02 12:48:36 · 9931 阅读 · 11 评论 -
java虚拟机 jvm 栈数据区
java栈帧还是需要一些数据支持常量池的解析、正常方法的返回和异常的处理。大部分的java字节码指令需要进行常量池的访问,在栈帧数据区中保存着访问常量池的指针,方便程序访问java常量池。如下图所示: 当函数返回或者程序出现异常的时候,jvm虚拟机必须恢复调用者函数的栈帧,并且让调用者函数继续执行。什么意思呢?举一个通俗的例子:a()调用b()当b()返回的时候肯定继续让a原创 2016-04-02 17:27:50 · 4043 阅读 · 0 评论 -
java虚拟机 jvm 方法区实战
和java堆一样,方法区是一块所有线程共享的内存区域,用于保存系统的类信息,类的信息有哪些呢。字段、方法、常量池。方法区也有一块内存区域所以方法区的内存大小,决定了系统可以包含多少个类,如果系统类太多,方法区内存不够肯定会导致方法区溢出,虚拟机同样会抛出内存溢出信息。(内存溢出后面相关文章给大家总结)jdk6和jdk7中,方法区可以理解为永久区(Perm).永久区可以使用参数-XX:PermS原创 2016-04-03 07:23:46 · 7171 阅读 · 0 评论 -
5.1.3.jvm java虚拟机系统参数查看
不同的参数配置对系统的执行效果有较大的影响,因此,我们有必要了解系统实际的运行参数。1.1.1.1. -XX:+PrintVMOptions参数-XX:+PrintVMOptions可以在程序运行时,打印虚拟机接受的命令行显式参数,输出如下:VM option '+PrintVMOptions'VM option '+PrintCommandLineFlags'这两个参数我们并原创 2016-04-04 08:50:54 · 5415 阅读 · 0 评论 -
jvm java虚拟机 新生代的配置
1.1.1.1. -Xmn参数参数-Xmn1m可以用于设置新生代的大小。设置一个较大的新生代会影响老生代的大小,因为这两者的总和是一定的,这个系统参数对于系统性能以及GC行为有很大的影响,新生代一般设置为整个堆空间的1/3到1/4左右最合适。参数-XX:SurvivorRatio用来设置新生代中eden空间和from/to空间的比例,公式如下:-XX:SurvivorRatio=e原创 2016-04-04 10:31:46 · 20372 阅读 · 6 评论 -
GC真正的垃圾:强、软、弱、和虚 对象
垃圾回收的基本思想就是判断一个对象是否可触及性,说白了就是判断一个对象是否可以访问,如果对象对引用了,说明对象正在被使用,如果发现对象没有被引用,说明对象已经不再使用了,不再使用的对象可以被回收,但是不一定立马被回收,取决于GC垃圾回收的算法。判断对象的可触及性。1.可以触及的:从根节点开始,可以到达这个对象,说明这个对象还在使用。2.可复活的:对象的所有引用都被释放,但是对象可能在f原创 2016-04-10 14:01:18 · 3651 阅读 · 0 评论 -
GC垃圾回收算法
什么是GC垃圾回收呢。日常生活中我们去餐厅吃饭吃完饭,吃完饭走了餐具不用管,服务员在把餐具拿走,这是一种方式,服务员怎么知道他要来把餐具拿走呢,因为你走了,这个位置空了。服务员什么时候拿走餐具很重要,第一你没吃完,不会回收吧,第二很多人吃饭,你在里面,他也不一定回收吧,他会找一个合适的时机,一次性回收很多吧。第二种方法:自己吃完饭把餐具带到回收的地方吧。哪一种方式更好呢?第一种方式自己原创 2016-04-10 09:53:17 · 6986 阅读 · 0 评论 -
java虚拟机 jvm java堆 方法区 java栈
java堆是java应用程序最密切的内存空间。几乎所有的对象都存在堆中。java堆完全自动化管理,通过垃圾回收机制,垃圾对象会自动清理,不需要显式释放。根据java垃圾回收机制的不同,java堆可能有不同的结构。最常见的是将整个java堆分为新生代和老年代。跟人类差不多了,老龄化就有可能找上帝去了,新生代存放新对象或者年龄不大的对象,老年代存放老年对象。新生代有可能分为eden区、s0区和s1原创 2016-03-27 21:12:41 · 3615 阅读 · 0 评论