news 2026/9/24 7:17:28

【JavaSE】初识 Java

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【JavaSE】初识 Java

1. 了解 Java

Java 是什么

Java 是一门编程语言。我们可以用它编写后端服务、桌面程序、工具软件等。

Java 程序通常不会直接运行源代码,而是分成两步:

Java 源代码(.java) ↓ 编译 Java 字节码(.class) ↓ 交给 JVM 执行 程序运行

Java 的一个重要特点是跨平台。同一份 Java 字节码,通常可以在 Windows、macOS 和 Linux 上运行,前提是系统中安装了合适的 Java 运行环境。

这就是常说的:

一次编译,到处运行。

当然,不同系统的文件路径、字符集等仍然可能存在差异。“跨平台”不代表完全不需要考虑操作系统。

Java 适合做什么

Java 常用于:

  • Web 后端和企业应用
  • 微服务和分布式系统
  • Android 相关开发
  • 大数据相关项目
  • 桌面程序和各种工具

对于初学者来说,学习 Java 还能帮助我们理解变量、流程控制、面向对象、异常处理等常见编程概念。

Java SE 和 Jakarta EE

Java SE

Java SE 是 Java 的标准版,也是学习 Java 的基础。

它包含:

  • Java 基础语法
  • 面向对象
  • 字符串和数组
  • 集合
  • 文件读写
  • 网络编程
  • 多线程等基础功能

我们目前学习的内容属于 Java SE。

Jakarta EE

Jakarta EE 以前叫 Java EE,主要用于开发大型 Web 应用和企业应用。

初学阶段不需要深入了解它。先学好 Java SE,之后再学习 Spring、Spring Boot 或 Jakarta EE 会更容易。

2. Hello World

我使用的是集成开发环境 IDEA。

先创建一个名为HelloWorld.java的文件:

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

运行后会输出:

Hello world!

程序结构

先简单认识这段代码:

