java基础(一):JDK、JRE、JVM、类库等概念,java跨平台实现原理

embedded/2024/11/23 8:34:29/

目录

1、基本概念

2、程序运行过程

java%E8%B7%A8%E5%B9%B3%E5%8F%B0%E5%8E%9F%E7%90%86-toc" style="margin-left:0px;">3、java跨平台原理


1、基本概念

JVM:虚拟机,真正运行java程序的地方

核心类库:java自己写好的程序,给程序员自己调用的,例如System.out.println(),调用的就是

核心类库中java.io包下的println()方法。

JRE:java的运行环境,JVM + 核心类库

java开发工具:

javac:编译成.class文件

java运行.class文件

JDK:java开发工具包,java开发工具 + JRE

下面放上一张图,给大家梳理梳理

2、程序运行过程

java">public class Hello {public static void main(String[] args) {System.out.println("HelloWord!");}
}

以这个最简单的HelloWord!为例子,我们都知道机器是不认识我们代码的,它只认识0和1,想要让机器认识,就要有一本字典,帮我们把这段话翻译成机器认识的语言。

第一步:javac工具先帮我们把这段代码编译成Hello.class文件

第二步:java拿着Hello.class文件到JVM里面运行

第三步:JVM收到Hello.class文件之后,会根据代码调用核心类库,例子中就需要调用java.io包下的println()方法,然后去运行我们的Hello.class文件

java%E8%B7%A8%E5%B9%B3%E5%8F%B0%E5%8E%9F%E7%90%86">3、java跨平台原理

一处编译、处处可用

我们不需要根据不同环境写不同的代码。sun公司很贴心的为不同平台提供了JVM对应配套的虚拟机,刚刚说过,java工具会把Hello.class文件拿到JVM虚拟机去执行,所以我们只需要根据不同的操作系统安装不同的JVM虚拟机就可以运行我们的Hello.class文件了。这就是一处编译、处处可用。也是java深受市场欢迎的原因了。

这就是我对JDK概念的理解,希望能帮到大家,有问题的地方欢迎大家一起讨论!

后续会不断更新作品,欢迎大家一起讨论学习。❤❤❤


http://www.ppmy.cn/embedded/139809.html

相关文章

leetcode105:从前序与中序遍历构建二叉树

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null,15,7]示…

『Linux』 第四章 进程—— 进程状态讲解

目录 1.1.1 通过系统调用创建进程-fork初识 1.2 进程状态 1.2.1 Linux内核源代码怎么说 1.2.2 进程状态查看 1.2.3 Z(zombie)-僵尸进程 1.2.4 僵尸进程危害 1.2.5 孤儿进程 1.3 进程优先级 1.3.1 基本概念 1.3.2 查看系统进程 1.3.3 PRI and NI 1.3.4 PRI vs NI …

【LeetCode面试150】——1两数之和

博客昵称:沈小农学编程 作者简介:一名在读硕士,定期更新相关算法面试题,欢迎关注小弟! PS:哈喽!各位CSDN的uu们,我是你的小弟沈小农,希望我的文章能帮助到你。欢迎大家在…

十七:Web内容协商与资源表述

在现代Web架构中,随着用户设备、语言和网络环境的多样化,如何高效地传递和获取适合的内容变得尤为重要。Web内容协商(Content Negotiation)和资源表述(Representation of Resources)是解决这一问题的重要技术手段。它们帮助服务器根据客户端的需求动态提供最合适的资源,…

Cesium教程03_加载b3dm高度

使用 Vue3 和 Cesium 构建三维地球场景并实现高度调整功能 引言 在现代 Web GIS(地理信息系统)开发中,Cesium 是一款功能强大的三维地球可视化工具。本文展示了如何使用 Vue3 与 Cesium 集成,实现一个支持调整高度功能的三维地球…

力扣刷题--21.合并两个有序链表

I am the best !!! 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2…

音频档案批量拷贝:专业SD拷贝机解决方案

批量音频档案拷贝最佳方案:解决播放错误与拷贝不完全问题 在现今数字化生产需求越来越高的时代,专业的拷贝机为大量数据复制提供了高效、安全的解决方案,特别是在批量拷贝音频档案至MicroSD卡并应用于播放器时,拷贝机具有无与伦比…

Python + 深度学习从 0 到 1(00 / 99)

希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! ⭐ 什么是深度学习? 人工智能、机器学习与…