![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 75
skyline_wx
这个作者很懒,什么都没留下…
展开
-
tomcat以服务方式启动后,jps、jstat等命令失效问题排查
将Tomcat注册成服务后,通过命令查找不到进程,但是在windows资源管理器中可以看到进程,同时使用命令提示not fount,但是命令正常,如下图:Tomcat启动系统访问正常Windows资源管理器中可以看到进程信息通过jsp命令找不到进程命令提示命令正常的工作原理其实也不复杂,jvm启动后,会在C:\Users\用户\AppData\Local\Temp\hsperfdata_用户下成文件,读的就这这个目录下的文件。现在这个目录是空的,所以查询后,也查不到信息。当我启动idea(i原创 2022-07-13 10:30:49 · 1692 阅读 · 0 评论 -
tomcat从零开始配置https
从零开始配置https生成证书创建证书导出证书导入证书查看密钥库条目tomcat配置https生成证书使用https需要生成证书,我们可以使用jdk自带的keytool来生成证书在cmd中执行keytool就可以看到keytool支持的命令:如果提示keytool不是内部或外部命令,要么配置jdk环境变量,要么cd切到jdk的bin目录下创建证书创建证书主要使用genkeypair命令,如下:生成一个名为casserver_test的密钥对keytool -genkeypair -原创 2022-04-07 18:05:46 · 3699 阅读 · 3 评论 -
垃圾回收器——CMS与G1
垃圾回收器——CMS与G1什么是垃圾回收,为什么要有垃圾回收根可达中的根引出安全点与安全区间的说法内存分代划分,为什么要有内存分代划分jstatCMS垃圾回收器CMS的内存分代划分CMS工作流程CMS的优点和缺点CMS的使用场景G1的内存分代划分G1的内存分代划分G1工作流程G1的优点和缺点G1的使用场景什么是垃圾回收,为什么要有垃圾回收首先,一般来说(除非手动调用unsafe或者使用DirectByteBuffer)Java是自动分配和回收内存的,既然有分配机制,自然就得有回收机制,不然多大的家产也得原创 2021-08-02 01:15:37 · 667 阅读 · 0 评论 -
JDK1.8-XX参数及默认值大全
命令:java -XX:+PrintFlagsFinal[Global flags] intx ActiveProcessorCount = -1 {product} uintx AdaptiveSizeDecrementScaleFactor = 4 {product} uintx Ad原创 2021-08-01 23:51:50 · 1019 阅读 · 0 评论 -
并发编程—锁
发生了系统调用的锁就是重量锁sync为什么是重量锁sync不一定是重量锁,只有当sync关键字是10时,底层会使用mutex,这时候,他才是重量锁mutex抢锁,抢不到会sleep,而ring3没有sleep的权限,这时候需要升级到ring0,这时就发生了用户态到内核态的变化,一旦发生了内核切换,就是重量锁了。内核态:运行操作系统程序,操作硬件用户态:运行用户程序自旋锁:1、操作系统层面pthread_spin2、reentrantlock 在jvm层面是自旋的,当高并发时,但是在os层面上原创 2021-05-13 18:07:26 · 241 阅读 · 0 评论 -
JVM内存布局
方法区方法区是逻辑上的东西,属于虚拟机规范,在不同的jdk版本中,方法区也有不同的实现原创 2021-05-08 23:09:43 · 88 阅读 · 0 评论 -
MAT工具学习,incoming reference和outgoing reference,Shallow Heap和Retained Heap
MAT工具学习incoming reference和outgoing referenceShallow Heap和Retained Heap常用工具一般思路incoming reference和outgoing reference在MAT中,查看对象时,有两个重要的说法,incoming reference和outgoing reference,要理解这两个概念,需要先理解下面这个图在上面这个图中一共存在A、B、C、D、E五个对象,其中A、B持有对C的引用,C持有对D和E的引用,所以C的incomi原创 2021-05-07 22:14:13 · 2409 阅读 · 1 评论 -
JVM学习(四)JVM中的对象及引用
JVM中的对象及引用new的过程分配内存1. 指针碰撞2. 空闲列表并发安全1. CAS2. TLAB对象的内存布局对象的访问定位句柄池直接指针new的过程基本上所有的对象都是通过new关键字创建出来的,类似下面这样的MyObject my = new MyObject()当JVM遇到new时,会按照下面的流程处理Created with Raphaël 2.2.0开始类加载检查加载分配内存内存空间初始化设置对象初始化结束类加载,先加载对象的class检查加载,确认class加载分配内存原创 2021-03-23 11:38:31 · 334 阅读 · 0 评论 -
JVM学习—内存对象储存位置、栈与堆对比、内存溢出的情况、常量池与字符串常量池
JVM学习(三)JVM内存处理流程JHSDB简介JVM对栈的优化内存溢出注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入JVM内存处理流程项目项目项目图源:king老师JHSDB简介这个东西本来是JDK1.9的,但是在1.8下也可以使用,就是略微麻烦了一些,具体的使用可以参考这个文档 JHSDB使用JVM对栈的优化图源:king老师 如果看了上面JHSDB的文章的话,应该可以很清晰的看到当传递参数原创 2021-03-13 00:02:07 · 169 阅读 · 0 评论 -
JVM学习—JVM内存结构与虚拟机栈
#mermaid-svg-hfnBPDeczO4bCvNV .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-hfnBPDeczO4bCvNV .label text{fill:#333}#mermaid-svg-hfnBPDeczO4bCvNV .node rect,#mermaid-svg-hfnBPDeczO原创 2021-03-09 13:52:22 · 124 阅读 · 2 评论