JVM
文章平均质量分 90
三水写代码
你只管努力变得优秀······
展开
-
JVM常用指令
1、jpsjps(java process status tool), 用于查看java进程及相关信息,如果你想找到一个java进程的pid,可以使用jps命令代替linux的ps命令。命令格式: jps 【options】 【hostid】options参数:-l : 显示进程ID, 显示主类全名或jar路径 -q :显示进程ID -m :显示进程ID, 显示JVM启动时传给main() 函数的参数 -v : 显示进程ID,显示JVM启动参数hostid : 主机或其他服务器IP原创 2021-06-26 13:27:41 · 5310 阅读 · 0 评论 -
JVM基本结构和工作流程
JVM基本结构:类加载器:类加载器主要负责从文件系统或网络中加载Class文件,加载的类信息存放与方法区中。有三种默认使用的类加载器:Bootstrap类加载器、Extension类加载器和System类加载器(或者叫作Application类加载器)。 方法区:方法区也叫永久区,它是被线程共享的。方法区存储类加载器加载的类信息、常量、静态变量方法区的大小决定可以存储多少个类。(在jav...原创 2019-05-24 17:08:22 · 1319 阅读 · 0 评论 -
Java堆、java栈
Java堆:Java堆内存空间在虚拟机启动时创建,是Java虚拟机锁管理的最大内存区域;垃圾收集器的主要区域;它被所有线程共享。堆内存的唯一目的是存放对象实例。Java堆空间分为老年代和新生代。老年代用于存储经过多次GC(垃圾回收)后,任然存活的对象,或者是创建的大对象(新生代空间不足,会直接将大对象存放在老年代);新生代主要用于存储新创建的对象,新生代又分为Eden区、From Surv...原创 2019-05-27 15:51:33 · 872 阅读 · 0 评论 -
Java堆与垃圾收集器(GC)
Java堆:Java堆内存空间在虚拟机启动时创建,是Java虚拟机锁管理的最大内存区域;垃圾收集器的主要区域;它被所有线程共享。堆内存的唯一目的是存放对象实例。Java堆空间分为老年代和新生代。老年代用于存储经过多次Minor GC后,任然存活的对象,或者是创建的大对象(新生代空间不足,会直接将大对象存放在老年代);新生代主要用于存储新创建的对象,新生代又分为Eden区、From Surv...原创 2019-05-28 08:43:46 · 1343 阅读 · 0 评论 -
JVM垃圾收集器算法
Java垃圾收集器常用算法:1、引用计数算法引用计数算法用于标记对象是否存活,严格来说它并不属于垃圾收集算法,只是垃圾收集的辅助算法。它是通过给对象添加一个引用计数器,每当有一个地方引用它时,计数器加1;当引用失效时,计数器减1;任何时刻计数器为0的对象就是不可再被使用的。引用计数算法,实现简单,判定效率高,大部分情况下比较适用,但在一些特殊引用计数算法不在适用,如: publi...原创 2019-05-28 11:24:16 · 834 阅读 · 0 评论 -
JVM性能检测工具—visualvm
JDK的bin目录下提供了很多命令行工具,包括我们熟悉的 java.exe、javac.exe和我们不太熟悉的jps.exe、jstat.exe、jinfo.exe等,这些命令行工具可以用来检测JVM的性能。比如jps用于监控JVM的进程状态、jstat用于监控JVM的各种运行状态信息、jinfo查看和调整JVM的各项参数等等。但是这些命令行工具功能比较单一,而且输出的数据不是那么直观。...原创 2019-05-28 17:05:55 · 2056 阅读 · 0 评论 -
JVM类加载机制
JVM类加载机制分为类加载过程和类加载器两部分。类加载过程类加载过程分加载、验证、解析、初始化。加载:是类加载过程的第一个阶段,在加载阶段JVM主要做了下面三件事:通过一个类的权限定名来获取定义此类的二进制字节流 将获取的字节流所代表的静态存储结构转化为方法区的运行时数据结构 在内存中生成一个代表该类的Class对象,作为方法区中该类的数据访问入口验证:是连接阶段的第一步,主...原创 2019-06-19 16:32:25 · 706 阅读 · 0 评论