美术网站建设方案,有什么做视频的素材网站,企业免费做网站,企业图册设计1、java语言的平台无关性。
因为java语言可以跑在java虚拟机上#xff0c;所以只要能装java虚拟机的地方就能跑java程序。java语言以后缀名 .java为文件扩展名。通过java编译器javac编译成字节码文件.class 。java字节码文件通过java虚拟机解析运行。所以java语言可以说是编译…1、java语言的平台无关性。
因为java语言可以跑在java虚拟机上所以只要能装java虚拟机的地方就能跑java程序。java语言以后缀名 .java为文件扩展名。通过java编译器javac编译成字节码文件.class 。java字节码文件通过java虚拟机解析运行。所以java语言可以说是编译解析型语言。
java虚拟机屏蔽了操作系统的特性。使java语言编译一次就可以在任何装有符合版本的java虚拟机的操作系统上运行。准备的来说应该是java的字节码文件是平台无关性的而非java代码。 2、java类加载过程。 类加载过程分为加载、连接和初始化三个阶段其中的连接阶段又分为验证、准备和解析三个阶段。
要执行 Class 文件就需要先将其加载进内存这一工作正是由类加载器 (ClassLoader) 完成的系统为我们提供了三种类加载器分别是启动类加载器 (Bootstrap ClassLoader)、扩展类加载器 (Extension ClassLoader) 和应用程序类加载器 (Application ClassLoader)如果有必要我们也可以加入自定义的类加载器。
3、java虚拟机内存结构。 Classloader 是 JVM 的一个子系统用于加载类文件。每当我们运行 java 程序时它首先由类加载器加载。Java中有三个内置的类加载器。
Bootstrap ClassLoader这是第一个类加载器它是扩展类加载器的超类。它加载包含Java标准版所有类文件的rt.jar文件如java.lang包类、java.net包类、java.util包类、java.io包类、java.sql包类等。
Extension ClassLoader这是 Bootstrap 的子类加载器和 System 类加载器的父类加载器。它加载位于$JAVA_HOME/jre/lib/ext目录中的 jar 文件。
System/Application ClassLoader这是扩展类加载器的子类加载器。它从类路径加载类文件。默认情况下类路径设置为当前目录。您可以使用“-cp”或“-classpath”开关更改类路径。它也被称为应用程序类加载器。
2.类(方法)区
Class(Method) 区域存储每个类的结构例如运行时常量池、字段和方法数据、方法的代码。
3.堆
它是分配对象的运行时数据区。
4.堆栈
Java Stack 存储帧。它保存局部变量和部分结果并在方法调用和返回中发挥作用。
每个线程都有一个私有 JVM 堆栈与线程同时创建。
每次调用方法时都会创建一个新框架。框架在其方法调用完成时被销毁。
5.程序计数器寄存器
PC(程序计数器)寄存器包含当前正在执行的Java虚拟机指令的地址。
6.原生方法栈
它包含应用程序中使用的所有本机方法。
7.执行引擎
它包含了
虚拟处理器
解释器读取字节码流然后执行指令。
Just-In-Time(JIT) 编译器用于提高性能。JIT 同时编译具有相似功能的部分字节码从而减少编译所需的时间。这里术语“编译器”是指从Java虚拟机(JVM)的指令集到特定CPU的指令集的翻译器。
8.Java 原生接口
Java Native Interface (JNI) 是一个框架它提供了一个接口来与用另一种语言(如 C、C、Assembly 等)编写的另一个应用程序进行通信。Java 使用 JNI 框架将输出发送到控制台或与 OS 库进行交互。