美文网首页
Java基础 (21) Java虚拟机

Java基础 (21) Java虚拟机

作者: perry_Fan | 来源:发表于2019-02-20 21:37 被阅读0次

常见问题
1)java虚拟机的特性
2)谈谈对 jvm 的理解
3)JVM内存区域,开线程影响哪块内存
4)对Dalvik、ART虚拟机有什么了解?Art和Dalvik对比
5)JVM内存模型,内存区域
6)虚拟机原理,如何自己设计一个虚拟机(内存管理,类加载,双亲委派)
7)谈谈你对双亲委派模型理解

Compile Once,Run Anywhere如何实现
Javac编译,生成字节码
JVM解析,转换成特定平台的执行指令


Java源码首先被编译成字节码,再由不同平台的JVM进行解析,Java语言在不同的平台上运行时不需要进行重新编译,Java虚拟机在执行字节码的时候,把字节码转换成具体平台上的机器指令。

为什么JVM不直接将源码解析成机器码去执行?

  • 准备工作:每次执行都需要各种检查
  • 兼容性:也可以将别的语言解析成字节码

JVM 如何加载.class文件

image.png
  • ClassLoader:依据特定格式,加载class文件到内存
  • Execution Engine:对命令进行解析
  • Native Interface:融合不同开发语言的原生库为Java所用
  • Runtime Data Area:JVM内存控件结构模型

类从编译到执行的过程

  • 编译器将xxx.java源文件编译为xxx.class字节码文件
  • ClassLoader将字节码转换为JVM中的Class<xxx>对象
  • JVM利用Class<xxx>对象实例化为xxx对象

ART 和Dalvik的区别
在应用安装的时候就预编译字节码到机器语言。AOT
Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机实例,并且每一个Dalvik应用作为单独的进程执行。
但是存储空间更大,更长的安装时间。性能显著提升、应用启动更快、运行更快、体验更流畅。更长的电池续航能力。更低的硬件。

通过javap指令编译代码

相关文章

  • Java虚拟机基础——2JVM运行时数据区

    Java虚拟机整体篇幅如下: Java虚拟机基础——1Java的内存模型Java虚拟机基础——2JVM运行时数据区...

  • Java虚拟机基础——4内存回收机制

    Java虚拟机整体篇幅如下: Java虚拟机基础——1Java的内存模型Java虚拟机基础——2JVM运行时数据区...

  • Java虚拟机基础——3类加载机制

    Java虚拟机整体篇幅如下: Java虚拟机基础——1Java的内存模型Java虚拟机基础——2JVM运行时数据区...

  • java--初认识

    java开发基础 jvm java虚拟机 jdk JAVA_HOME="/Library/Java/JavaVir...

  • Java基础

    Java基础概述 名次释义: Java虚拟机(Java Virtual Machine)java运行的环境。 垃圾...

  • Java内存模型和垃圾回收

    1、 Java虚拟机内存模型 Java虚拟机内存模型是Java程序运行的基础。为了能使java应用程序正常运行,...

  • Java面试2019基础题目汇总一

    一、JAVA基础篇-概念 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机...

  • Java面试

    Java基础 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行J...

  • BAT面试专题:深入理解JVM——图解JVM调优

    JVM:java虚拟机,java的核心与基础,用来运行java的程序 1、java程序的运行过程 java源文件被...

  • JVM笔记

    内存区域基础概念: 1.java虚拟机和java内存区域 2.java虚拟机栈和本地方法栈 3.java堆 4.方...

网友评论

      本文标题:Java基础 (21) Java虚拟机

      本文链接:https://www.haomeiwen.com/subject/xvpmeqtx.html