Java教程01-Java语言运行原理

news/2024/11/29 5:41:12/

阅读原文

一、环境运行

Java语言运行环境分为硬件环境和软件环境。

1、硬件环境

硬件环境通常是指我们的操作系统,主要有:Windows、Linux、Unix等,一般Window和Unix作为我们的开发硬件环境而Linux作为生产实施硬件环境。

2、软件环境

对于Java语言来说软件环境是指JRE(Java Runtime Environment),它是Java运行的环境集合,包含了JVM的标准实现以及Java的核心类库。JVM(Java Virtual Machine),Java虚拟机,是实现Java跨平台性的重要组件,也是Java语言运行的软件环境基础。

二、什么是JDK?

JDK(Java Development Kit),Java开发工具,它是Java的核心,包括了JRE、Java工具和Java基本类库。
那么通过以上所述,就可以知道JDK、JRE、JVM三者之间的关系了,如下图:
在这里插入图片描述

三、安装JDK(以Jdk1.8版本为例)

下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载:
在这里插入图片描述
下载成功的包:
在这里插入图片描述
文件名解释:
jdk-8u131:jdk版本
Windows:操作系统,也就是所谓的硬件环境
x64:操作系统位数,Windows操作系统在计算机属性中查看;Linux操作系统使用命令(file /sbin/init)查看。
安装JDK:
安装时如果不想指定盘符和文件夹时,只需默认安装即可,如果想要指定文件时,需要注意父子文件夹最好为英文,否则会出现无法预测的问题。安装过程非常简单这里就不做介绍了,但是需要说明一点,在安装完JDK后,它会提示我们安装公共JRE,公共JRE是一个独立的JRE系统,会单独进行安装,公共JRE会向IE等浏览器和和操作系统中注册Java运行时环境。通过这种方式,系统中的任何应用程序都可以使用公共JRE。由于现在在网页上执行Applet(网页端小程序)的机会越来越少,所以可以无需安装公共的JRE,直接使用JDK目录下的JRE即可。
安装成功后目录:
在这里插入图片描述
JDK目录介绍:
bin:主要存放JDK的各种工具命令,例如javac,java等等。
db:Java自带数据库的安装路径。
include:存放的是C相关的一些头文件,主要用于Java调用C或者C++程序。
jre:存放的是与Java运行环境相关的文件。
lib:存放的是JDK工具命令执行的相关程序。
src:存放的是Java所有核心类库的源代码。
主要目录就以上6个,其他的就不做介绍了。

四、Java环境变量配置

1、在Windows上配置Java环境变量

配置JAVA_HOME:值为Jdk的安装目录
第一步:
在这里插入图片描述
第二步:
在这里插入图片描述
第三步:
在这里插入图片描述
第四步:
在这里插入图片描述
到此JAVA_HOME就配置完成了。
配置path:值为%JAVA_HOME%\bin;
第五步:
在这里插入图片描述
第六步:
在这里插入图片描述
至此在windows上的Java环境变量配置完成。
第七步:在cmd窗口下使用java -version 命令验证
调用cmd窗口快捷键:windows键 + R键,输入cmd即可。
在这里插入图片描述
第八步:执行java -version命令
在这里插入图片描述

2、在Linux上配置Java环境变量

第一步:上传jdk包并解压
上传路径(个人习惯):/home/java/
解压路径(个人习惯):/home/java/
解压命令:tar -zxvf 包名称
在这里插入图片描述
第二步:配置环境变量
编辑环境变量配置文件命令:vi /etc/profile
JAVA_HOME=/home/java/jdk1.8.0_221 #jdk解压路径
CLASSPATH=$JAVA_HOME/lib/ #jdk命令程序路径,Windows也可以配置。
PATH=$PATH:$JAVA_HOME/bin #配置path
export PATH JAVA_HOME CLASSPATH #导入三个变量
退出编辑命令:esc键
保存退出命令::qw
在这里插入图片描述
第三步:激活环境变量
命令:source /etc/profile
第四步:检查环境变量是否配置成功
命令:echo $JAVA_HOME echo $PATH
在这里插入图片描述
至此,在Linux上的Java环境变量配置完成。

五、JAVA_HOME、PATH、CLASSPATH变量的作用

JAVA_HOME:配置的是JDK的安装路径,可以不配置,但是为了方便的更换JDK版本,以及为了Tomcat、Eclipse等软件配置JDK时更加的方便,建议还是需要配置它。
PATH:操作系统通过PATH环境变量来查找命令,PATH配置的是一系列的路径,在操作系统中运行命令时,操作系统会在PATH配置的路径中搜索用户输入的命令,如果找到了,则执行,否则将提示“不是系统内部或外部命令,也不是可运行的程序或批处理文件”。例如,Java中的java -version、java、javac等命令,都是通过path来执行的。
CLASSPATH:可配可不配,它的主要作用就是配置*.class文件的存放路径,一般用来加载第三方类库,如果不配置默认从当前路径下搜索*.class文件,如果配置则根据配置的路径进行搜索,需要注意的是如果想要配置CLASSPATH也想让其从当前路径进行搜索*.class文件,则必须在路径中配置(.),最基础的配置如下:

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

