Java入门指南:环境配置

栗筝i
• 阅读 145

在这个日新月异、信息化浸透的时代,编程技术已然成为一项至关重要的技能。Java,这门被广大开发者所采纳的编程语言,凭借其强大的功能和无视平台差异的特性,在业界赫赫有名。无论你是身处计算机专业的学堂,还是对编程怀揣浓厚兴趣的初探者,精通 Java 都将对你的学术研究和职业道路产生深远的影响。

本次 Java 入门指南系列旨在为你展现一个 Java 的基础全景,内容涵盖 Java 的基本语法、数据类型、运算符、控制流程等诸多方面。我们将从最基础的部分出发,深入浅出,助你筑建坚实的 Java 基础。无论你是编程领域的新手,还是已经有所积累的学者,都可以从本文中受益匪浅。

期望通过本文,你能对 Java 有一个全方位的理解,为你的 Java 学习之旅垒砌坚实的基石。让我们共同踏上这个旅程吧!

万事知其然,要知其所以然。在 Java 语言内部也被划分为了不同的 体系、环境和版本,我们本篇就来了解一下,他们之间有怎样的区别,并动手安装和配置不同平台的 Java 环境,并通过实现用例的方式来体会 Java 编译和执行的过程!!!


1、Java体系&环境

1.1、Java三大体系

Java 根据应用范围,可以分为 Java SE、Java EE 和 Java ME 三个体系:

  1. Java SE(Standard Edition):Java 标准版,提供了 Java 的核心功能。它包含了 Java 语言基础库、Java 虚拟机 JVM 和一些基础的工具。Java SE 是其他两个版本的基础,主要用于开发桌面应用和商用应用;

  2. Java EE(Enterprise Edition):Java 企业版,建立在 Java SE 的基础之上,是支持企业级应用的 Java 平台,提供了一套完整的企业级应用解决方案,包括 Web 应用服务器、EJB、Servlet、JSP 等;

  3. Java ME(Micro Edition):Java 微型版,是一个针对移动设备和嵌入式设备的 Java 平台。Java ME 包含了一套轻量级的 API 和一个专为小型设备优化的 JVM,主要用于开发手机、电视、工业控制等嵌入式设备的应用。

1.2、Java三大环境

Java 语言的开发运行,也离不开 Java 语言的运行环境 JRE。没有 JRE 的支持,Java 语言便无法运行。当然,如果还想编译 Java 程序,搞搞小开发的话,JRE 是明显不够了,这时候就需要 JDK。JDK、JRE、Jvm 三者关系如下:

简称 名称 说明
JVM(Java Virtual Machine) Java 虚拟机 整个 Java 实现跨平台的最核心的部分,是 Java 程序的运行环境,负责执行 Java 字节码
JRE(Java Runtime Environment) Java 运行时环境 JRE = Jvm + JavaSE 标准类库,如果只需要运行 Java 程序,那么只需要安装 JRE 即可
JDK(Java Development Kit) Java 开发工具包 JDK = JRE + 开发工具集(例如 Javac 编译工具等),如果需要编写和编译 Java 程序,则需要安装 JDK
1.3、Java两大版本

OpenJDK 是开源的,OracleJDK 是官方的

Java 最早由 Sun 公司发明,2006 年 Sun 公司将 Java开源,此时的 JDK 即为 OpenJDK。OpenJDK 是 Java SE 的开源实现,他由 Sun 和 Java 社区提供支持,2009 年 Oracle 收购了 Sun 公司,自此 Java 的维护方之一的 Sun 也变成了 Oracle。

OpenJDK 和 OracleJDK 是 Java 开发和运行环境的两种实现,它们的主要区别在于许可证和一些特性:

  1. OpenJDK:OpenJDK 是 Java SE 的开源实现,由 Sun 公司和 Java 社区提供支持。OpenJDK 的许可证是 GPL v2,这意味着你可以自由地使用和修改源代码,但如果你分发修改后的版本,必须以同样的许可证开源;

  2. OracleJDK:OracleJDK 是 Oracle 公司基于 OpenJDK 源代码构建的 JDK,它的许可证是 Oracle 二进制代码许可协议。这意味着你可以免费使用 OracleJDK,但如果你想用于商业用途,可能需要付费。

技术上,OracleJDK 和 OpenJDK 没有重大的差异,但 OracleJDK 提供了一些额外的性能优化和商业特性。此外,Oracle 对 OracleJDK 提供商业支持,而 OpenJDK 则主要依赖社区支持。

