jvm
文章平均质量分 69
....
研发咨询顾问
专注全栈开发和项目管理,诚接商务\业务合作,及问题难点解答和远程协助! 可私信或留言给作者,消息会在6小时内回复哦 (每篇文章末尾有作者名片,可添加联系,秒通过)
展开
-
查看JVM内存配置
InitialHeapSize(最小堆大小)时Xms的默认值。MaxHeapSize(最大堆大小)就是Xmx的默认值,2)查看运行进程中使用的Xmx和Xms默认值的大小。1)查看JDK默认的Xmx和Xms默认值的大小。(2)然后根据上面的PID查看当前设置值。(1)首先查看Java相关的进程。默认单位大小是byte字节。原创 2023-04-29 12:39:26 · 2473 阅读 · 0 评论 -
堆内存调优
System.out.println("MAX_MEMORY = " + maxMemory + "(字节)、" + (maxMemory / (double)1024 / 1024) + "MB");3)如果没有设定堆的大小,就默认去分隔物理内存,-Xmx为物理内存的1/4,-xms为物理内存的1/64。1)如果没有设定堆的大小,就默认去分隔物理内存,-Xmx为物理内存的1/4,-xms为物理内存的1/64。2)如果设定了指定的参数,就不会按按物理内存的1/4 ,1/64来划分。原创 2023-04-29 12:39:02 · 84 阅读 · 0 评论 -
GC算法和GC种类
(1)将原有的内存空间分为两块,每次只使用一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未被使用的内存块中,然后清除正在使用的内存块中的所有对象。(1)引用计数法是老的垃圾回收算法,它的实现很简单,在每一个对象上标记一个引用计数器,假设有一个对象A,只要有任何一个对象引用了A,则A的引用计数器就会+1,当引用失效时,引用计数器就会-1,当引用计数器为0时,则表示A对象不被引用了,将会被垃圾回收。(7)G1收集器: 标记整理算法实现,运作流程主要包括以下:初始标记,并发标记,最终标记,筛选标记。原创 2023-04-29 12:36:11 · 207 阅读 · 0 评论 -
Heap堆的详细讲解
(1)实际而言,方法区(Method Area)和堆一样,是各个线程共享的内存区域(也叫公有区,而其它的都是私有取区),它用于存储虚拟机加载的:类信息+普通常量+静态常量+编译器编译后的代码等等,虽然JVM规范将方法区描述为堆的一个逻辑部分,但它却还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。堆外内存和堆内内存是相对的二个概念,其中堆内内存是我们平常工作中接触比较多的,我们在jvm参数的调优,就可以设置堆的大小和最大值等操作,前面章节,都是堆内内存的自知识。原创 2023-04-29 12:33:08 · 266 阅读 · 0 评论 -
堆,栈(堆栈),方法区
当启动一个新线程时,JVM就会给这个线程分配一个Java栈(每一个线程都会有一个栈),这个栈的内存大小由一个Java栈的基本单位是帧,每一次函数调用就会生成栈帧,占用一定的栈空间。1)栈也叫栈内存,主管Java程序的运行,是在线程创建时创建,它的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于栈来说不存在垃圾回收问题,只要线程一结束该栈就Over,生命周期和线程一致,是线程私有的。多个栈(即每一个栈对应一个线程),但是栈的数量实在太多了,导致jvm无法容纳这么多的栈。原创 2023-04-29 12:31:55 · 743 阅读 · 0 评论 -
本地接口和本地方法栈
1)本地接口的作用是融合不同的编程语言为 Java 所用,它的初衷是融合 C/C++程序,Java 诞生的时候是 C/C++横行的时候,要想立足,必须有调用 C/C++程序,于是就在内存中专门开辟了一块区域处理标记为native的代码,它的具体做法是 Native Method Stack中登记 native方法,在Execution Engine 执行时加载native libraies。因为现在的异构领域间的通信很发达,比如可以使用 Socket通信,也可以使用Web Service等等,不多做介绍。原创 2023-04-29 12:29:59 · 82 阅读 · 0 评论 -
类加载器和执行引擎
1)当一个类收到了类加载请求,他首先不会尝试自己去加载这个类,而是把这个请求委派给父类去完成,每一个层次类加载器都是如此,因此所有的加载请求都应该传送到启动类加载其中,只有当父类加载器反馈自己无法完成这个请求的时候(在它的加载路径下没有找到所需加载的Class),子类加载器才会尝试自己去加载(也就是说之上而下加载)。初始化时类加载的最后一步,前面的类加载过程,除了在加载阶段用户应用程序可以通过自定义类加载器参与之外,其余动作完全由虚拟机主导和控制。到了初始化阶段,才真正开始执行类中定义的Java程序代码。原创 2023-04-29 12:28:57 · 98 阅读 · 0 评论 -
JVM介绍
JVM是Java Virtual Machine(Java虚拟机)的缩写。是运行在操作系统之上的,它与硬件没有直接的交互。原创 2023-04-29 12:27:46 · 49 阅读 · 0 评论