多语言编译为字节码在JVM运行计算机是不能直接运行java代码的,必须要先运行java虚拟机,再由java虚拟机运行编译后的java代码。这个编译后的java代码,就是本文要介绍的java字节码。为什么jvm不能直接运行java代码呢,这是因为在cpu层面看来计算机中所有的操作都是一个个指令的运行汇集而成的,java是高级语言,只有人类才能理解其逻辑,计算机 ......
70
0
0
2024-04-02
Java源代码使用 Javac 编译器编译成class文件,然后交给JVM执行。但是 JVM 不仅具有平台无关性,还具有语言无关性,class文件是jvm运行的基石,无论上层是Java还是Kotlin,JVM只认识class文件,只要class文件符合JVM的规范就能运行。 class文件class文件是二进制文件,它的内容具有严格的规范,文件中没有任何空格 ......
52
0
0
2024-03-21
大家好,我是不才陈某~上周知识星球的小伙伴面了阿里,在二面中被问到GC日志分析,感觉回答的不是很好,过来找我复盘,大致听了他的回答,虽然回答出了部分,但是没抓到重点。GC日志分析算是JVM调优中比较难的部分,今天这篇文章就来聊聊如何利用JDK现有的命令并且借助可视化工具如何去分析GC日志。JVM调优实践JVM实践调优主要步骤默认的策略是最普用,但不是最佳的。 ......
62
0
0
2024-03-04
JVM模型Class Loader类加载器负责加载class文件,class文件在文件开头有特定的文件标识,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。Method Area方法区(永久区)方法区是被所用的线程共享,所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也是再此定义。 ......
65
0
0
2024-02-26
1.JDK、JRE、JVM关系?Jdk (Java Development Kit) : java语言的软件开发包。包括Java运行时环境Jre。Jre (Java Runtime Environment) :Java运行时环境,包括Jvm。Jvm (Java Virtual Machine) :一种用于计算机设备的规范。Java语言在不同平台上运行时不需要 ......
84
0
0
2024-02-23
Tech 导读 JAVA简单易用的特性,能够让研发人员在不了解JVM的底层运行机制的情况下依旧能够编写出功能完善的代码。但是对JVM的理解,是一个程序员普通和优秀的分水岭。全面地了解JVM的工作原理,能够更好地优化自己的代码,并解决一些潜在的性能问题。本文将从原理聊起,把JVM的内存分配、GC、编译等知识进行分析和总结。01JVM运行时内存划分在今年的敏捷团 ......
83
0
0
2024-02-01
本文最后更新于 2 天前,其中的信息可能已经有所发展或是发生改变。本篇为深入理解 Java 虚拟机第二章内容,推荐在学习前先掌握基础的 Linux 操作、编译原理、计算机组成原理等计算机基础以及扎实的 C/C++ 功底。该系列的 GitHub 仓库:https://github.com/Doge2077/learn-jvm运行时数据区域Java 虚拟机在执行 ......
79
0
0
2024-01-09
JVM-虚拟机-GC及内存分配策略什么是GC?为啥要了解GC?GC就是垃圾回收,它的主要作用就是回收程序中不再使用的内存. GC对性能有影响,不同场景使用不同的GC策略有助于提高系统性能 了解GC机制能更好的编写代码 面试 判断对象是否存活JVM执行GC内存回收的时候如何判断内存是否可以回收呢,就是看对象是否还存活,如果不存活则回收对象对一个的内存空间 那 ......
91
0
0
2024-01-01
java 虚拟机的内存空间分为 5 个部分: 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 jdk 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在 虚拟机 中,而是使用本地内存。 程序计数器 (PC ......
96
0
0
2023-12-31
我很喜欢祖师爷的这句话,我觉得只有了解了最核心的技术,才算得上是精通了这门技术。当精通某项技术之后,在这个体系下的一切,学习、运用、创造才能做到游刃有余、手到擒来;才能更好的发挥个人和想象和创造力,做出更有价值的事情。当我们从一个Java学徒,逐步会运用Java语言编写项目的,只要1-2年时间,过几年后,也许大家和我会有同样的感觉,这门语言可以想象和发挥的空 ......
138
0
0
2023-12-20
文章目录: 讲一下 JVM 内存结构?Java 内存模型(JMM)是基于共享内存的多线程通信机制。 JVM内存结构 = 类加载器 + 执行引擎 + 运行时数据区域。 image-20210905150636105 程序计数器 程序计数器 主要有两个作用: 当前线程所执行的 字节码 的行号指示器,通过改变它实现代码的流程控制,如:顺序执行、选择、循环、 ......
95
0
0
2023-12-19
引言对象实例的角度,阐述一个 java 对象从生到死的历程、 Java 对象在内存中的布局以及对象引用类型。一、Java对象在内存中的布局Java源代码中,使用new关键字创建出的对象实例,我们都知道在运行时会被分配到内存上存储,但分配的时候是直接在内存中“挖”一个对应大小的坑,然后把对象实例丢进去存储吗?其实并不然,Java对象一般在内存中的布局通常由对象 ......
99
0
0
2023-12-09
注意: 篇幅较长,建议收藏后再仔细阅读!!!!!!!!!! 目录:一.引言二.基础故障处理工具 2.1 概述 2.2. jps:虚拟机进程状况工具 2.3. jstat:虚拟机统计信息监视工具 2.3. jinfo: java 配置信息工具 2.5. jmap:Java内存映像工具 2.7. jstack:Java堆栈跟踪工具 2.8. 基础工具总结三 ......
282
0
0
2023-12-04
文章目录一、 Java 内存区域 1.1 说一下 JVM 的主要组成部分及其作用? 1.2 说一下 JVM 运行时数据区 1.3 详细的介绍下 程序计数器 ? 1.4 详细介绍下 java 虚拟机栈? 1.5 一个方法调用另一个方法,会创建很多栈帧吗?递归的调用自己会创建很多栈帧吗? 1.6 你能给我详细的介绍Java堆吗? 1.7 能不能解释一下本地方法 ......
86
0
0
2023-11-23
什么是 JVM ?定义Java Virtual Machine – java 程序的运行环境(java 二进制 字节码的运行环境) 好处一次编写,到处运行 自动内存管理,垃圾回收功能 数组下标越界检查 多态 jvm jre jdk 常见的 JVM 整体结构 内存结构程序计数器 定义Program Counter Register 程序计数器(寄存器 ......
103
0
0
2023-11-19