微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java基础面试题

走进Java

一、什么是虚拟机?

Java虚拟机,是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件(.class)。

Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

但是,跨平台的是Java程序(包括字节码文件),而不是JVM。JVM使用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同的JVM。

不同平台,不同的JVM

也就是说,JVM能够跨计算机体系结构来执行Java字节码,主要是由于JVM屏蔽不同计算机平台相关的软件或者硬件之间的差异,使得与平台相关的耦合统一由JVM提供者来实现。

JVM由哪些部分组成?

JVM的结构基本上由4部分组成:

JVM内存结构

  • 类加载器,在JVM启动时或者类运行时将需要的class加载到JVM中。
  • 内存区,将内存划分成若干个区,以模拟实际机器上的存储、记录和调度功能模块,譬如实际机器上的各种功能的寄存器或者PC指针的记录等。
  • 执行引擎,执行引擎的任务是负责执行class文件中包含的字节码指令,相当于实际机器上的cpu
  • 本地方法调用调用C或C++实现的本地方法代码返回结果。

怎样通过Java程序来判断JVM是32位的还是64位?

Sun有一个Java System属性来确定JVM的位数:32or64

  • sun.arch.data.model=32 //32 bit JVM
  • sun.arch.data.model=64 //64 bit JVM
    我们可以使用一下Java语句来确定JVM是32位还是64位:
System.getProperty("sun.arch.data.modal");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