总的来说,如果你是开发开源项目或者个人使用,OpenJDK 是一个很好的选择。如果你需要商业支持或者 OracleJDK 的特定特性,那么你可能需要选择 OracleJDK。


2、Java安装&配置

2.1、Java下载

Java 官方下载地址:https://www.oracle.com/java/technologies/downloads/

点击上方链接即可跳转到官网下载界面,根据需要选择对应配置进行下载!

Java入门指南:环境配置

2.2、Java安装

对于 Windows 和 Mac 来说,Java 的安装步骤很简单,我们可以选择对应的安装程序(.exe/.dmg)然后根据步骤来进行安装:

  • Mac 系统的默认安装路径为下述地址:
 ~/Library/Java/JavaVirtualMachines/
  • Windows 在安装时注意指定好安装路径即可
  • 对于 Linux 系统来说,下载好二进制安装包后,解压到指定位置即可,例如:
tar -zxvf jdk-8u251-linux-x64.tar.gz
2.3、Java配置

对于 Linux 和 Mac 来说,配置 $JAVA_HOME 环境变量,找到以下三个配置文件中的任意一个:

~/.bash_profile
~/.bashrc
~/.zshrc

添加下面这行代码,之后使用 source 更新即可:

# 以 Java8 举例,其中 "JAVA_HOME=" 后面是 Java JDK 的安装地址
export JAVA_HOME=/Users/liziheng/Library/Java/JavaVirtualMachines/corretto-1.8.0_332
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

对于 windows 系统:

  1. 打开系统设置,点击高级系统设置,打开环境变量以后点击系统变量的新建:新建 JAVA_HOME 变量(单词大写,符合是英文),如果是用默认安装路径可以直接复制使用;

  2. 找到系统变量中的 Path 变量,选中然后点击编辑,然后点击新建,这里都一样,可以直接复制使用:

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
  1. ClassPath 环境变量:点击系统变量新建然后在新建系统变量框里面输入下面内容即可
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
2.4、Java 验证

打开终端,输入 java -version,查看安装版本

Java入门指南:环境配置


3、Java编译&运行

3.1、Java的运行过程

Java 程序的运行必须经过编写、编译和运行 3 个步骤。

  1. 编写:在 Java 开发环境中编写程序代码,形成后缀名为 .java 的 Java 源文件。
  2. 编译:使用 Java 编译器(javac 命令)对源文件进行编译,如果源代码中没有语法错误,编译器会生成后缀名为 .class 的字节码文件。这个字节码文件是跨平台的,可以在任何安装了 Java 运行环境(JRE)的机器上运行。
  3. 运行:使用 Java 解释器(java 命令)对字节码文件进行解释运行,将字节码翻译成机器代码并执行,最后显示运行结果。

这个过程中,Java 的跨平台特性得到了充分体现,即"一次编写,到处运行"。

Java 程序运行流程如图所示:

Java入门指南:环境配置

Java 字节码和 Java 虚拟机(JVM)是实现 Java 跨平台特性的关键。

Java 字节码:Java 字节码是一种中间代码,是 Java 源文件经过 Java 编译器编译后生成的。它是一种二进制文件,既不依赖于具体的硬件环境,也不依赖于具体的操作系统环境。Java 字节码需要由 Java 解释器进行解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。

Java 虚拟机(JVM):JVM 是运行 Java 程序的软件环境,Java 解释器是 JVM 的一部分。JVM 负责将 Java 字节码翻译成具体硬件环境和操作系统平台下的机器代码并执行。这样,Java 程序就可以在任何安装了 JVM 的机器上运行,无需考虑当前的硬件平台和操作系统环境,也无需考虑字节码文件是在何种平台上生成的。

Jvm 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 Jvm 中运行 Java 程序实现的。

3.2、Java编译/解释型语言

Java 是编译型语言还是解释性语言?Java 语言既有编译型语言的特性,也有解释型语言的特性,它结合了两者的优点。

首先,编译型语言的特性:Java 程序需要先被编译成字节码(.class 文件),这个过程是编译过程。编译可以在编程阶段发现和修复一部分错误,提高程序的运行效率。

其次,解释型语言的特性:Java 字节码并不是可以直接运行的机器代码,它需要由 JVM 进行解释执行。这个过程使得 Java 程序具有了跨平台的能力,即"一次编写,到处运行"。

