首页 > 编程语言 >java初识

java初识

时间:2024-07-25 17:09:52浏览次数:11  
标签:文件 JRE Java JAR 初识 JVM java 运行

JAVA初识

1.JDK,JRE和JVM

1.1 JDK(Java Development Kit,Java开发工具包)

Java开发工具包。顾名思义,JDK是用于Java开发的一套工具包,里面包含了Java的编译器javac、Java程序打包工具jar、Java程序运行环境JRE、文档生成工具javadoc以及很多用于开发的工具,如调试工具jdb等。

1.2 JRE(Java Runtime Environment,Java运行环境)

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

1.3 JVM(Java Virtual Machine,Java虚拟机)

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

1.4 关系

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

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

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

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

1.5区别

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

2.JDK的安装配置

下载,安装

配置环境

配置系统变量 变量名一般用JAVA_HOME 变量值为jdk路径

在Path系统变量中添加%JAVA_HOME%\bin 和%JAVA_HOME%\jre\bin

完成后再命令提示符界面输入javac验证即可

3.Java编译和运行的命令

3.1 编译Java源代码

使用javac命令可以将Java源代码文件编译成字节码文件(.class文件)。

  • 例:javac HelloWorld.java
    将生成HelloWorld.class文件
3.2 运行Java程序

使用java命令可以运行Java程序。

  • 例java HelloWorld
    将执行HelloWorld类的main方法,并显示输出
3.3 显示Java版本信息

查看安装的Java版本信息,可以使用java -version命令

3.4 查看Java系统属性

使用java -D命令可以查看Java虚拟机的系统属性。

例:要查看Java虚拟机的默认编码,可以执行java -Dfile.encoding

3.5 JAR文件操作

Java中的JAR(Java Archive)文件是一种常见的归档文件格式,通常用于打包Java类文件和相关资源。以下是一些与JAR文件有关的常用命令:

  • 创建JAR文件:
jar cvf MyJar.jar *.class
  • 解压JAR文件:
jar xvf MyJar.jar
  • 列出JAR文件内容:
jar tf MyJar.jar
3.6 查看线程和堆栈信息

可以使用以下命令来查看线程和堆栈信息:

  • 查看线程信息:
jps
  • 查看堆栈信息:
jstack <PID>

其中,< PID > 是进程ID,可以使用jps命令获取。

3.7 启动Java Mission Control

ava Mission Control(JMC)是一个用于监视和管理Java应用程序的工具。可以使用以下命令启动它:

jmc

这将打开JMC图形用户界面,允许您监视Java应用程序的性能和行为。

4.Java跨平台原理

ava 的 JAR(Java Archive)文件之所以能够跨平台运行,主要是由于 Java 的设计理念和运行时环境的特点。我们详细解析一下这个过程:

编写一次,处处运行:Java 的设计理念是“Write Once, Run Anywhere”(WORA),即在任何平台上都能运行同一段代码。为了实现这一点,Java 代码在运行之前会被编译成一种叫做字节码(Bytecode)的中间形式。
虚拟机(JVM):Java 字节码不是直接运行在硬件上的,而是在 Java 虚拟机(JVM)上运行的。JVM 是一个可以在各种硬件和操作系统平台上运行的软件,它负责解释和执行字节码。每个平台都有适配该平台的 JVM 实现,这样 Java 程序就可以在不同的平台上无缝运行。
JAR 文件:JAR 文件是一种压缩包,它包含了 Java 应用程序或库所需的类文件(以 .class 形式存在,即编译后的字节码文件)、资源文件和元数据。由于 JAR 文件中的内容是平台无关的字节码,所以它可以在任何安装了兼容的 JVM 的平台上运行。
标准库:Java 还提供了一套丰富的标准库(Standard Libraries),这些库在不同的平台上提供了一致的接口和实现。这意味着开发者可以使用这些标准库来编写应用程序,而不必担心平台的差异。
综上所述,JAR 文件之所以能跨平台运行,是因为 Java 的设计使其程序能够在任何安装了 JVM 的系统上运行,而 JAR 文件正是这种机制的一部分。这种设计极大地简化了软件的开发和部署过程,是 Java 成为流行编程语言的重要原因之一。

