【化神系列】 了解JDK

简介: Java入门第一步

一、Java编译过程

Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译,编译后生成的.class文件是由字节码组成的与平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件,此时 JVM 会将字节码转换成平台能够理解的形式来运行。

image-20220725230357404

Java的编译和运行离不开JDK,JDK除了提供必要的运行环境外,最主要的工具就是编译和运行,那么JDK中JVM、JRE三者的关系如何?

二、JDK/JVM/JRE关系

✅ 什么是JVM?

JVM是一种用软件模拟出来的计算机,用于执行JAVA程序,有一套严格的技术规范,是JAVA跨平台特性的依赖基础,JAVA虚拟机有自己想象的硬件,如:处理器、堆栈、寄存器等,还有相应的指令系统。JAVA虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

✅ JDK中JVM、JRE三者的关系如何?

JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译
器javac与自带的调试工具Jconsole、jstack等。

JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程
序运行的所需环境。
JVM:Java虚拟机,运行Java代码

三者之间关系:

JDK是Java开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列编译,运行等工具,如javac 、Java 、Javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM及JavaSE核心类库

image-20220725231743079

什么是字节码?采用字节码的好处是什么?

答: 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。

​ 所以, Java 程序运行时相对来说还是高效的(不过,和 C++,Rust,Go 等语言还是有一定差距的),而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行,即java的跨平台性。

Java和C++在编译和运行上有什么区别?

答:对于C/C++源文件,此类语言都是把源码直接编译成计算机可以认识的机器码,如.exe.dll之类的文件,然后再运行。

​ 对于Java源文件,需要用javac命令把源文件编译成class文件(字节码文件),这些字节码文件需要放在JVM(Java虚拟机)下运行,而JVM有多个平台版本,因此Java具有跨平台性,而C++没有。

202207252342153.png

三、JDK环境变量的配置

  • 1)找到系统变量,新建一个。变量名JAVA_HOME(代表你的JDK安装路径),值对应的是你的JDK的安装路径

image-20220728093639140

  • 2)继续在系统变量里面新建一个CLASSPATH变量,其变量值如下图所示(此处需要注意:最前面有一个英文状态下的小圆点):
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

image-20220728093337917

  • 3)在你的系统变量里面找一个变量名是PATH的变量,需要在它的值域里面追加一段如下的代码:
%JAVA_HOME%\bin;   %JAVA_HOME%\jre\bin;

image-20220728094232291

  • 最后点击确定,此时JDK的环境变量配置就完成了。

验证:WINDOWS+R键,输入cmd,进入命令行界面,输入java -version命令,可以出现如下图的提示,你可以看你安装的JDK版本,若如图所示 显示版本信息 则说明安装和配置成功。

image-20220728094339709

注意:如果使用过程当中JDK的路径发生了变化,一定要去重新修改环境变量
✅环境变量CLASSPATH和PATH 的作用是什么?
  • CLASSPATH环境变量保存的是一些目录和jar文件的地址,这些路径是为JAVA程序在编译和搜索类而使用的,也就是为JAVA程序所依赖的接口类指定一个搜索路径。
  • 将%JAVA_HOME%\bin添加到PATH路径, 我们则可以在任何路径下直接用java来执行命令了,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行。
相关文章
|
2天前
|
数据采集 人工智能 安全
|
11天前
|
云安全 监控 安全
|
3天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1020 151
|
3天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1716 9
|
8天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
658 152
|
10天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
622 12
|
10天前
|
人工智能 自然语言处理 API
Next AI Draw.io:当AI遇见Draw.io图表绘制
Next AI Draw.io 是一款融合AI与图表绘制的开源工具,基于Next.js实现,支持自然语言生成架构图、流程图等专业图表。集成多款主流大模型,提供智能绘图、图像识别优化、版本管理等功能,部署简单,安全可控,助力技术文档与系统设计高效创作。
693 151