java虚拟机 方法区_java虚拟机---方法区[szx]
Java虚拟机中,被装载类型的信息存储在一个逻辑上被称为方法区的内存中。
当虚拟机装载某个类型时,它使用类装载器定位相应的class文件
然后读入这个class文件----线行二进制数据流, 然后将它传输到虚拟机中。紧接着虚拟机提取其中的类型信息,并将这信息存储到方法区。该类型的静态变量同样也是存储在方法区。
当虚拟机运行java程序时,它会查找使用存储在方法区中的类型信息,设计者应当为类型信息的内部表示设计适当的数据结构。
由于所有线程都共享方法区,因此它们对方法区数据的访问必须被设计为线程安全的。比如, 假设同时有两个线程都企图去访问一个java类,而这个类还没有被装入虚拟机,那么,这时应该有一个线程去住装载它,而另一个线程等待。
虚拟机通过用户定义的类装载器来动态扩展java程序,因此一些类也会成为程序"不再引用"的类,当某个类变为不再被引用的类时。java虚拟机可以卸载这个类
类的信息: 对于每个装载的类型,虚拟机都会在方法区中存储一下类型的信息
这个类型的全限定名
这个类型的直接超类的权限定名(java.lang.Object e)
这个类型是类还是接口
这个类型的访问修饰符
任何直接超接口的全限定名的有序列表
除了上面列出的基本类型信息外,虚拟机还得为每个被装载的类型存储以下信息
该类型的常量池
字段信息
方法信息
静态变量
一个到类ClassLoader的引用
一个带Class类的引用
常量池 虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用常量的一个有序集合,包括直接常量(string, integer,floating point)对其他类型,字段的方法的符号的引用;
java虚拟机 方法区_java虚拟机---方法区[szx]相关推荐
- java虚拟机栈帧_Java虚拟机,运行时栈帧结构
业余生活要有意义,不要越轨.--华盛顿 引导语 "虚拟机"是一个相对于"物理机"的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器. ...
- java虚拟机内存告警_Java虚拟机总结
JVM体系四大块: 类的加载 JVM内存结构 GC算法 垃圾回收 GC分析 性能调优 执行引擎 JVM架构图 jvm.arch 一.类的加载机制 类的加载 类的加载,将class文件读入方法区,然后在 ...
- java 虚拟机的原理_java虚拟机的原理
所谓虚拟机,就是一台虚拟的机器.它是一款软件,用来执行一系列虚拟计算机指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机,Visual Box .Vmare就属于系统虚拟机.他们完全是对物理计算机的仿真 ...
- JAVA虚拟机 安全区域_Java虚拟机的内存区域
2020年12月10日 阅读 186 关注 Java虚拟机的内存区域 最近在看<深入理解Java虚拟机>,故此写下自己的学习笔记. JVM 运行时数据区域 Java 虚拟机在执行 Java ...
- java虚拟机 函数表_java虚拟机的基本结构如图
1 java虚拟机的基本结构如图: 1)类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间.除了类的信息外,方法区中可能还会存放运行时常量池信息,包括字 ...
- java虚拟机工作原理图_Java虚拟机工作原理
首先我想从宏观上介绍一下Java虚拟机的工作原理.从最初的我们编写的Java源文件(.java文件)是如何一步步执行的,如下图所示,首先Java源文件经过前端编译器(javac或ECJ)将.java文 ...
- java 内存泄露 书籍_java虚拟机内存溢出和泄漏实例
测试参数设置: 1.循环调用new A()实现堆溢出,java.lang.OutOfMemoryError: Java heap space, 虚拟机参数:-Xms1M -Xmx1M -XX:+Hea ...
- java痴和堆_JAVA虚拟机理解 - 爱笑的痴迷者的个人空间 - OSCHINA - 中文开源技术交流社区...
JVM定义: JVM(Java Virtual Machine),是一种运行Java程序的软件实现,是虚拟的机器.Java程序与平台无关,它直接在虚拟机中运行. JVM运行过程: JVM将内存分划如下 ...
- java 虚拟机内存管理_java虚拟机内存管理
程序计数器: 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器. 程序计数器处于线程独占区 如果线程执行的是Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地 ...
- java虚拟机可以处理_Java虚拟机对类加载的处理机制
类被加载到虚拟机内存开始,到卸载出内存为止,经历了:加载->验证->准备->解析->初始化->使用->卸载 这七个过程 加载 在加载阶段,虚拟机要完成三件事: (1 ...
最新文章
- 这38篇原创文章,带我入门深度学习!
- MPEG2-TS音视频同步原理
- python 树_Python树的概念
- 使用hive中beeline引擎来访问hive数据库
- 动态调用类 java_Java动态调用类中方法
- [Flink] Flink运行报错The number of requested virtual cores for application master
- iOS之socket编程
- 禁止页面拖拽事件(数据什么的)
- GPIO推挽输出和开漏输出模式区别详解
- php图片加边框,PHP 给图片加边框
- .net 基于wkhtmltopdf插件,Rotativa包在后端根据html代码生成pdf文件
- 模板消息接口php代码demo,发送模板API例子
- 工业机器人应用编程考核设备
- python学习笔记项目_python第三方库之Django学习笔记一
- 诙谐术语讲解:热备,冷备,云备,以及IT行业各种备份术语
- 那个炒币,8小时赚了一辆法拉利的女大学生,现在怎么样了?
- C# winfrom NPOI导出Excel 添加视频、音频文件
- 计算机色彩再现原理,清华大学出版社-图书详情-《计算机色彩原理及应用》
- vue scroll 监听,点击按钮自动滚动到相应的信息展示
- [CTO札记]平台化,多资源整合之道
热门文章
- 用c语言实现动态优先权调度,实验四使用动态优先权的进程调度算法的模拟..doc...
- 封装获取一个URL地址问号后面传递的参数信息以及哈希值HASH 方法
- QPalette类详细使用方法
- seurat中报错Error: Cannot add a different number of cells than already present
- Simon Knowles:30年做成三家独角兽公司,AI芯片创业的底层逻辑
- GitHub简介、fork、pull和clone、快速起步
- 自然语言处理相关:英文词性缩写一览表
- 印度网站前50名都是做什么的
- 中小型局域网上网管理组网方案
- 限量50件,属于创作者的、用代码设计的T恤