标签:文件,JRE,Java,JAR,初识,JVM,java,运行
From: https://www.cnblogs.com/zpjd/p/18323656

相关文章

  • JAVA基础语法
    JAVA基础语法1.关键字和保留字1.1关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型或者表示程序的结构。关键字中所有字母都为小写,目前共计50个(包括2个保留字)。1.2保留字保留字是为Java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关......
  • JAVA反射
    JAVA反射一、什么是反射二、反射的应用2.1Class类2.2获取类的成员变量2.3获取成员方法2.4获取构造函数2.5通过反射创建对象2.6通过反射修改属性(常用)2.7通过反射调用方法(常用)三、常见面试题3.1怎么给类中私有属性赋值一、什么是反射反射就是把java类中的各......
  • java跨平台原理
    跨平台是指程序可以在多种平台(MicrosoftWindows、AppleMacintosh和Linux等)上运行,即编写一次,随处运行(WriteOnce,RunAnywhere)。Java语言通过为每个计算机系统提供一个叫做Java虚拟机的环境来实现跨平台。Java虚拟机是可运行Java字节码的虚拟计算机系统。可以将Java虚拟机看成......
  • JavaSE笔记
    目录一、JAVA基础编程二、第一阶段--JAVA基本语法2.1关键字与保留字2.2标识符2.3变量2.4运算符2.5从键盘获取输入Scanner类2.6流程控制结构2.7循环结构番外篇--软件开发流程番外篇--IDEA使用经验IDEA项目结构2.8一维数组数组的特点2.8.1声明与初始化2.8.1.1静态初始化2.......
  • JavaWeb第一天
    目录HTML+CSS+JS学习VUE框架学习Ajax--异步JavaScript和XMLVue项目结构MavenMaven坐标依赖管理传递依赖&排除依赖依赖范围生命周期Web入门springboot快速入门HTTP协议HTTP请求数据格式HTTP响应数据格式Tomcat请求响应1、请求请求参数设置2、响应3、案例4、分层解耦三层架构分层解......
  • JavaWeb第二天
    目录tlias案例实践登录校验1,Cookie技术——存储在客户端2,Session技术——存储在服务端3,令牌Token技术JWT(JSONWebToken)令牌4,过滤器Filter定义过滤器Filter拦截路径过滤器链5、拦截器interceptor6、全局异常处理器7、Spring事务管理事务进阶——事务属性AOP——面向切面编......
  • java处理超大文件面试题
    java海量大文件数据处理方式 1.给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。s遍历文......
  • 基于JSP、java、Tomcat三者的项目实战--校园交易网(1)-项目搭建(前期准备工作)
    这是项目的初始页面接下来我先写下我的初始项目搭建技术支持:JAVA、JSP服务器:TOMCAT7.0.86编程软件:IntelliJIDEA2021.1.3x64首先我们打开页面,准备搭建项目的初始准备1.NewProject2.随后点击Next,勾选Createprojectfromtemplate,再点击Next3.给自己的项目命名......
  • 【YashanDB数据库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIE
    问题现象客户的java日志中有如下异常信息:问题的风险及影响对正常的业务流程无影响,但是影响druid的mergesql功能(此功能会将sql语句中的字面量替换为绑定变量,然后将替换以后的sql视为同一个,然后用做执行性能统计)问题影响的版本与yashandb版本无关问题发生原因druid源码中在......
  • Java基础语法
    Java基础语法目录Java基础语法1.关键字和保留字关键字(Keywords)保留字(ReservedWords)2.标识符2.1.命名规则1.标识符的组成2.标识符的首字符3.标识符的命名限制4.命名风格5.其他建议6.示例2.2.驼峰命名法大驼峰命名法(UpperCamelCase)小驼峰命名法(lowerCamelCase)注意事项2.3.变......