Java概览——Java运行机制

news2024/11/18 2:49:24

Java概览—Java运行机制

Java的运行过程

  • Java程序运行时,必须经过编译和运行两个步骤。
  • 首先将后缀名为.java的源文件进行编译,最终生成后缀名为.class的字节码文件,然后Java虚拟机,将字节码文件进行解释执行,并将结果显示出来。
  • Java程序运行过程进行详细解释
    • 编写一个HelloWorld.java文件
    • 使用javac HelloWorld.java 命令开启Java编译器并进行编译。编译结束后,会自动生成一个HelloWorld.class的字节码文件
    • 使用java HelloWorld 命令启动Java虚拟机运行程序,Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载,它是由类加载器完成的,然后虚拟机针对加载到内存中的Java类进行解释执行,便可看到运行结果
  • 虚拟机针对加载到内存中的Java类进行解释执行,便可看到运行结果。

Java的跨平台解释

通过,我们上面所讲的 J a v a Java Java程序员是由虚拟机负责解释执行的,而并非操作系统。这样做的好处实现跨平台性,也就是说针对不同的操作系统可以编写相同的程序。只需要安装不同版本的虚拟机即可,如下图所示:
在这里插入图片描述
从闪图的操作系统,可以看出,不同的操作系统需要使用不同版本的虚拟机,这种方法使得Java语言具有一次编写到处运行(Write one , run anywhere)"的特点。有效的解释了程序设计语言在不同操作系统编译时产生不同机器代码问题。大大降低了程序开发和维护的成本。
需要注意的时 J a v a Java Java程序通过 J a v a Java Java虚拟机可以达到跨平台特性,但 J a v a Java Java虚拟机并不是跨平台的,也就是说,不同操作系统的 J a v a Java Java虚拟机是不同的,即windows平台上的Java虚拟机不能使用在Linux平台之上,反之亦然。

总结

  • 经验到此为止,慢慢的将各种Java运行机制全部都将其搞清楚,将其全部都搞定都行啦的理由与打算。
  • 关于Java运行机制中描述正确的是

  • ClassLoader 是 JVM 实现的一部分

  • ava 编译器会将程序编译为 Java 虚拟机可以执行的字节码

  • 编译器将程序编译为Java虚拟机可以执行的字节码

Java运行时的环境,简称JRE,用于运行Java程序,包含JVM。

Java 开发工具包(Java Development Kit)用于开发Java程序,包含JRE和 Java 编译工具等

  • 运行时的环境
  • 开发工具包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174257.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker学习笔记【part1】概念与安装

一、Docker的概念 Docker 是实现系统平滑移植、容器虚拟化的技术,基于 Go语言,可以实现软件带环境安装,做到“一次镜像,处处运行”。Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职…

九龙证券|次新股叠加智慧交通+信创+数字经济概念,开盘冲涨停!

核算机板块1月以来跑赢上证指数;才智交通、成绩高增及严重财物重组个股登上涨停榜。 证券时报•数据宝核算,1月19日,沪深两市收盘涨停股35只,其中ST股6只。群众交通、长久科技两股一字板强势涨停,潞安环能、跃岭股份收…

【MySQL】第五部分 多表查询

【MySQL】第五部分 多表查询 文章目录【MySQL】第五部分 多表查询5. 多表查询5.1 等值连接5.2 非等值连接5.3 自连接5.4 内连接5.5 外连接5.6 满外连接5.7 SQL99语法实现多表查询5.7.1 JOIN...ON语法5.7.2 使用SQL99语法实现内连接5.7.3 使用SQL99语法实现左外连接和右外连接5.…

postman入门

目录 新建界面 菜单区 百度翻译api实战 post 参数化 新建界面 1)可以新建请求,(rqueset)模拟客户端的请求, 2)可以创建测试集合(collection),对接口请求进行统一管理…

删除排序链表中的重复元素

删除排序链表中的重复元素 题目描述 原始题目参考:删除有序链表的重复元素 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1…

java spring IOC Bean管理操作(xml P名称空间注入)