因此,Java 既是编译型语言,也是解释型语言。但由于其跨平台的特性,通常我们更倾向于将 Java 归类为解释型语言。

3.3、Java编译执行Demo

我们可以通过一个简单的 "Hello World" Demo 程序来了解 Java 的编译和执行过程。

首先,我们编写一个简单的 Java 程序:

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

将以上代码保存为 HelloWorld.java 文件。

然后,我们使用 Java 编译器 javac 对源文件进行编译:

javac HelloWorld.java

编译成功后,会在当前目录下生成一个 HelloWorld.class 文件,这就是我们的字节码文件。

最后,我们使用 Java 解释器 java 来运行这个字节码文件:

java HelloWorld

运行成功后,控制台会输出 "Hello, World!",这就是我们的程序运行结果。

以上就是 Java 程序的编译和执行过程,通过这个过程,我们可以看到 Java 程序是如何从源代码变为可以运行的程序的。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java 环境配置 maven 环境配置
1、windows下Java环境的安装和配置:下载jdk并安装配置环境变量:(1)新建JAVA\_HOME环境变量,赋值为JDK的安装目录:(2)新建CLASSPATH环境变量,赋值为.;%JAVA\_HOME%\\lib\\dt.jar;%JAVA\_HOME%\\lib\\tools.jar;(3)在PATH环境变量中追加J
Wesley13 Wesley13
2年前
java环境变量的配置
  刚开始学java时,遇到的第一个坑必定是java环境变量的配置,我整理了一下,将如何配置环境变量分享给大家。  为什么要配环境变量?  java程序在运行的时候,本质上是通过命令行来运行的,我们编写的java程序,首先被编译为class文件,然后将此文件放在java虚拟机中去执行。怎样编译,怎样执行,jdk已经为我们写好了(实际上就是javac
Wesley13 Wesley13
2年前
Visual Studio Code (vscode) 配置 Java 环境
VisualStudioCode(vscode)配置Java环境   最近在学习使用Java,同时使用VSCode也很久了,就想用vscode配置一下开发环境,下面我们开始吧~~~✍✍✍ 主要步骤:  ➤下载安装配置java  ➤配置jav
Wesley13 Wesley13
2年前
Java环境设置JDK为例
环境设置分三步:安装前准备;安装;环境设置及测试。一、安装前准备了解一下需要安装的都是什么:Java是由SunMicrosystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由JamesGosling和同事们共同研发,并在1995年正式推出。且Java包括三个平台版本,分别为JavaSE
Wesley13 Wesley13
2年前
01.Flink笔记
Flink开发环境部署配置Flink是一个以Java及Scala作为开发语言的开源大数据项目,代码开源在github上,并使用maven来编译和构建项目。所需工具:Java、maven、Git。本次操作是在windows环境下。一、工具安装Java配置(略)maven配置1.
Wesley13 Wesley13
2年前
Java入门——在Linux环境下安装JDK并配置环境变量
Java入门——在Linux环境下安装JDK并配置环境变量摘要:本文主要说明在Linux环境下JDK的安装,以及安装完成之后环境变量的配置。使用已下载的压缩包进行安装下载并解压在Java的官网上下载需要的版本:https://www.oracl
Wesley13 Wesley13
2年前
Java 基本功 (基础概念与常识)
主要涉及知识点:JVMJDK和JRE最详细通俗的解答OracleJDK和OpenJDK的对比Java和C的区别?什么是Java程序的主类应用程序和小程序的主类有何不同?Java应用程序与小程序之间有哪些差别?importjava和javax有什么区别?为什么说Java语言“编译与解释并存”?
Wesley13 Wesley13
2年前
Java面试官都爱问的多线程和并发面试题汇总,多刷一题,多份安心!
Java多线程面试问题1、进程和线程之间有什么不同?一个进程是一个独立(selfcontained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进
京东云开发者 京东云开发者
10个月前
万物云原生下的服务进化 | 京东云技术团队
在万物云原生下的环境下,Java的市场份额也因耗资源、启动慢等缺点,导致在云原生环境里被放大而降低,通过这篇文章,读者可以更好地了解如何在云原生环境下通过升级相关版本和使用GraalVM打出原生镜像到方式,优化Java应用的性能和资源利用率,使Java应用更好地适应云原生环境。
京东云开发者 京东云开发者
6个月前
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
栗筝i
栗筝i
Lv1
海到无边天作岸,山登绝顶我为峰。期待更好的自己
文章
2
粉丝
0
获赞
0