public class HelloWorld {

这里声明了一个名为HelloWorld的类。

可以暂时把类理解成程序的一个组成部分。Java 代码通常写在类里面。

public static void main(String[] args) {

这是main方法,也就是程序的入口。运行这个程序时,Java 会从这里开始执行。

现阶段可以先记住它的固定写法,后面学到方法、数组和static时,再分别理解其中每个部分。

System.out.println("Hello world!");

这条语句会把内容输出到控制台。

Java 中的大多数语句以分号;结尾。

类名和文件名

如果一个顶层类使用了public修饰,文件名必须和类名一致,并注意大小写。

例如:

public class HelloWorld { }

文件名必须是:

HelloWorld.java

一个源文件中最多只能有一个public顶层类,但可以有其他不使用public修饰的类:

public class HelloWorld { } class Test { }

初学阶段建议一个源文件只写一个类,这样更容易管理。

main 方法中的 args

args用于接收命令行参数。它只是一个变量名,可以换成其他名字,不过一般都按照习惯写成args

例如:

java HelloWorld Java Study

此时:

args[0] // "Java" args[1] // "Study"

暂时不使用命令行参数也没关系。

IDEA 中的快捷写法

IntelliJ IDEA 提供了一些代码模板:

  • 输入mainpsvm,可以快速生成main方法
  • 输入sout,可以快速生成输出语句

这些是 IDEA 提供的快捷功能,不属于 Java 语法。

不使用 IDE 编译和运行

先检查 JDK 是否已经安装:

java -version javac -version

然后进入HelloWorld.java所在的目录。

编译源文件:

javac HelloWorld.java

如果代码没有错误,当前目录会出现:

HelloWorld.class HelloWorld.java

运行程序:

java HelloWorld

注意,运行时写类名即可,不要写成:

java HelloWorld.class

.java.class

  • .java文件保存我们编写的 Java 源代码
  • .class文件保存编译后得到的 Java 字节码
  • JVM 负责加载和执行字节码

.class文件不是操作系统可以直接运行的程序,它需要交给 JVM 执行。

JDK、JVM 和 JRE

这几个名称很容易混淆,初学阶段可以这样理解:

JDK(Java Development Kit)

JDK 是 Java 开发工具包。编写和运行 Java 程序通常都需要安装它。

JDK 中包含:

  • javac:编译 Java 源文件
  • java:启动 Java 程序
  • 调试、打包等开发工具
  • 运行 Java 程序所需的组件

JVM(Java Virtual Machine)

JVM 是 Java 虚拟机,负责加载和执行.class字节码文件。

Java 能够跨平台,很大程度上是因为不同操作系统都有对应的 JVM。

JRE(Java Runtime Environment)

JRE 是 Java 运行环境,主要用于运行 Java 程序。

过去,JDK 和 JRE 经常作为两个独立概念介绍。现代 Java 通常直接安装 JDK即可,不需要再单独安装 JRE。

可以先简单记成:

JDK:开发和运行 Java 程序 JVM:实际执行 Java 字节码 JRE:运行 Java 程序所需的环境

一个源文件可能生成多个 class 文件

如果一个源文件中有多个类,编译后就可能出现多个.class文件:

public class HelloWorld { } class Test { }

编译后可能得到:

HelloWorld.class Test.class

内部类等语法也可能生成额外的.class文件。因此,一个.java文件不一定只生成一个.class文件。

IDEA 把 class 文件放在哪里

使用 IDEA 运行程序时,它也会先编译代码,只是这个过程由 IDE 自动完成了。

编译结果可能位于:

out/production

如果项目使用 Maven 或 Gradle,也可能位于其他目录。具体位置取决于项目配置。

3. 注释、标识符和关键字

注释

注释是写给人看的说明,编译器通常会忽略它们。

Java 中常见的注释有三种。

行注释

//后面这一行的内容是注释:

// 输出一段文字 System.out.println("Hello");

块注释

块注释可以占用多行:

/* 这里是块注释 可以写多行内容 */

块注释不能互相嵌套。

文档注释

文档注释使用/** ... */,通常写在类、方法或字段前面:

/** * 程序入口。 * * @param args 命令行参数 */ public static void main(String[] args) { System.out.println("Hello world!"); }

文档注释可以通过 Javadoc 工具生成程序说明文档。

完整示例:

public class HelloWorld { /** * 程序入口。 * * @param args 命令行参数 */ public static void main(String[] args) { System.out.println("Hello world!"); // System.out.println("这行代码不会执行"); /* System.out.println("这两行代码"); System.out.println("也不会执行"); */ } }

注释应该解释代码为什么这样写,而不是重复代码本身已经表达清楚的内容。

标识符

类名、方法名和变量名都属于标识符。

例如:

int age = 18;

其中:

  • int是关键字
  • age是变量名,也是标识符
  • 18是整数值

标识符需要遵守以下规则:

  • 可以包含字母、数字、下划线_和美元符号$
  • 不能以数字开头
  • 不能使用 Java 关键字
  • 不能使用truefalsenull
  • 区分大小写

例如:

int age; // 合法 int userAge; // 合法 int _count; // 合法 int 2users; // 不合法,不能以数字开头 int class; // 不合法,class 是关键字

Java 允许在标识符中使用中文,但实际项目通常使用英文。

虽然$可以出现在标识符中,但普通代码中很少主动使用。

命名风格

除了语法规则,Java 还有一些常见的命名习惯:

类型命名方式示例
类名大驼峰HelloWorldUserService
方法名小驼峰getNameprintMessage
变量名小驼峰userNamestudentAge
常量大写字母和下划线MAX_SIZE
包名全小写com.example.demo

这些不是编译器强制要求的,但遵守统一的命名习惯可以让代码更容易阅读。

关键字

关键字是 Java 预先规定的、具有特殊含义的单词。例如:

public class HelloWorld { private int age; }

其中,publicclassprivateint都是关键字。

关键字区分大小写,不能作为类名、方法名或变量名。

初学阶段先认识下面这些常用关键字即可:

类别常见关键字作用
定义类型classinterfaceenum定义类、接口和枚举
访问控制publicprotectedprivate控制访问范围
数据类型intlongdoublecharboolean表示基本数据类型
条件判断ifelseswitchcase根据条件执行代码
循环forwhiledo重复执行代码
跳转breakcontinuereturn改变代码执行流程
对象newthissuper创建或访问对象
继承extendsimplements表示继承或实现
异常trycatchfinallythrowthrows处理异常
常用修饰符staticfinalabstract修饰类、方法或变量
packageimport声明包和导入类型

这里有几个容易混淆的地方。

不写访问修饰符

Java 中没有名为default的“默认访问修饰符”。

如果类或成员前面没有写publicprotectedprivate,它通常只能被同一个包中的代码访问,这叫包级访问权限。

default关键字本身主要用于switch和接口默认方法。

final

final用在不同位置时,含义也不同:

  • 修饰变量:变量不能再次赋值
  • 修饰方法:方法不能被子类重写
  • 修饰类:类不能被继承

初学阶段先记住“受到限制,不能再改变”即可,具体规则后面再学。

void

void表示方法没有返回值:

public static void printMessage() { System.out.println("Hello"); }

它不是基本数据类型。

基本数据类型

Java 有 8 种基本数据类型:

类型简单说明
byte较小的整数
short短整数
int常用整数
long较大的整数
float单精度小数
double常用小数
char单个字符
booleantruefalse

具体取值范围和使用方法会在变量与数据类型部分继续学习。

保留字和字面量

constgoto是 Java 的保留字,目前没有实际用途,但也不能用作标识符。

从 Java 9 开始,单独的下划线_也不能作为标识符:

int _ = 1; // 不合法

下面三个词不是关键字,而是字面量:

字面量含义
true布尔值真
false布尔值假
null空引用值

初学阶段不需要背下所有关键字。随着后面的学习不断接触,记忆会比一次性背表格更牢固。

Java 文档

学习时应尽量使用与 JDK 版本对应的文档。

例如,使用 JDK 21 时,可以查阅:

https://docs.oracle.com/en/java/javase/21/docs/api/

API 文档更像一本字典,不需要从头阅读。遇到不熟悉的类或方法时再查询即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 7:14:04

提示词工程完整体系|从基础原理到高阶范式,附全套可复制实战案例

📑 目录 0 前言一、大语言模型核心底层基础(提示工程诞生背景)二、大模型能力的三大激发方式三、提示词工程核心价值与五大设计原则四、生产级提示词标准五要素模板五、提示词优化六大核心策略六、提示词分层体系:系统提示 用户…

作者头像 李华
网站建设 2026/9/24 7:03:06

Buck芯片参数耦合实操指南:电感选型、BOOT电阻与COT架构

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 7:03:00

码道:从零构建一个学生管理 API:FastAPI 内存版 CRUD 项目实战

从零构建一个学生管理 API:FastAPI 内存版 CRUD 项目实战作者:Student API Team 字数:约 3200 字 配套项目:https://atomgit.com/gcw_kYaAa94B/bigdata-atomcode-demo一、写在前面:为什么会有这样一个项目 在日常的后端…

作者头像 李华
网站建设 2026/9/24 6:56:51

烽火HG680高安与非高安识别三步法:丝印、串口、ADB精准判别

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 6:56:09

创维M411A机顶盒刷机全攻略:UWE5621DS无线驱动适配与固件选择指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/24 6:55:51

线激光3D相机点云处理三道断层:协议、坐标与质量

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华