![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 84
enjoy嚣士
一个行走在键盘上的修理工
展开
-
JVM 之 参数配置最佳实践
JVM 参数配置最佳实践,来自阿里云JVM参数说明1c2g2c4g4c8g8c16g-Xms初始堆内存大小1g2560m4g10g-Xmx最大堆内存大小1g2560m4g10g-Xmn新生代空间大小500m1200m2g5g-XX:MetaspaceSize初始元空间大小128m256m384m512m-XX:MaxMetaspaceSize最大元空间大小128m256m384m512m-XX:Ma原创 2020-12-21 15:20:40 · 1125 阅读 · 0 评论 -
JVM 之 jvisualvm监控远程服务器JVM状态
服务器端设置1.在{JAVA_HOME}/bin目录建立文件:jstatd.all.policy(名字随便,符合*.policy即可)文件内容:grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission;};2. 查看IP并修改为ifconfi...原创 2020-04-24 10:19:04 · 1274 阅读 · 0 评论 -
JVM 之 监控工具
虚拟机工具在我们安装JDK之后,安装目录的bin目录下有很多命令,可以利用这些命令查看程序状态官方命令介绍: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jps(java process status) 查看本地虚拟机唯一id -l :启动类全名 -m :运行时主类接收的参数 -...原创 2020-04-01 18:22:13 · 181 阅读 · 0 评论 -
JVM 之 虚拟机字节码执行引擎及动态语言支持
运行时栈帧结构栈帧:局部变量表:一组变量值存储空间。用于存放方法参数和方法内部定义的局部变量。 在Java程序被编译为Class文件时,就在方法的Code属性的max_locals数据项中 确定了方法所需要分配的最大局部变量表的容量。 单位:slot存储数据类型和引用。大小根据操作系统确定。32bit系统为32bit,64bit系统为64bit。存储数据类型时,如果小于32位使用...原创 2020-04-08 18:17:13 · 138 阅读 · 0 评论 -
JVM 之 类加载
1.类加载虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的java类型。2.加载机制规范中没有明确说明。Hotspot采用懒加载机制。(用的时候才查询加载)3.加载过程①加载-> ②连接(验证,准备,解析)-> ③初始化-> ④使用-> ⑤卸载3.1加载:加载有哪些动作: 1.通过一个类的全限...原创 2020-04-08 18:06:02 · 223 阅读 · 0 评论 -
JVM 之 字节码指令
字节码JVM指令(操作码)由一个字节长度,后面跟着0或者多个参数构成。操作码的长度为1字节,所以最大有256条操作码。为了支持更多的指令,字节码有时一个会表示多个类型。指令集架构种类:基于栈(JVM)基于寄存器字节码与数据类型:大多数指令包含数据类型,也有不包含的(Goto, ArrayLength操作数据类型)iload fload,字节码指令前面是数据类型字节码指...原创 2020-04-07 10:14:13 · 448 阅读 · 0 评论 -
JVM 之 class文件
目录class文件class文件中有两种数据类型:无符号数和表class文件信息1.魔数2.class文件版本3.常量池4.访问标志5.类索引,6.父类索引7.接口索引集合8.字段表集合9.方法表集合10.属性表集合class文件一个二进制流文件。各个数据严格按照顺序排列,中间没有添加任何分隔符。以字节为单位(8bit)。如果遇到8bit...原创 2020-04-03 10:08:15 · 168 阅读 · 0 评论 -
JVM 之 性能调优
性能调优需要哪些基本知识1.相关基础知识(JVM知识)2.分析的数据(程序产生的)3.分析数据的工具(虚拟机监控工具)4.经验优化思路1.优化程序的SQL2.监控CPU运行状态3.监控内存使用状态4.网络通信5.操作系统自身问题常见问题1.频繁Full GCFull GC:会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因为...原创 2020-04-02 11:22:10 · 484 阅读 · 0 评论 -
JVM 之 对象内存分配
JVM内存分配策略1.优先分配到Eden过程描述 当Eden分配内存大小不足时,会向有内存的区域借,Survivor如果不足,则向老年代借,即内存担保(将先创建的对象移动到老年代,新对象继续创建到Eden中)如何打印GC信息? 配置:-verbosegc -XX:+PrintGCDetailsJVM设置限制内存区域大小: -Xms20M...原创 2020-04-01 18:11:43 · 183 阅读 · 0 评论 -
JVM 之 垃圾回收
目录垃圾回收器如何判断对象是垃圾引用计数法可达性分析法如何回收(回收策略)标记-清除算法复制算法(解决上面空间问题)标记-整理算法分代收集算法回收垃圾器介绍垃圾回收器如何判断对象是垃圾 引用计数法 在对象中添加一个引用计数器,被引用加1,引用失效减1 缺点:堆中内部引用不能回收。 O...原创 2020-03-26 17:02:25 · 210 阅读 · 0 评论 -
JVM 之 对象
对象创建过程new 类名 根据new的参数在常量池中定位一个类的符号引用 如果没有找到这个符号引用,说明类没有加载,则进行类的加载,解析和初始化 虚拟机为对象分配内存(在Java堆中) 将分配的内存初始化为零值(不包括对象头) 调用对象的init方法分配方式指针碰撞 假设Java堆中内存是完整的,已分配的内存和空闲内存分别在不同的一侧,通过一个指针作为分界点,需要分配内...原创 2020-03-26 10:24:00 · 224 阅读 · 0 评论 -
JVM 之 内存管理
JVM 中内存模型运行时数据区 其中: 线程私有的:程序计数器,虚拟机栈,本地方法栈 线程共享的:堆,方法区,直接内存下面介绍每个区线程共享区方法区:存储虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据 哪些类信息? 类的版本 字段 ...原创 2020-03-26 09:42:01 · 121 阅读 · 0 评论 -
JVM 之 JVM类型简介
JVM虚拟机介绍1.Sun classic VM世界上第一款商用的java虚拟机只能使用纯解释器的方式来执行java代码2.Exact VM(Exact Memory Management)准确式内存管理编译器和解释器混合工作只在Solaris平台发布过渡作用3.Hotspot VM目前仍在使用4.KVM简单,轻量,高度可移植在手机平台运行5.JRockit最...原创 2020-03-25 10:08:11 · 364 阅读 · 0 评论 -
JVM 之 java技术体系
java可以应用到哪些方面,有哪些发展方向?下面是java技术体系1.java程序设计语言2.各硬件平台的java虚拟机3.class文件格式4.java API5.第三方的java类库...原创 2020-03-25 10:05:40 · 95 阅读 · 0 评论 -
JVM 之 java(JDK)发展史
java发展史Java之父:詹姆斯·高斯林1995.5 由oak发展而来,改名java1.0。跨平台,因为JVM。1996.1 jdk1.0发布,JVM出现。"Sun Classic VM"第一个jvm1996.9 首届JavaOne大会1997.2 jdk1.1 新增了内部类,反射,jar文件格式,jdbc,javabeans1998 jdk1.2,提出三个发展方向...原创 2020-03-25 10:02:22 · 386 阅读 · 0 评论 -
JVM 之 JDK安装与配置
通常我们使用的系统中无论是linux还是windows都不会自带JDK,需要我们安装与设置之后才能进行ava开发、1.准备JDK包下载jdk:https://www.oracle.com/java/technologies/javase-jdk8-doc-downloads.html2.配置环境Windows: 在系统变量中添加变量JAVA_HOME和CLASSPA...原创 2020-03-25 09:23:59 · 1847 阅读 · 0 评论