当然我们也可以定义自己的路径,只需用分号隔开继续追加即可。

六、Java运行原理

Java是一种特殊的高级语言,它既具有解释性语言的特性,也具有编译性语言的特征,废话不多说,先看运行原理图:
在这里插入图片描述
1、Java源代码也就是*.java文件通过javac命令编译成*.class文件,也就是Java源代码对应的字节码文件,我们在使用ide开发的时候并没有执行javac命令,为什么程序还是正常执行呢?其实在我们使用ide开发的时候当我们保存当前文件或者鼠标离开当前文件时,聪明的ide已经帮我们执行javac命令,进而生成了我们运行时所需的Java字节码文件。
2、当我们需要运行某个程序时,这个程序可能需要一个或者多个Java字节码文件,这些文件包括我们自己开发的也包括Java自身的类库。当我们的程序使用到某个类时,JVM会确保这个类已经被加载、连接(验证、准备和解析)和初始化,类文件(*.class)的加载是由类加载器完成的,Java的类加载器分为三种:
Boostrap(根加载器):一般用本地代码实现,也就是带native关键字的代码,负责加载JVM基础核心类库(rt.jar)。
Extension(扩展加载器):从系统属性java.ext.dirs指定的目录中加载类库,它的父加载器是Bootstrap。
System(系统加载器):又叫应用类加载器,其父类是Extension。它是应用最广泛的类加载器,它从环境变量classpath或者系统属性java.class.path所指定的目录中加载类文件,是用户自定义加载器的默认父加载器。
3、JVM逐行的将字节码通过解释器和即时编译器转为机器码,并通过运行期系统提供的本地方法将机器码发送给操作系统进由CPU执行。
以上就是Java语言的工作原理,关于JVM的运行原理及优化又是一门非常有挑战性的学科,需要我们继续去深究。

更多最新技术文章,请关注“冰点IT”公众号


http://www.ppmy.cn/news/726163.html

相关文章

分析入手新项目后前后端的接口调用位置以及sql情况

文章目录 查看前端查看后端sql分析数据库分析作者的话 查看前端 比如我们的userList的一个功能,我们刷新页面后会发现当前页面有很多请求,我们根据请求header和param来分析,当前的“用户列表”接口是哪个请求, 我们填入一个参数…

【PC工具】更新免费文库文档下载器,免费下载文库文档,冰点下载器

节省大家时间先发总结: 今天更新的是亲测能用的冰点下载器 大圣文库就不用试了,收费的,目测事前能用是推广域名加365或vvv的方法好像不好用了 总结:用今天更新的冰点文库 版本:v3.2.11 测试时间:200318 …

rabbitMq怎么查看队列消息-Tracing日志

Trace 是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试、排错。 1、启动Tracing插件 在RabbitMQ中默认是关闭的,需手动开启。此处rabbitMQ是使用docker部署的 ## 进入rabbitMq中 docker exec -it rabbitmq1 bash ## 启动日志插件 rabb…

Matlab可调用MODTRAN5封装器之Mod5

目录 Mod5介绍安装Mod5Mod5文件位置注意事项 运行Mod5创建实例设置MODTRAN参数运行MODTRAN子实例结果绘制示例图 Mod5介绍 MODTRAN 是一个计算地球大气中电磁辐射传输的软件代码。MODTRAN是通过使用具有严格格式的输入文本文件来控制的。这个文件被称为“tape5”,扩…

lut预设安装:LUTs预设如何导入pr?lut预设导入Premiere Pro教程

pr mac版是适用于电影、电视和Web的领先视频编辑软件。相信很多小伙伴都喜欢用它来创造独特的视频,那么今天小编就来和大家分享lut预设导入Premiere Pro CC教程,想要学习的用户赶紧看看哦! LUTs预设如何导入pr? 打开pr软件,如图…

Pr调色预设怎么安装?.cube格式luts预设如何导入pr?Premiere导入LUTs预设详细教程

Adobe Premiere Pro CC是适用于电影、电视和Web的领先视频编辑软件。相信很多小伙伴都喜欢用它来创造独特的视频,那么怎样才可以快速的导入luts预设呢?今天小编就来和大家分享lut预设导入pr2019 mac版的具体教程! 原文来自: PR模…

旅行摄影LR调色预设(含lr预设导入教程)

小编与大家分享一套专业的旅行摄影LR调色预设,包含40 Lightroom预设和40个ACR预设,每个预设都经过精心设计,完全可调和可定制,适用于RAW和JPEG图像,兼容Mac和Windows系统,只需点击一下即可获得您想要的惊人…

LR导出预设

设置两个选择原片和1000像素的类别