首页 > 编程语言 >Java SE 核心技术——java初识

Java SE 核心技术——java初识

时间:2024-07-25 20:07:54浏览次数:20  
标签:JRE Java JDK 编译 运行 JVM java SE

一、JDK、JRE和JVM

1.JDK、JRE和JVM定义

  • JDK

​ 即Java开发工具包。JDK是用于Java开发的一套工具包,里面包含了Java的编译器javac、Java程序打包工具jar、Java程序运行环境JRE、文档生成工具javadoc以及很多用于开发的工具。

  • JRE

​ JRE是运行Java程序所需的环境,包括JVM以及Java类库等。JRE是Java程序运行的实施场所,同时也提供了运行Java程序所必需的库文件。

  • JVM

​ 即Java虚拟机。JVM是Java运行环境的核心,它负责Java程序的运行。JVM是一个虚拟的计算机,它接收到字节码(编译后的Java程序),然后解释或编译执行。

2.JDK、JRE和JVM之间的关系

​ 可理解为JDK > JRE > JVM。

​ JDK是最大的,它包含JRE,而JRE又包含JVM。

​ JDK是为了满足Java开发人员的需要而创建的,其中包含开发工具和JRE。因此,需要编写Java程序,就需要JDK。

​ JRE是为了运行那些已经编写好的Java程序而创建的,JRE中包含有JVM和Java类库,但是并不包含其他开发工具,因此,如果只需要运行Java程序,只需要JRE就可以了。

​ JVM就像一个桥梁,它负责将编写的Java代码(人类可以理解的)转化为机器可以运行的机器代码。

3.JDK、JRE和JVM之间的区别

  • JDK是开发工具,它让程序员编写Java程序。
  • JRE是运行环境,它让编写好的Java程序可以被运行。
  • JVM则是JRE的一部分,位于程序执行的最前沿,将字节码转化为机器代码。

二、JDK安装与配置

安装和配置JDK(Java Development Kit)是进行Java开发的第一步。以下是安装和配置JDK的基本步骤:

1.下载JDK
首先,访问Oracle官网或者OpenJDK官网,下载适合你操作系统的JDK安装包。

2.安装JDK、

Windows: 双击下载的安装程序,按照安装向导进行安装

3.配置环境变量
为了在命令行中能够方便地使用Java和Javac命令,你需要配置JDK的环境变量。

Windows:

右键点击"此电脑"或"计算机",选择"属性"。
点击"高级系统设置"。
点击"环境变量"。
在系统变量中,新建一个变量JAVA_HOME,将其值设置为JDK的安装路径,如 C:\Program Files\Java\jdk1.8.0_261。
编辑系统变量"Path",在结尾处加上;%JAVA_HOME%\bin;。

4.打开命令行,输入以下命令来验证JDK是否正确安装:bash
java -version
如果显示了JDK的版本信息,则说明安装成功。通过这些步骤,你应该可以成功安装和配置JDK,开始进行Java开发了。

三、编译和运行的CMD命令

1.打开cmd,进入源文件所在的文件夹

按下Win+R打开CMD

2.编译CMD命令

输入“javac 源文件名.java”命令,按Enter键,开启Java编译器并进行编译,编译结束后,会自动生成一个源文件名.class的字节码文件。如果出现“错误: 编码 GBK 的不可映射字符 (0x8D)”,需要在“javac”后面加上-encoding UTF-8

3.运行CMD命令

输入“java 源文件名”命令,按Enter键,启动Java虚拟机运行程序。Java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载,它是由类加载器完成的,然后虚拟机针对加载到内存中的Java类进行解释执行,便可看到运行结果。

四 Java跨平台原理?

Java的运行:
1、编译Java代码生成字节码(.class)文件;不同平台编译的字节码文件是相同的;

2、字节码不能直接运行,必须通过对应的jvm翻译为机器码才能运行

我们编写的Java代码,编译后会生成 .class 文件(字节码文件),(某系统)Java虚拟机负责将字节码文件翻译(转译)成对应系统下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行Java程序。

注意:这里的jvm翻译为解释与编译,jvm再去了解)

