首页 > 编程语言 >## JavaSE核心技术

## JavaSE核心技术

时间:2024-07-25 18:31:09浏览次数:12  
标签:Java 字节 JDK ## 核心技术 跨平台 JVM java JavaSE

JavaSE核心技术

Java的初识

JDK,JRE和JVM

1.简介

  • JDK(Java Development Kit)

    定义:全称Java Development Kit,是Java语言的软件开发工具包,它提供了Java的开发环境和运行环境。

    内容:包括Java运行环境(JRE)、Java工具(如javac编译器、java运行命令等)和Java基础类库。

  • JRE(Java Runtime Environment)

    定义:全称Java Runtime Environment,是Java的运行环境,提供了在计算机上运行Java应用程序所需的最小环境。

    内容:包括Java虚拟机(JVM)、Java平台核心类库和支持文件。

  • JVM(Java Virtual Machine)

    定义:全称Java Virtual Machine,是Java虚拟机的缩写,是一个虚构出来的计算机,用于执行Java字节码。

    内容:包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。

2.区别

  • JDK:主要用于Java程序的开发,提供了从编写、编译到运行Java程序所需的一切工具和环境。

  • JRE:用于运行Java程序,提供了Java程序运行时的必要环境,包括JVM和Java核心类库。

  • JVM:是Java程序运行的核心,负责将Java字节码转换为机器码并执行,实现了Java的跨平台特性。

3.联系

  • 包含关系:JDK包含了JRE,而JRE又包含了JVM。这种关系可以表示为JDK > JRE > JVM。
  • 功能互补:JDK提供了完整的Java开发环境,包括开发工具和运行环境;JRE提供了Java程序运行时的必要环境;JVM则是Java程序运行的核心,负责将Java字节码转换为机器码并执行。这三者共同构成了Java程序的开发、运行和执行的完整体系。
  • 跨平台特性:JVM是Java跨平台的核心,通过JVM,Java程序可以在不同的操作系统上运行而无需修改源代码。这种跨平台特性是Java语言的重要优势之一。

JDK的安装配置

安装

  • 建议:安装路径不要有中文或者空格等特殊符号。

安装步骤:

  • 双击jdk-8_windows-x64_bin.exe文件,并单击下一步。

  • 修改安装路径,自定义。

  • 将安装路径修改为D:\develop_tools\jdk\jdk-版本号\,并单击下一步。

  • 稍后几秒,安装完成。

配置环境变量
  • 打开系统属性:在Windows中,右键点击“此电脑”或“计算机”,选择“属性”,然后点击“高级系统设置”,再点击“环境变量”。
  • 配置JAVA_HOME在:“系统变量”区域,点击“新建”按钮。变量名填写JAVA_HOME,变量值填写JDK的安装路径(例如C:\Program Files\Java\jdk-11.0.13)。
  • 配置PATH:找到名为Path的系统变量,点击“编辑”按钮。在变量值的末尾添加%JAVA_HOME%\bin(注意前面要有分号分隔符)。
  • 保存并退出:点击“确定”按钮保存更改,并关闭所有打开的对话框。
验证安装
  • 打开命令提示符(CMD),输入java -versionjavac -version命令,如果安装成功,将显示Java和Java编译器的版本信息。

Java编译和运行的命令

编译命令

编译命令javac

  • 功能:将Java源文件(.java文件)编译成Java字节码文件(.class文件)。

  • 用法:在命令行中,进入包含Java源文件的目录,然后输入javac 文件名.java。例如,如果有一个名为Demo.java的源文件,则编译命令为javac Demo.java

    注意事项

  • 确保JDK已经正确安装,并且javac命令在系统的PATH环境变量中。

  • 编译时,如果源文件中有语法错误,javac会报错,并指出错误的位置。

  • 编译成功后,会在同一目录下生成相应的.class文件。

运行命令

运行命令java

  • 功能:运行Java字节码文件(.class文件),由Java虚拟机(JVM)对字节码进行解释和执行。

  • 用法:在命令行中,进入包含.class文件的目录,然后输入java 类名(注意不带.class后缀)。例如,如果有一个名为Demo的类(即Demo.class文件),则运行命令为java Demo

    注意事项

  • 确保JDK已经正确安装,并且java命令在系统的PATH环境变量中。

  • 运行时,JVM会在当前目录的上一级目录(即类路径)中查找类文件,如果找不到,会报错。

  • 如果需要指定类路径,可以使用-cp-classpath选项,后跟类路径的值。

总结

JDK的编译和运行命令是Java开发中的基础命令,掌握它们对于进行Java编程至关重要。编译命令javac用于将Java源文件编译成字节码文件,而运行命令java则用于执行这些字节码文件。在使用这些命令时,需要注意JDK的安装和配置,以及命令的语法和用法。

Java跨平台原理

1. 编译成中间代码(字节码)

  • 编译过程:Java源代码(.java文件)首先被编译成中间代码,即字节码(.class文件)。这一过程是通过Java编译器(javac)完成的。
  • 平台无关性:字节码是一种与特定平台无关的代码,它既不是针对任何特定硬件的机器码,也不是依赖于任何操作系统的代码。因此,字节码可以在任何安装了Java虚拟机(JVM)的系统上执行。

2. Java虚拟机(JVM)

  • 定义与功能:JVM是一个可以执行Java字节码的虚拟计算机。它模拟了各种计算机功能,使得Java程序能够在不同平台上运行而无需修改源代码。
  • 平台特定实现:虽然JVM本身是一个规范,但每个操作系统都有对应的JVM实现。这些实现将字节码转换为特定平台的机器码,从而实现了Java程序的跨平台运行。
  • 性能优化:JVM还包含了即时编译器(JIT),它可以将频繁执行的字节码编译成本地机器码,以提高程序的执行效率。

