JVM的内存管理 运行时的数据区域 这两个部分是我们在使用Java开发的过程中对我们影响最大的部分 在内存管理里面 他有一个运行时数据区的部门 运行时数据区指的是在虚拟机运行的过程中 会把很多的数据放到内存里面 或者是寄存器的里面 运行时的数据区域它不仅仅指的是我们计算机的内存他指了很多方面 他在运行的过程中 他并不是把很多要存储在一块区域里面 比如说运行区里面的一些方法区 虚拟机栈 本地方法区 堆 还有一个程序计数器 程序计算器我们一个开发人员是无法对他进行控制的 他的作用是干什么的 我们在idea里面编写代码的时候 他的作用就是 比如写了一个类 这个类里面有一个main方法 这个main方法里面有很多行代码 这个代码的执行顺序是一行一行的执行还是执行到某一行进行跳转 这个就是程序计算器要干的事情..
Java中的虚拟机栈 这么理解在java中的用法 java创建一个类 类里面有方法 有main方法 在程序里肯定会先执行 main方法 栈的出入顺序是先进后出 他先会把这个main方法压栈 会把他压倒最底下 然后依次执行方法 比如有其他方法的时候他就会一点一点 压入栈 等到方法执行完以后他就会再把栈弹出来 这个就是方法区的最大的作用.... 可以说方法区 就是一个方法从调用到执行完的过程...
Java堆java虚拟机所管理的内存中最大的一块.java堆是被所有线程共享的一块内存区域, 几乎 所有的对象都实例化在这里分配内存.是垃圾收集器GC管理的主要区域... 为什么说几乎所有因为并不是所有 有个别少数的对象那么这个少数对象是指 所有的class对象的实例都是在方法区内分配的... 所有类的class对象的实例都是在方法区... 影响java堆大小的是一个是-Xms(这个指堆的最小的一个值); -Xmx(这个指堆的最大的一个值 最大的内存); -Xmn(这个是给新生代指定的大小)..