在这个过程中,Java程序没有任何改变,仅仅是通过JVM,就能在不同平台上运行,真正实现了“一次编译,到处运行”。

JVM是实现Java程序跨平台的关键。

标签:JRE,Java,JDK,编译,运行,JVM,java,SE
From: https://www.cnblogs.com/zxt102220/p/18324043

相关文章

  • java中的涉及到的cmd命令
    Java中的常见CMD命令在Java中,可以使用以下一些常见的命令行(cmd)命令:java:用于运行Java程序的命令。javac:用于编译Java源代码文件的命令。java-jar:用于创建和管理Java归档文件(JAR文件)的命令javap:用于翻译java字节码文件,可以看到class文件的内部结构不常用的命令:javadoc:用......
  • Java初识
    Java编译和运行的CMD命令1首先在cmd中指定到.Java文件所在文件路径,例D://aaaa2:执行Javac命令,将其编译成.class文件,例hello.java注意添加文件后缀3:路径上生成了以.class结尾的文件,例hello.class,执行java运行命令Java跨平台原理我们写的Java源代码会首先编译生成.class字......
  • JavaScript(数组)
    今天学习了数组,最为重要的就是数组方法,其次就是遍历,这在作业中用的是最多的。学完发现用数组方法完成作业,比用循环写代码量要少很多。作业1:定义一个数组[1,5,6,99,5,66,7,4,1,6,9]去掉数组里面的重复值(两种方法)第二种方法因为set不明白所以打了注释(借鉴了......
  • JavaScript基础
    代码作业1:1.运用所学知识完成加法器a)用户输入第一个数b)用户输入第二个数c)最后以“最终的结果为xx”输出<script>    vara=prompt('number1'),    b=prompt('number2');    varc=Number(a)+Number(b); ......
  • hbase SLF4J报错
    hbaseSLF4J报错HBaseSLF4J错误的解决方法介绍在使用HBase开发过程中,经常会遇到SLF4J报错的情况。SLF4J(SimpleLoggingFacadeforJava)是一个为Java应用程序提供日志记录接口的简单日志门面。本文将介绍如何解决HBase中常见的SLF4J报错问题。解决流程下面是解决HBaseSLF4......
  • JDK、JRE、JVM、JavaSE程序和JavaEE程序的区别
    JDK、JRE、JVM、JavaSE程序和JavaEE程序jvm定义:jvm是JavaVistualMachine的一个缩写。翻译过来是java虚拟机,它是我们java程序编译完后的字节码文件的一个运行平台。jre定义:jre是Javaruntimeenviroment的缩写,jre是在jvm的基础之上,加上一些基础类库,构成jre。jvm只相当......
  • Hadoop(5-1) HBase 提示SLF4J: Class path contains multiple SLF4J bindings.
    Hadoop(5-1)HBase提示SLF4J:ClasspathcontainsmultipleSLF4Jbindings.问题描述在使用hbaseversion命令时,出现下列的警告信息 。SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/usr/local/hadoop-3.3.6/share/hadoop/com......
  • 利用Java调用人脸身份证比对接口
    一、什么是人脸身份证比对接口?人脸身份证比对接口是一种特定的API接口服务,主要用于将提供的人脸图片和对应的身份证照片/号码进行比对,以此验证其身份。这种接口的功能基于复杂的人脸识别技术,一般通过使用人工智能和深度学习算法来实现。它在许多需要实名身份验证的行业中有......
  • 【JavaOOP】3、面向对象的三大特征
    6.面向对象的三大特征6.1封装对当前类中不想让外界直接访问的字段或方法添加private修饰符,同时提供对外的public方法以供外界访问,外界只需要调用此方法即可,不用关系实现细节,这种行为叫“封装”。publicclassPerson{privateintpid;privateStringpnam......
  • python实现ftpServer
    使用python模拟一个fetServer importosimportsocketimportthreadingfrompyftpdlib.authorizersimportDummyAuthorizerfrompyftpdlib.handlersimportFTPHandlerfrompyftpdlib.serversimportFTPServer_source_root=os.path.dirname(os.path.dirname(os.path......