面试题:Java虚拟器如何加载class文件

JVM实例对应了一个独立运行的java程序,它是进程级别。启动一个Java程序时,一个JVM实例就产生了

Class Loader(类装载器):由他将编译好的class文件加载到JVM(虚拟机)内存中

而JVM内存分为五大块:

堆:存放对象(分为新生代、旧生带、持久代放在方法区内)

方法区:存放class文件和一些静态变量、常量

程序计数器:指示JVM解析器(Execution Engine)执行下一行代码

栈:存放变量、方法中的局部变量

本地方法栈:存放本地方法的变量(虚拟机提供了Native Interface来访问本地的方法)

最后由JVM解析器(Execution Engine)解析class文件生成二进制代码

为什么说java有平台无关性呢?因为java拥有虚拟机,虚拟机厂商只要在生产虚拟机的时候考虑如何把class文件转成不同平台可执行的二进制文件即可。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值