JVM
文章平均质量分 91
JVM相关技术学习
fyqing124
这个作者很懒,什么都没留下…
展开
-
【JVM】JDK内置命令行工具
JVM命令行工具概览加粗的是常用的命令打包/编译/分发/安全相关命令工具简介javaJava 应用的启动程序javacJDK 内置的编译工具javap反编译 class 文件的工具javadoc根据 Java 代码和标准注释,自动生成相关的 API 说明文档javahJNI 开发时, 根据 java 代码生成需要的 .h文件extcheck检查某个 jar 文件和运行时扩展 jar 有没有版本冲突,很少使用jdbJava Debug原创 2021-09-19 19:58:06 · 491 阅读 · 0 评论 -
【JVM】JVM启动参数
JVM启动参数概述以 - 开头为标准参数,所有的 JVM 都要实现这些参数,并且向后兼容。-D 设置系统属性。以 -X 开头为非标准参数, 基本都是传给 JVM 的,默认 JVM 实现这些参数的功能,但是并不保证所有 JVM 实现都满足,且不保证向后兼容。 可以使用 java -X 命令来查看当前JVM 支持的非标准参数。以 –XX:开头为非稳定参数, 专门用于控制 JVM的行为,跟具体的 JVM 实现有关,随时可能会在下个版本取消。-XX:±Flags 形式, ± 是对布尔值进行开关。-XX原创 2021-09-19 16:53:59 · 365 阅读 · 0 评论 -
【JVM】JVM内存模型
JVM内存结构一张简单的图粗略描述:每个线程都只能访问自己的线程栈。每个线程都不能访问(看不见)其他线程的局部变量。所有原生类型的局部变量都存储在线程栈中,因此对其他线程是不可见的。线程可以将一个原生变量值的副本传给另一个线程,但不能共享原生局部变量本身。堆内存中包含了 Java 代码中创建的所有对象,不管是哪个线程创建的。 其中也涵盖了包装类型(例如 Byte,Integer,Long 等)。不管是创建一个对象并将其赋值给局部变量, 还是赋值给另一个对象的成员变量, 创建的对象都会被保存原创 2021-09-19 16:05:17 · 350 阅读 · 0 评论 -
【JVM】JVM类加载器
类的生命周期加载(Loading):找 Class 文件验证(Verification):验证格式、依赖准备(Preparation):静态字段、方法表解析(Resolution):符号解析为引用初始化(Initialization):构造器、静态变量赋值、静态代码块使用(Using)卸载(Unloading)类的加载时机当虚拟机启动时,初始化用户指定的主类,就是启动执行的 main 方法所在的类;当遇到用以新建目标类实例的 new 指令时,初始化 new 指令的目标类,就是 n原创 2021-09-19 15:47:37 · 148 阅读 · 0 评论 -
【JVM 】Java字节码
什么是字节码?Java bytecode由单字节(byte)的指令组成,理论上最多支持256个操作码(opcode)。实际上Java只使用了200左右的操作码,还有一些操作码则保留给调试操作。根据指令的性质,主要分为四个大类:栈操作指令,包括与局部变量交互的指令程序流程的控制指令对象操作指令,包括方法调用指令算术运算以及类型转换指令生成字节码假如一个类源代码如下:public class Hello { public static void main(String[] args原创 2021-09-18 17:05:17 · 143 阅读 · 0 评论