会员中心     
首页 > 欧亿·体育(中国)有限公司专栏 > HRM > 人力资源 > 面试甄选 > Java虚拟机(JVM)面试题51道PDF

Java虚拟机(JVM)面试题51道PDF

索美医疗
V 实名认证
内容提供者
欧亿·体育(中国)有限公司大小:2354KB(压缩后)
文档格式:PDF(23页)
欧亿·体育(中国)有限公司语言:中文版/英文版/日文版
解压密码:m448
更新时间:2024/9/15(发布于广东)

类型:金牌欧亿·体育(中国)有限公司
积分:--
推荐:升级会员

   点此下载 ==>> 点击下载文档


“Java虚拟机(JVM)面试题51道PDF”第1页图片 图片预览结束,如需查阅完整内容,请下载文档!
文本描述
Java内存模型 1. 我们开发人员编写的Java代码是怎么让电脑认识的 首先先了解电脑是二进制的系统,他只认识 01010101 比如我们经常要编写 HelloWord.java 电脑是怎么认识运行的 HelloWord.java是我们程序员编写的,我们人可以认识,但是电脑不认识 Java文件编译的过程 1. 程序员编写的.java文件 2. 由javac编译成字节码文件.class:(为什么编译成class文件,因为JVM只认识.class文件) 3. 在由JVM编译成电脑认识的文件 (对于电脑系统来说 文件代表一切) (这是一个大概的观念抽象画的概念) 2. 为什么说java是跨平台语言 这个夸平台是中间语言(JVM)实现的夸平台 Java有JVM从软件层面屏蔽了底层硬件、指令层面的细节让他兼容各种系统 难道 C 和 C++ 不能夸平台吗其实也可以 C和C++需要在编译器层面去兼容不同操作系统的不同层面,写过C 和C++的就知道不同操作系统的有些代码是不一样 3. Jdk和Jre和JVM的区别 Jdk包括了Jre和Jvm,Jre包括了Jvm Jdk是我们编写代码使用的开发工具包 Jre 是Java的运行时环境,他大部分都是 C 和 C++ 语言编写的,他是我们在编译java时所需要的基 础的类库 Jvm俗称Java虚拟机,他是java运行环境的一部分,它虚构出来的一台计算机,在通过在实际的计 算机上仿真模拟各种计算机功能来实现Java应用程序 看Java官方的图片,Jdk中包括了Jre,Jre中包括了JVM 4. 说一下 JVM由那些部分组成,运行流程是什么? JVM包含两个子系统和两个组件: 两个子系统为Class loader(类装载)、Execution engine(执行引 擎); 两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。 Class loader(类装载):根据给定的全限定名类名(如:java.lang.Object)来装载class文件到 Runtime data area中的method area。 Execution engine(执行引擎):执行classes中的指令。 Native Interface(本地接口):与native libraries交互,是其它编程语言交互的接口。 Runtime data area(运行时数据区域):这就是我们常说的JVM的内存。 流程 :首先通过编译器把 Java 代码转换成字节码,类加载器(ClassLoader)再把字节码加载到 内存中,将其放在运行时数据区(Runtime data area)的方法区内,而字节码文件只是 JVM 的一 套指令集规范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎 (Execution Engine),将字节码翻译成底层系统指令,再交由 CPU 去执行,而这个过程中需要 调用其他语言的本地库接口(Native Interface)来实现整个程序的功能。 5. 说一下 JVM 运行时数据区 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存区域划分为若干个不同的数据区域。这 些区域都有各自的用途,以及创建和销毁的时间,有些区域随着虚拟机进程的启动而存在,有些区 域则是依赖线程的启动和结束而建立和销毁。Java 虚拟机所管理的内存被划分为如下几个区域: 简单的说就是我们java运行时的东西是放在那里的 程序计数器(Program Counter Register):当前线程所执行的字节码的行号指示器,字节码解 析器的工作是通过改变这个计数器的值,来选取下一条需要执行的字节码指令,分支、循环、跳 转、异常处理、线

版权所有: 欧亿·体育(中国)有限公司©2025 客服电话: 0411-88895936 18842816135

欧亿·体育(中国)有限公司