java入门
每日一言
Isn’t it lonely when you wake up and you don’t hear any voices? – Nako Oshimizu
from Hanasaku Iroha: Blossoms for Tomorrow
环境配置
首先我们到官网下载JDK:Java Downloads | Oracle 中国

选择合适的版本后安装即可,
安装时一定要记住java的安装路径。
安装好java后就是按照惯例的配置环境变量,如果是使用win11的朋友我强烈推荐一款由微软官方开发的拓展工具:Microsoft PowerToys 。

不仅可以方便的配置环境变量,还提供了一系列方便的功能,比如:
- 高级粘贴:将粘贴的内容自动转化为json等计算机常用格式
- 快速查找鼠标
- 文件批量重命名
我们需要先创建一个环境变量:JAVA_HOME

我们在system中的path中添加%jAVA_HOME%\bin路径

经过实测,如果不创建JAVA_HOME这一环境变量,直接在path中添加 C:\Program Files\Java\jdk-23\bin 这一绝对路径,虽然在vscode中可以直接运行java程序,但是当你通过手动编译运行时
1 | |
就会报错如下:
1 | |
接下来想要在vscode中运行java文件,只需要再安装一些扩展即可:
安装完第一个扩展和第二个扩展包后,就可以在vscode中运行java文件了。
可以用下面代码进行测试:
1 | |
classpath
在了解classpath环境变量之前,或许我们需要先了解一下java大致的运行流程:
- 编写java代码,存放在
.java文件中 - 编译java代码为字节码,存放在
.class文件中 - JVM将.
class中的字节码加载到内存中,并且将字节码转化为对应平台的机器码
字节码(Bytecode)
字节码是一种介于机器码于高级语言代码的中间表示形式,它是 Java 源代码(.java 文件)经过编译器(javac)编译后生成的机器无关的代码,存储在 .class 文件中。字节码是为 Java 虚拟机(JVM)设计的,而不是直接为任何具体硬件或操作系统服务。
这一特性使得java编译后的字节码,可以在任何一个装有JVM的机器上运行,无需考虑机器的处理架构,或处理器指令集不同等硬件层面不同,由JVM负责将字节码转化为机器对应的字节码,使得可以在任何平台上运行。
现在回到正题,java中的classpath究竟是什么?
classpath环境变量用于告诉java解释器,应该在硬盘中的哪里加载 .class中的字节码,便于我们将所有编译生成的字节码与源代码分开放置,便于文件管理。
我们以上面给出的HelloWorld程序为例:
我们创建如下的项目目录:

使用代码:
1 | |
编译java文件,生成字节码HelloWorld.class

此时两个文件都在工作区中的HelloWorld目录中,此时我们直接输入
1 | |
然后我们在终端中输入
1 | |
显示运行成功:

然后我们将class放到ClassPath文件夹下:

再次运行会显示报错:

这时我们就需要添加classpath环境路径:
通过参数 -cp + 绝对路径 来添加classpath参数

如果不显式指定 CLASSPATH,JVM 会默认将当前目录(.)作为类路径。
基础语法
基本数据类型(Primitive Data Types)
- 整数类型:
byte: 8 位有符号整数 (-128 到 127)short: 16 位有符号整数 (-32768 到 32767)int: 32 位有符号整数 (-2147483648 到 2147483647)long: 64 位有符号整数 (-9223372036854775808 到 9223372036854775807)
- 浮点数类型:
float: 32 位单精度浮点数double: 64 位双精度浮点数
- 字符类型:
char: 16 位 Unicode 字符 (用单引号括起来,如 ‘a’, ‘1’, ‘中’)
- 布尔类型:
boolean: 表示 true 或 false
java中并没有直接提供无符号数的表示
变量(Variables)
变量的声明方式与c或c++相似:
- 声明变量:
数据类型 变量名;例如:int age; - 初始化变量:
数据类型 变量名 = 值;例如:int age = 30;
变量命名规则:
- 必须以字母、下划线(_)、美元符号($),开头
- 后面可以跟字母、数字、下划线或美元符号
- 区分大小写 (age 和 Age 是不同的变量)
- 不能使用 Java 的关键字 (如
int,class,public)
命名方法:
- 小驼峰命名法:首字母小写,后续单词首字母大写(userName)
- 大驼峰命名法:包括第一个单词在内,每个单词的首字母都大写。(UserName)
运算符(Operators)
java的运算符表示与c或c++完全相同:
- 算术运算符:
+,-,*,/,%(取模) - 赋值运算符:
=(例如:age = 30;),+=,-=,*=,/=,%=(例如:age += 5;等价于age = age + 5;) - 比较运算符:
==(等于),!=(不等于),>,<,>=,<= - 逻辑运算符:
&&(逻辑与),||(逻辑或),!(逻辑非) - 位运算符:
&(按位与),|(按位或),^(按位异或),~(按位取反),<<(左移),>>(右移),>>>(无符号右移) - 三元运算符:
条件 ? 表达式1 : 表达式2(例如:int max = (a > b) ? a : b;) - 自增运算符:++(自增1),–(自减1),例如:age++,++age,其使用区别与c相同
但是java中没有c或c++中的逗号表达式
控制流程(Control Flow)
- 条件语句:
if语句:if (条件) { 代码块; }if-else语句:if (条件) { 代码块1; } else { 代码块2; }if-else if-else语句:if (条件1) { 代码块1; } else if (条件2) { 代码块2; } else { 代码块3; }switch语句:switch (表达式) { case 值1: 代码块1; break; case 值2: 代码块2; break; ... default: 代码块n; }
- 循环语句:
for循环:for (初始化; 条件; 更新) { 代码块; }while循环:while (条件) { 代码块; }do-while循环:do { 代码块; } while (条件);
- 跳转语句:
break: 跳出循环或switch语句continue: 跳过当前循环的剩余部分,进入下一次循环return: 从方法中返回
文档注释(Comments)
单行注释:
1
// 这是 Java 中的单行注释多行注释:
1
2
3
4/*
这是 Java 中的
多行注释
*/文档注释:
1
2
3
4
5/**
* 这是 Java 中的文档注释。
* 它可以用于生成 API 文档。
* @param args 命令行参数
*/文档注释可以使用特定的标签 (tag) 来提供结构化的信息,例如:
@author:作者@version:版本号@param:参数描述@return:返回值描述@throws:抛出的异常@see:相关链接@deprecated:标记为已过时
数组(Arrays)
声明数组:
1
int[] numbers;创建数组:
1
2numbers = new int[5]; //创建数组
numbers = new int[] {1, 2, 3, 4, 5}; //创建并初始化数组
通过索引访问数组元素,下标从0开始。
类(Classes)和对象(Objects)
类:类是一种蓝图或者模板,用于创建对象。它定义了对象所具有的属性(数据)和行为(方法)。
1 | |
对象:对象是类的实例。是根据类这个模板创建出来的具体实例。
1 | |
方法
定义方法:
1 | |
调用方法: 方法名(参数列表);
方法重载: 同一个类中可以有多个方法名相同,但参数列表不同的方法 (方法签名不同)。

