jvm前15回

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

参考黑马的视频课:添加链接描述

前15节

一、jvm是什么?

java virtual machine java虚拟机,能屏蔽机器不同操作系统之间的区别,将程序编译成cpu可识别的二进制码

jre=jvm+基础类库

jdk=jvm+基础类库+编译工具

二、程序计数器

寄存器,记住下一条指令的地址。

程序计数器是线程私有的,不会存在线程溢出

三、栈

每个线程运行需要的内存叫虚拟机栈

每个栈对应多个栈帧,对应每次方法调用的内存

每个线程只有一个活动栈帧,对应正在执行的方法

栈帧包含方法、成员变量

每个栈默认大小1024kb(除了windows)

栈不涉及垃圾回收,栈帧出栈时,会自动被回收,但不是GC垃圾回收

栈内存越大,线程数越少,效率越低。所以栈内存合理即可

方法内的局部变量是线程安全的,只要变量不传出方法,就是线程安全的

栈内存溢出:方法间的递归调用,即栈帧过多

2.成员变量之间的相互引用

四、CPU占用高

1.top命令查看cpu占用最高的进程

2.用ps命令查看对应线程: ps H -eo pid,tid,%cpu | grep 32655

3.找到对应的写代码行数:jstack 32655 中找到16进制的线程,下面有对应的方法行

长时间没有响应

jstack 32655 翻到下面有报错信息,查看报错信息并返回行数。


总结

相关推荐
2601_9620715739 分钟前
类变量和全局变量的隔离性有什么区别?
java·开发语言·jvm
估值探索者3 小时前
【Python量化系统工程实战 #01】数据存储选型 CSVSQLiteMySQL 对比与 SQLite 实战建库
开发语言·jvm·python·sqlite·api接口·数据api接口·股票数据api接口
打工仔折腾 AI14 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
用户0942485680319 小时前
第22章:JIT编译分层——Interpreter、C1、C2与热点探测
java·jvm
乌暮20 小时前
JVM 原理与实践:从运行时数据区到线上故障排查
java·开发语言·jvm·后端·学习·面试
长河2 天前
Java的GC(垃圾回收)中,标记无用对象的核心方法是可达性分析算法
java·jvm·算法
可乐ea2 天前
GitHub Security Lab 开源 Fuzzing Taskflow:让 LLM 智能体自己跑完 C/C++ 模糊测试
jvm·c++·github·模糊测试·mcp·代码agent·智能体自动化
一条破秋裤2 天前
Linux 线程同步:读写锁
java·linux·jvm
wuminyu2 天前
JEP491中synchronized关键字引发的平台线程钉住解决方法简介
java·linux·c语言·jvm·c++
一条破秋裤2 天前
Linux 线程同步:条件变量
java·linux·jvm