![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 85
yuan5883052
这个作者很懒,什么都没留下…
展开
-
jvm内存模型--方法区
栈、堆、方法区的交互关系方法区理解《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于HotSpotJVM而言,方法区还有一个别名叫做Non- Heap (非堆),目的就是要和堆分开。所以,方法区看作是一块独立于Java堆的内存空间。方法区(Method Area) 与Java堆一样,是各个线程共享的内存区域 方法区在JVM启动的时候被创建,并且它的实际的物理内存空间中和Java堆区一样都可以是不连转载 2021-03-18 17:28:32 · 270 阅读 · 0 评论 -
java代码如何运行?
前言作为一名Java程序员,我们需要知道Java代码是怎么运行的。最近复习了深入理解Java虚拟机,做了一下总结,希望对大家有帮助,如果有不正确的地方,欢迎提出,感激不尽。java 代码运行主要流程本文主要讲解流程如下: java源文件编译为class字节码 类加载器把字节码加载到虚拟机的方法区。 运行时创建对象 方法调用,执行引擎解释为机器码 CPU执行指令 多线程切换上下文 编译我们都知道,java代码是运行在Java虚拟.转载 2021-03-18 15:47:19 · 1448 阅读 · 0 评论 -
java对象的实例化过程
对象的实例化过程类的生命周期一个类的完整生命周期如下:其中使用就是对象的过程加载类加载过程的第一步,主要完成下面3件事情通过全类名获取定义此类的二进制字节流 将字节流所代表的静态存储结构转换为方法区的运行时数据结构 在内存中生成一个代表该类的 Class 对象,作为方法区这些数据的访问入口加载阶段和连接阶段的部分内容是交叉进行的,加载阶段尚未结束,连接阶段可能就已经开始了。验证准备准备阶段是正式为类变量(静态变量)分配内存并设置...转载 2021-03-17 16:33:56 · 599 阅读 · 0 评论 -
JVM–静态链接、动态链接
静态链接那么,首先,咱们先来聊聊静态链接。如上面的概念所述,在C/C++中静态链接就是在编译期将所有类加载并找到他们的直接引用,不论是否使用到。而在Java中我们知道,编译Java程序之后,会得到程序中每一个类或者接口的独立的class文件。虽然独立看上去毫无关联,但是他们之间通过接口(harbor)符号互相联系,或者与Java API的class文件相联系。我们之前也讲述了类加载机制中的一个过程—解析,并在其中提到了解析就是将class文件中的一部分符号引用直接解析为直接引用的过程,但是当时我转载 2021-03-16 15:17:25 · 2221 阅读 · 0 评论