JVM
JVM
二次觉醒
路靠自己去走,才能越走越宽。
展开
-
堆内存诊断
jps工具 查看当前系统中有哪些Java进程jmap工具 查看堆内存占用情况`jconsole`工具 图形界面的,多功能的检测工具,可以连续监测原创 2022-09-18 21:04:32 · 131 阅读 · 0 评论 -
线程运行诊断,像cpu占用过高,程序运行很长时间没有结果?
诊断:(1)定位哪个进程对cpu的占用过高```top```(2)用ps命令进一步定位是哪个线程引起的cpu占用过高```ps H -eo pid,tid,cpu% | grep 进程id```(3)用jdk提供的工具分析```jstack 进程id```使用16进制转换线程id,找到问题线程,可看到问题代码行数原创 2022-09-15 22:33:24 · 191 阅读 · 0 评论 -
栈内存溢出
什么情况会导致栈内存溢出?(1)栈帧过多导致栈内存溢出。比如方法的递归调用,没有设置一个正确的结束条件,不断调用自己,每次调用都会分配一个栈帧,导致栈内存溢出。(2)栈帧过大导致内存溢出。-Xss size 给栈内存分配大小下面是各系统默认分配栈内存大小:Linux 1024kbmacOS 1024kbOracle Solaris/x64 1024kbWindows 根据Windows的虚拟内存来定原创 2022-09-15 22:10:56 · 1165 阅读 · 0 评论 -
2、JVM的组成部分
一、类加载器Java Class --> ClassLoader(类加载器),加载到jvm二、JVM内部结构Mnethad Area(方法区)、Heap(堆)、JVM Stacks(虚拟机栈)、PC Register(程序计数器)、Native Methad Stacks(本地方法栈)三、执行引擎Interpreter(解释器)、JIT Compiler(即时编译器)、GC(垃圾回收)原创 2022-09-15 21:54:53 · 370 阅读 · 0 评论 -
1、什么是JVM?学习JVM有什么用?
什么是JVM?定义:Java Virtual Machine(Java虚拟机),java程序的运行环境(Java二进制字节码的运行环境)。好处:(1)一次编写,到处运行。(2)自动内存管理,垃圾回收功能(3)数组下标越界检查(4)多态学习JVM有什么用?(1)应对面试(2)理解底层的实现原理(3)中高级程序员的必备技能原创 2022-09-15 10:41:04 · 247 阅读 · 0 评论