首页 > 编程语言 >Java运行机制

Java运行机制

时间:2022-09-05 09:22:54浏览次数:68  
标签:java 字节 ClassLoader JVM 运行机制 Java 加载

Java运行机制

高级语言的运行机制

我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序。

翻译,其实翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。

编译型语言(c,c++)

使用专门的编译器对源程序一次性 "翻译"成 特定平台的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序的格式。

优点: 运行效率较高

缺点:编译生成的程序无法移植

解释性语言(javascript,ruby,python)

使用专门的解释器对源程序逐行" 翻译"成特定平台的机器码并立即执行的语言。

优点:跨平台较容易

缺点:效率较低,不能脱离解释器独立运行

java的运行机制

java是编译型语言与解释型语言的结合体

Java 运行 具有 编译型 和 解释型 特点

5

①首先采用通用的java编译器将java源程序编译成为与平台无关的字节码文件(class文件)

②然后由java虚拟机(JVM)对字节码文件解释执行。

JVM(Java Virtual Machine Java虚拟机)

JVM负责将每一条要执行的 Java 字节码送给解释器,解释器再将其翻译成特定平台环境的机器指令并执行

  1. JVM是Java字节码执行的引擎,为java程序的执行提供必要的支持,还能优化java字节码,使之能转换成效率更高的机器指令。

  2. 程序员编写的程序最终都要在JVM上执行,JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的。

  3. ClassLoader是java运行时一个重要的系统组件,是负责在运行时查找和装入类文件的类

  4. 不同平台对应着不同的JVM,在执行字节码时,JVM负责将每一条要执行的 Java 字节码送给解释器,解释器再将其翻译成特定平台环境的机器指令并执行。

  5. java语言最重要的特点就是跨平台运行,使用JVM就是为了支持与操作系统无关,实现跨平台运行。

ClassLoader

ClassLoader 是 JVM 实现的一部分,包括:

  1. bootstrapclassloader(启动类加载器)用来加载java核心的API

  2. ExtClassLoader,用来加载java的扩展API,也就是lib\ext类

  3. AppClassLoader,用来加载用户机器上CLASSPATH设置目录中的Class

ClassLoader加载流程:

当运行一个程序的时候,JVM启动,

  1. 运行bootstrapclassloader,该ClassLoader加载java核心API,

  2. 然后调用ExtClassLoader加载扩展API,

  3. 最后AppClassLoader加载CLASSPATH目录下定义的Class.

标签:java,字节,ClassLoader,JVM,运行机制,Java,加载
From: https://www.cnblogs.com/gcbeen/p/16656916.html

相关文章

  • 动画标签 HTML CSS JavaScript
    动画标签HTMLCSSJavaScript动画标签HTMLCSSJavaScript免费下载HTML:<linkrel="样式表"href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1......
  • Java多线程相关概念
    Java多线程相关概念1.并发是在同一实体上的多个事件,是在同一台处理器上“同时”处理多个任务,同一时刻,其实是只有一个事件在发生2.并行是在不同实体上的多个事件,是在......
  • java关于序列化的理解
     序列化是将数据变成可以传输的形式: 1.java对象的形式 2.二进制形式 再通过IO传输;可以通过网络传输也可以将数据保存到文件中或者从文件中取出。 java中通过......
  • Javaweb10-javaweb其他知识点
    1、详解DefaultServlet与JspServlet参考博客-->详解DefaultServlet与JspServlet1.1DefaultServlet小结当服务端收到关于Servlet的请求之后交由自定义Servlet处理。当......
  • 2022年JDK安装(Java安装)详细教程(window)
    ​ 目录一、下载1、下载二、安装1、jdk安装2、jre安装三、检测 一、下载1、下载链接:https://pan.baidu.com/s/1x9xh93LvjqfaPqbByRhgqA提取码:6bso--来自百......
  • JavaScript-6 简介:属性、方法和内置对象
    JavaScript-6简介:属性、方法和内置对象特性当我们向JavaScript程序添加一条新数据时,浏览器会将其保存为该数据类型的一个实例。并且所有数据类型都可以访问传递给每个......
  • Java自定义注解
    简介注解是一种能被添加到java源代码中的元数据,方法、类、参数和包都可以用注解来修饰。注解可以看作是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时......
  • JAVA 面向对象-上 (一)
    JAVA面向对象-上(一)类与对象1.面向对象学习的三条主线:①Java类及类的成员:属性、方法、构造器;代码块、内部类②面向对象的三大特征:封装性、继承性、多态性、(抽象性)......
  • Java基础(三)—— 修饰符
    Java修饰符主要分为两种,访问权限修饰符和非访问权限修饰符。分别作用于类、方法和域(字段)上面,而且他们将起到不同的作用,甚至有些修饰符还是互斥的。接下来我将粗略的介绍......
  • HTML、CSS 和 JavaScript 格式的 3D 玻璃天气图标
    HTML、CSS和JavaScript格式的3D玻璃天气图标3D玻璃天气图标免费下载****在HTML、CSS和JavaScript中HTML:<divclass="weatherweather--sun"><divclass......