JVM基础知识整理

1.什么是JVM?JVM有什么用?

    JVM是指Java虚拟机(Java Virtual Machine),它是一个虚拟出来的计算机环境,有自己的体系结构,包括方法区、堆、java栈,程序计数器、方法栈;运行引擎;类装载器。JVM是java实现“一次编译,多次运行”的关键,java程序编译后产生的字节码,由JVM解释成具体操作系统上的机器码去执行。

2.运行时数据区包括哪几个部分?

(1)程序计数器,即PC寄存器。PC寄存器存储了程序当前执行指令的地址。

(2)java栈。存放8种基本数据类型和对象的引用。

(3)本地方法栈。本地方法栈的作用和原理与java栈的作用和原理基本相似,只不过本地方法栈是为本地方法服务的,java栈是为java方法服务的。java方法是指由java编写的方法,编译成字节码,存储在class文件中;本地方法是指由其他语言编写的,编译成与处理器相关的机器代码,存储在dll文件中(windows系统),格式是各个平台专有的。java方法是与平台无关的,本地方法则不是。

(4)堆。存放所有new出来的对象。堆是被所有线程共享的,JVM中只有一个堆。

(5)方法区。方法区存储了类的相关信息(类的名称、方法信息、字段信息)、静态变量、常量等。方法区也是被线程共享的区域。

3.描述JVM的体系结构

    JVM 的体系结构包括四个部分:类加载器、执行引擎、内存区和本地方法接口。

(1)类加载器:JVM在启动时或类运行时将class文件加载到JVM中,每个类的类型对应一个唯一的class实例,唯一表示该类,存储于堆中。

(2)执行引擎:执行引擎是JVM的核心部分,负责解析字节码指令,得到执行结果。

(3)内存区:即运行时数据区,存储执行引擎执行时所需要存储的数据。

(4)本地方法接口:调用操作系统本地方法返回结果。

4.简单描述下类加载机制

    JVM把class文件加载到内存中,并对数据进行校验、准备、解析和初始化,形成能够被JVM直接使用的java类型的过程。

5.JVM把class文件加载到内存中的方式有哪些?

    (1)隐式加载:即通过new的方式实例化对象时,隐式调用类加载器将对应的类加载到JVM中。

    (2)显式加载:通过Class.forName的方式加载


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值