Java程序运行原理

    xiaoxiao2021-04-15  305

    初识Java语言

    Java语言是一种先编译后解释型的语言。 是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。   Java语言是强制面向对象的、分布式的、Java语言是可移植的,在后面我们会详细提及这种可移植特性。

    Java代码的运行

    在编写Java程序之前我们当然要进行对于JDE和JRE等程序环境的配置。  Java环境变量配置: 1.JAVA_HOME变量的设置 2.Path变量的设置 3.Classpath变量的设置 (java1.5版本之后可不需要设置classpath) 当然,在此之前,需要我们下载JAVA开发工具包JDK  1【如图】百度搜索‘jdk’,进入第一条下载地址    2【如图】在downloads中选择JAVA DOWNLOAD进入Java下载列表  3【如图】点选Accept License Agreement,选择Windows这一栏下载安装包    4下载好之后,进入文件夹,双击应用程序根据提示进行安装,直至安装完成。    5【如图】测试jdk是否安装成功,可在【开始】中搜索cmd,输入【java -version】。  

    JAVA_HOME变量设置

    1首先右击【计算机】进入【属性】然后选择其中的【高级系统设置】。 2点击进入【高级】中的【环境变量】,进入环境变量编辑界面。

    在下方的【系统变量】中,并不存在JAVA_HOME变量,那么我们需要点击【新建】 变量名输入:JAVA_HOME变量值指的是实际的安装路径(比如为:C:\Program Files\Java\jdk-9)。最后点击确定。

    Path变量设置

    1同样是在【系统变量中】我们可以看到path变量已经存在,那么我们只需要点击【编辑】,进入path变量的编辑 2变量名不变,变量值改为【%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;】,最后点击确定。

    JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并且都打包成了jar。

    至于在Windows上的虚拟机是哪个文件呢?就是<JRE安装目录>/bin/client中的jvm.dll。Jdk是Java Development Kit的缩写,顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。 配置好之后我们需要编写一个Java的源代码

    public class HelloWorld{ public static void main(String [] args){ System.out.println("HelloWorld"); } }

    下面我们将详细说明运行Java代码的流程 第一步:Windows+R调出命令运行窗口 第二步:在命令行输入cmd然后按下回车键即可进入命令提示窗口 第三步:跳转到Java文件所在位置然后对java.HelloWorld进行运行,此时会出现一个HelloWorld.class的格式的新文件,这与我们之前C语言中的exe文件格式类似,为源代码的文本格式。

    现在我们来揭示Java运行的原理

    其实在Java中使用到了虚拟机的概念,即是在电脑主机与编译运行程序之间的一个虚拟“桥梁”,类似于一种抽象的模拟机器。这种虚拟机可以面向跨平台的操作,针对不同操作系统进行Java代码的实现运行。这使得众多的编译系统只需要面向虚拟机便可以进行操作,虚拟机可以理解代码表达的含义,并交由翻译系统进行翻译变成计算机语言,编译之后形成字节码再交由解释器生成机器的语言进而及其来实现执行的功能。这就是我们所说的Java语言具有跨平台性,它的class文件可以进行拷贝到任何系统,只要系统有相应的共同的翻译器便可将代码翻译并予以实现。其跨平台实现功能如下图: Java语言实现的流程大致为源程序(*java 文件)(通过编译器)→字节码(*class文件)→类装载器→字节码校验器→解释器→操作平台其中不同于其他语言重要的环节即为“解释器”,所以拿与C语言作比较来说,C语言运行速度较Java要快一些。其实现流程如下图: 由此我们便可以清晰地了解Java语言运行的真实过程及其工作原理。


    最新回复(0)