3. 丰富的标准库和API

  • 标准库:Java提供了一个丰富的标准库,这些库是用Java编写的,对所有平台都是相同的。这意味着Java程序可以利用这些标准库来进行文件操作、网络通信等,而不必担心底层操作系统的差异。
  • 抽象操作系统接口:Java还提供了一套抽象的接口来代表底层操作系统的功能,这样Java程序就可以通过这些接口与操作系统交互,而不需要直接与操作系统打交道。

4. 跨平台性带来的优势

  • 灵活性:Java程序只需要编译一次,就可以在任何支持JVM的操作系统上运行,这大大提高了开发效率和灵活性。
  • 广泛应用:由于Java的跨平台性,它被广泛用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序以及企业级应用程序等。

5. 注意事项

  • JVM的特定性:虽然Java程序本身是跨平台的,但JVM并不是。不同的操作系统需要安装对应版本的JVM才能运行Java程序。
  • 性能差异:开发者需要考虑到不同平台上可能存在的性能差异,以及确保使用的第三方库和工具也是跨平台的。

标签:Java,字节,JDK,##,核心技术,跨平台,JVM,java,JavaSE
From: https://www.cnblogs.com/ctikun/p/18323875

相关文章

  • Java筛选数据:List的contains和Map的get哪个快?
    在Java中,List的contains方法和Map的get方法在性能上有一些区别,主要取决于数据结构的特性和使用场景:List的contains方法:List是一个有序集合,使用线性查找来确定列表中是否包含某个元素。时间复杂度为O(n),其中n是列表的大小。对于小型的List或者在列表中的......
  • JDK,JRE,JVM
    目录JDK,JRE,JVMJDK:JavaDevelopmentKitJRE:JavaRuntimeEnvironmentJVM:JavaVirtualMachineJDK、JRE和JVM之间的关系JDK、JRE和JVM的区别JDK,JRE,JVMJDK:JavaDevelopmentKitJDK(JavaDevelopmentKit)是整个JAVA的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一堆......
  • 2024年CRM系统选型:9款最强推荐
    文章介绍的工具有:纷享销客、ZohoCRM、八百客、红圈通、简道云、简信CRM、Salesforce、HubSpotCRM、Apptivo。在选择合适的CRM系统时,许多企业面临着功能繁多、选择困难的痛点。对于中小企业来说,找到一个既能提高客户关系管理效率,又能适应业务扩展的CRM系统尤为重要。本文将介......
  • 从DDPM到DDIM(三) DDPM的训练与推理
    从DDPM到DDIM(三)DDPM的训练与推理前情回顾首先还是回顾一下之前讨论的成果。扩散模型的结构和各个概率模型的意义。下图展示了DDPM的双向马尔可夫模型。其中\(\mathbf{x}_T\)代表纯高斯噪声,\(\mathbf{x}_t,0<t<T\)代表中间的隐变量,\(\mathbf{x}_0\)代表生成的图像......
  • 2. Redis数据类型
    Redis主要支持一下几种数据类型:string(字符串):基本的数据存储单元,可以存储字符串、整数或者浮点数hash(哈希):一个键值对集合,可以存储多个字段。list(列表):可以存储一系列的字符串元素。set(集合):一个无序集合,可以存储不重复的字符串元素。zset(有序集合):每个元素都有一个分数与之关联,类......
  • 2024企业网站源码|网站后台管理系统 带搭建教程
    在网站搭建前需要考虑的问题了解完网站的搭建基本流程后,我们需要知道,网站该怎么设计,怎么搭建?在建站的时候需要从哪些方面考虑?网站的需求,是用来干什么的,比如:展示产品、品牌宣传、营销推广等;打算用什么方式建站,外包公司还是SaaS产品甚至是自己开发;网站内容,标准的企业网站需要包......
  • Meta发布开源人工智能模型Llama 3.1
    早在今年4月,Meta就透露说,它正在开发人工智能行业的第一款产品:一个性能与OpenAI等公司最好的私有模型相媲美的开源模型。今天,该大模型已经问世。Meta发布Llama3.1,这是有史以来最大的开源人工智能模型。Meta声称,Llama3.1在几个基准测试上的表现优于gpt-4o和Anthropic的Cl......
  • c++学习笔记(五)
    目录文件操作文本文件写文件include读文件include二进制文件写文件读文件文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化c++中对文件操作需要包含头文件文件类型分为两种:文本文件-文件以文本的ASCII码形式存储在计算......
  • 【经典问题】精析:一文搞懂 动态规划解决 0-1背包问题
    背包问题核心元素:数量为n的物品,容量为size的背包,给出每个物品的重量weight和价值val,求背包能装的物品最大总价值。求解思路的本质:从小体量(少物品,少容量)的问题开始,不断求出局部最优解,然后以此为基础放大问题(求得较多物品,较大容量下最优解)重复上述过程,直到求出题目要求的最优......
  • MFC制作MQTT(EMQX)客户端 - 约定、依赖文件放置(附源码)
    前言全局说明MFC制作MQTT客户端(附源码)一、说明环境:Windows7旗舰版VisualStudio2013CMakeversion3.19.8paho.mqtt.cV1.3.13二、说明、约定:说明:因为MFC调用paho.mqtt.c的API所以,要把编译出来的相关文件,放到MFC的工程中,方便调用约定:为了方便后续描......