社区
Java SE
帖子详情
类加载后,对内存和jvm产生什么影响货变化?
风斧
2005-06-04 12:56:52
请指教
...全文
153
4
打赏
收藏
类加载后,对内存和jvm产生什么影响货变化?
请指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lipeipei
2005-06-04
打赏
举报
回复
多占用了一些内存。同时,如果类中有匿名静态函数就会导致这个函数运行。
贝壳鱼
2005-06-04
打赏
举报
回复
在内存里圈了一个块地
YuLimin
2005-06-04
打赏
举报
回复
占了内存:)
laughsmile
2005-06-04
打赏
举报
回复
JVM的内存分为两部分:stack和heap.
stack(栈)是JVM的内存指令区。Java基本数据类型,Java指令代码,常量都保存在stack中。
heap(堆)是JVM的内存数据区。heap专门用来保存对象的实例。在heap中分配一定的内存来保存对象实例,实际上是保存对象实例的属性值,属性的类型和对象本身的类型标记等,并不保存对象的方法(方法是指令,保存在stack中)。对象实例在heap中分配好以后,需要在stack中保存一个4字节的heap内存地址,用来定位该对象实例在heap中的位置,便于找到该对象实例。
stack的内存管理不存在内存回收问题;而heap则是随机分配内存,存在内存分配和回收的问题;所以GC进程,定期扫描heap,根据stack中保存的4字节对象地址扫描heap,定位heap中这些对象,进行一些优化(例如合并空闲内存块什么的),并且假设heap中没有扫描到的区域都是空闲的,统统垃圾收集。
所以类加载之后:
1)非静态method指令保存在stack中,方法内部变量中简单类型保存在stack中,对象类型在stack中保存地址,在heap中保存值.静态method指令与变量都放在stack中
2)对象实例包括其属性值作为数据,保存在数据区heap中。
3) 简单类型非静态属性放在heap中.
4) 静态属性是保存在stack中的(基本类型保存在stack中,对象类型地址保存在stack,值保存在heap中).
JVM
修炼之路
【课程介绍】每节课为一个小时的内容。 课程内容循序渐进,由浅入深,内容覆盖基础、进阶、高级。
JVM
是Java知识体系中的...包括
JVM
执行过程、虚拟机
类加载
机制、运行时数据区、GC、
类加载
器、
内存
分配与回收策略等。
JVM
类加载
机制与加载过程
JVM
的
类加载
机制:在代码编译后,就会生成
JVM
(Java虚拟机)能够识别的二进制字节流文件(*.class)。而
JVM
把Class文件中的类描述数据从文件加载到
内存
,并对数据进行校验、转换解析、初始化,使这些数据最终成为可以被
JVM
直接使用的Java类型。 ...
JVM
之
类加载
阶段详解
JVM
之
类加载
阶段详解
类加载
阶段总览加载获取二进制流将字节流转换为运行时数据结构堆中生成Class对象特殊连接验证准备解析名词解释何时进行解析哪些类型初始化使用卸载
类加载
阶段总览 注意:这些阶段的顺序虽然是确定的,但是这些阶段通常都是互相交叉混合进行的,会在一个阶段中调用,激活另外一个阶段执行 加载 加载阶段顾名思义,也就是Class文件所代表的的 类/接口 被加载到虚拟机中。 那么什么时候(
类加载
的时机), 谁来加载(哪个
类加载
器),将哪个Class文件(Class的名称是什么)到虚拟机中呢? 1
JVM
内存
模型(通俗易懂)
1.什么是
jvm
? (1)
jvm
是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的。 (2)
jvm
包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。 (3)
JVM
屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
JVM
在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。 2.jdk、jre、
jvm
是什么关系? (1)JRE(Java R
JVM
加载class文件的原理机制
Java语言是一种具有动态性的解释型语言,类(class)只有被加载到
JVM
后才能运行。当运行指定程序时,
JVM
会将编译生成的.class文件按照需求和一定的规则加载到
内存
中,并组织成为一个完整的Java应用程序。这个加载过程是由
类加载
器完成,具体来说,就是由ClassLoader和它的子类来实现的。
类加载
器本身也是一个类,其实质是把类文件从硬盘读取到
内存
中。 类的加载方式分为隐式加载和显示加载
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章