首先 我们来写一个基本的 通过xml的set属性注入 首先创建一个项目 然后引入 spring 最基本的几个依赖包 src下 下有一个 gettingStarted 包 下面有一个 user类 代码如下 package gettingStarted;public class user {public String name;public int age;public void setName(S…

leetcode 1817. 查找用户活跃分钟数【python3,哈希表的实现思路详解】

题目 给你用户在 LeetCode 的操作日志,和一个整数k。日志用一个二维整数数组logs表示,其中每个logs[i] [IDi, timei]表示ID为IDi的用户在timei分钟时执行了某个操作。 多个用户可以同时执行操作,单个用户可以在同一分钟内执行多个操作。指定…

Deno不只是个Javascript运行时

Deno 是一个安全的 JavaScript 和 TypeScript 运行时,作者是 Ryan Dahl(也是 Node.js 的原作者)。Deno 的诞生之初是为了解决 2009 年首次设计 Node.js 时的一些疏忽。我认为这种改造动机很有道理,因为我相信每个程序员都希望有机…

cmake跨平台构建工具

TOP目录 前言 CMake是一个跨平台的安装编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。CMake可以说已经成为大部分C开源项目标配 因此,作为一名C C发开人员,看到cmake不应该一脸茫然… 作为初学者,通俗的认为cmake…

C语言入门(七)——结构体

复合类型与结构体 数据抽象 数据类型标志 嵌套结构体 复合类型与结构体 在编程语言中,最基本的,不可再分的数据类型称为基本类型,例如整型,浮点型;根据语法规则由基本类型组合而成的类型称为复合类型,例如字符串是…

系统性能优化、性能指标、性能测试

系统性能是互联网应用最核心的非功能性架构目标,系统因为高并发访问引起的首要问题就是性能问题:高并发访问的情况下,系统因为资源不足,处理每个请求的时间就会变慢,看起来就是性能变差。 因此,性能优化是…

1596_AURIX_TC275_LMU简介

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这个章节其实没有多少页文档,而大部分的文档其实是寄存器的字段描述。因此,这次一次性把这个文档的内容大概看完。 LMU提供了32K的本地通用RAM。ED存储的访问也是通…

Mybatis 框架开发的准备

从百度中“mybatis download”可以下载最新的 Mybatis 开发包。进入选择语言的界面,进入中文版本的开发文档。下载相关的 jar 包或 maven 开发的坐标。下载的 zip 文件如下(我们的资料文件夹):我们所使用的 Mybatis 版本是 3.2.7 …

我在CSDN的2022:突破零粉丝,4个月涨粉4000+,2023年目标5万+

文章目录前言我为什么又回来写博客?初写文章碰壁1024活动第一次上热榜关于上热榜博客之星2023年目标最后前言 今年最自豪的事,我用业余时间,在CSDN上坚持创作了4个月,产出了20多篇博客,其中7篇文章上了全站热榜&#…

Python基础必经之路——函数

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 目录前言定义函数向函数传递信息实参和形参传递实参返回值将函数存储在模块中导入整个模块尾语 💝定义函数 下面是一个打印问候语的简单函数 def greet_user():print("hello") greet_user()本例示例…

excel函数技巧:如何快速汇总销售合计项

一年的销售数据整理完了,除了要看到每个人的销售合计之外,老板今年还要看到图中这两项合计:销量最高的三个月合计是指汇总每人一年中,销量最高的三个月的数据。超过平均值的销售合计是指汇总超过总平均值的月份销量。两项合计需要…

【进阶】Spring Boot日志文件

努力经营当下,直至未来明朗! 文章目录一、日志有什么用二、日志怎么用三、 自定义日志打印四、 日志级别五、日志持久化六、更简单的日志输出——lombok小结普通小孩也要热爱生活! 一、日志有什么用 日志是解决问题最直观、最有效的方法。⽇…

ROS2机器人编程简述humble-第二章-Launchers .3.3

ROS2机器人编程简述humble-第二章-Publishing and Subscribing .3.2ros2 run一次只能开启一个node,如果一次开启一组相关node,需要使用ros2 launch。支持Python, XML, 和 YAML。推荐Python。zhangrelayLAPTOP-5REQ7K1L:~$ ros2 run -h usage: ros2 run […

Mysql之约束

简介 not null前面也说过,这些约束是针对列的数据的,对应整个列的数据都起约束作用 基本但是创建表在字段后使用的语句 1.primary key-主键 主键特征1.对应列不能有重复的数据2.不能为NULL 唯一且非空 -- 主键 -- id,name,email CREATE TABLE t17(id…

AX7A200教程(1): DDR3仿真平台搭建(一)

本章节主要调用官方的MIG控制器,并使用官方的MIG控制器进行仿真,开发环境vivado2020.1鉴于很多童鞋无法仿真自己新建的DDR工程,即使使用modelsim仿真也仿真失败,本例程着重于在vivado中,对自己新建的带DDR3的工程进行仿…