【Java 零基础·第1章】 从“HelloWorld”开始!
作者:码力引擎
日期:2025-10-13
关键词:Java 基础、环境搭建、HelloWorld、变量、字面量
一、写在前面:今天只干 3 件事
- 电脑里先把 Java “装”好
- 写出第一行 HelloWorld
- 学会“变量” 的定义和使用
很快啊,你就入门了!
二、 Java 环境搭建
① 安装 JDK(17/21 任选 LTS 版)
官网下载 .msi 或 .dmg,一路 Next,记住安装路径(默认 C:\Program Files\Java\jdk-21)。
也可安装到其他盘符目录下!
② 配环境变量(Win10 演示)
-
Win + S 搜“环境变量” → 点“编辑系统环境变量”

-
下方“环境变量” → 上半部分“用户变量”点“新建”
- 变量名:
JAVA_HOME - 变量值:
C:\Program Files\Java\jdk-21(刚才记的路径)


然后点击确定!
- 变量名:
-
选中用户变量里的
Path→ 编辑 → 新建 → 输入%JAVA_HOME%\bin
-
一路“确定”关掉所有窗口。

③ 验证
打开 PowerShell / CMD,敲:
java -version
javac -version
出现版本号即 OK!

三、 第一个程序:HelloWorld
① 新建文件
任意目录新建 HelloWorld.java(注意大小写),用记事本写:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
② 编译 + 运行(两步走)
# 进入文件所在目录
javac HelloWorld.java # 生成 HelloWorld.class
java HelloWorld # 注意:这里不加 .class
屏幕出现:
Hello, World!
🎉 恭喜你,运行成功了!
四、关键字、保留字、特殊值
1、关键字
**关键字(Keywords)**是 Java 语言中预先定义的、具有特殊含义的单词。它们被 Java 编译器用于构建程序结构,不能用作变量名、方法名、类名等标识符。
| 类别 | 关键字 |
|---|---|
| 访问控制 | private, protected, public |
| 类/方法/变量修饰符 | abstract, class, extends, final, implements, interface, native, new, static, strictfp, synchronized, transient, volatile |
| 流程控制 | break, case, continue, default, do, else, for, if, instanceof, return, switch, while |
| 异常处理 | try, catch, throw, throws, finally |
| 包相关 | import, package |
| 基本类型 | boolean, byte, char, double, float, int, long, short |
| 变量引用 | super, this, void |
| 保留字(未使用) | goto, const |
| 模块系统(Java 9+) | module, requires, exports, opens, provides, uses, with, transitive |
2、保留字
目前没有使用,但不能用作标识符,未来可能被启用:
goto
const
3、特殊值
预定义的字面量值,也不能用作标识符:
| 特殊值 | 含义 |
|---|---|
true |
boolean 类型的真值 |
false |
boolean 类型的假值 |
null |
表示引用类型变量的“空”值 |
4、下划线
下划线 _ 不是传统意义上的 50 个“经典关键字”之一,但它是 Java 9+ 的保留关键字,不能再当变量名、方法名用。
五、基础语法
1. 注释怎么写(先养成好习惯)
// 单行:我后面的内容编译器不管
/*
多行:一般写段落说明
*/
/**
* 文档注释:以后能自动生成长得好看的 API 文档
*/
2. 标识符命名
标识符命名,规范的意义
写代码五分钟,命名十年功。——程序员江湖老话
一、什么是标识符?
凡是你自己取名字的地方,都是标识符:
类、方法、变量、常量、包、接口、枚举……
public class ApplePrice { // 类名:ApplePrice
static final double MAX_DISCOUNT = 0.8; // 常量名:MAX_DISCOUNT
int count; // 变量名:count
String unit; // 变量名:unit
}
二、为什么“能跑”还不够?
1. 代码是写给人看的,机器只是“顺便”执行
-
坏名字:
int a; int b; double c;三天后你自己都忘了
a是“库存”还是“苹果数量”。 -
好名字:
int appleStock; int soldToday; double unitPrice;读代码像读自然语言,脑补成本≈0。
2. 团队并行开发,命名就是“口头契约”
- 大驼峰、小驼峰、全大写常量……一套统一方言,别人一眼就能区分“这是什么角色”。
- 减少无效沟通和代码审查来回拉扯。
“兄弟,你
getmonery()是啥意思?”
“哦,我拼错了,是 money……”
这种对话每天都在发生。
3. 降低隐性 Bug 概率
- 大小写敏感的语言里,
userDaovsUserDAO是两个变量;
规范一旦固化,肉眼就能发现“咦,怎么突然全大写了?”
4. 让工具/框架“自动化”成为可能
- Spring 的
@RequestParam、MyBatis 的@Param默认按变量名映射;
名字乱,映射就崩。 - 生成文档(javadoc)时,见名知意的标识符直接变成可读性极高的 API。
三、真实事故:因为命名省 3 秒,调试花 3 小时
// 前人留下的代码
int temp; // 到底是温度?临时变量?还是时间?
temp = temp + 1; // 看不懂,不敢改
后来线上报警:温度传感器数据异常。
结果:temp 被同时当作温度和循环临时变量,+1 后传感器值漂移,触发阈值报警。
改名成本 < 1 分钟,定位成本 > 3 小时。
四、命名规范速查表(建议打印贴墙)
| 元素 | 规范(阿里/谷歌/Oracle 融合版) | 正例 | 反例 |
|---|---|---|---|
| 类 / 接口 | 大驼峰,名词 | OrderService |
orderService |
| 方法 | 小驼峰,动词或动宾 | getTotalPrice() |
TotalPrice() |
| 变量 | 小驼峰,名词 | appleCount |
ac / a |
| 常量 | 全大写 + 下划线 | MAX_PAGE_SIZE |
maxPageSize |
| 包 | 全小写,域名倒写 | com.blog.inventory |
Com.Blog.Inventory |
好的命名就是一行注释,坏的命名就是一笔技术债。
今天多敲两个单词,明天少熬两个小时夜。
3. 基本数据类型 + 字面量(面试常问)
基本数据类型 + 字面量
一句话:先记住“8 大基本 + 1 个常见 String”,别写错后缀,别让编译器猜!
一、8 大基本数据类型(速记表)
| 大类 | 关键字 | 内存 | 包装类 | 字面量示例 | 备注 |
|---|---|---|---|---|---|
| 整型 | byte |
1 B | Byte | 123 |
-128~127 |
short |
2 B | Short | 1234 |
-32 768~32 767 | |
int |
4 B | Integer | 123456 |
默认就是 int | |
long |
8 B | Long | 1234567890L |
必须加 L |
|
| 浮点 | float |
4 B | Float | 3.14F |
必须加 F |
double |
8 B | Double | 3.14 / 3D |
默认就是 double | |
| 字符 | char |
2 B | Character | 'A' / '中' |
单引号,仅 1 个字符 |
| 布尔 | boolean |
1 bit(JVM 相关) | Boolean | true / false |
不能是 0/1 |
高频面试:String 是基本类型吗?
答:不是!是 java.lang 下的引用类型。
二、字面量(Literal)= 代码里“直接写死”的值
1. 整数字面量
int a = 100; // 十进制,默认 int
int b = 0b1010; // 二进制(0b 开头)
int c = 012; // 八进制(0 开头)
int d = 0xFF; // 十六进制(0x 开头)
long e = 9999999999L; // 超过 int 范围必须加 L
2. 小数字面量
float f1 = 3.14F; // 单精度
double d1 = 3.14; // 双精度(默认)
double d2 = 3.14D; // D 可写可不写
double d3 = 3e2; // 科学计数法 3×10² = 300.0
3. 字符字面量
char c1 = 'A'; // 普通字符
char c2 = '中'; // Unicode 字符
char c3 = '\n'; // 转义字符:换行
char c4 = '\u0041'; // Unicode 编码,结果也是 'A'
4. 布尔 & 字符串
boolean flag = true; // 只能是 true/false
String s = "abc"; // 双引号,可为空串 ""
三、易踩的 4 个小坑
| 坑代码 | 编译结果 | 正确姿势 |
|---|---|---|
float f = 3.14; |
❌ 不兼容类型 | 3.14F |
long l = 9999999999; |
❌ 整数过大 | 9999999999L |
char c = 'ab'; |
❌ 字符过多 | 只能 'a' |
boolean b = 1; |
❌ 不兼容 | 只能 true/false |
四、一分钟速记口诀
“整数默认 int,小数默认 double;
long 加 L float 加 F,char 单引 String 双。”
五、代码小灶(复制即可跑)
public class LiteralDemo {
public static void main(String[] args) {
// 整型
byte b = 127;
long qq = 8888888888L;
// 浮点
float pi = 3.1415F;
double budget = 2.5e4; // 25000.0
// 字符
char enter = '\n';
// 布尔
boolean finished = false;
// 字符串
String msg = "余额:" + budget + "元" + enter;
System.out.print(msg);
System.out.println("pi=" + pi + ", qq=" + qq);
}
}
运行结果:
余额:25000.0元
pi=3.1415, qq=8888888888
4. 变量:声明 → 初始化 → 使用
public class VarDemo {
public static void main(String[] args) {
int age; // 1. 声明
age = 18; // 2. 初始化(第一次赋值)
System.out.println("age = " + age); // 3. 使用
// 也可以一步写完
double price = 9.9;
price = 8.8; // 可反复赋值
System.out.println("price = " + price);
}
}
注意:变量必须“先赋值、后使用”,否则编译直接报错。
六、易错点 TOP3(踩坑指南)
| 错误提示 | 原因 | 秒修方案 |
|---|---|---|
找不到或无法加载主类 |
运行命令写错:java HelloWorld.class |
去掉 .class |
编码 GBK 的不可映射字符 |
文件存成 UTF-8,但中文 Windows 默认 GBK | javac -encoding UTF-8 HelloWorld.java |
| 类名与文件名不一致 | public 类名 ≠ 文件名 | 保持完全一致,大小写敏感 |
七、作业(10 分钟)
- 把 HelloWorld 输出改成自己昵称。
- 定义 5 个变量分别存:年龄、身高、是否单身、昵称、微信余额,用
System.out.println打印成一句话,例如:
“大家好,我叫哪吒,今年 18 岁,身高 175.5 cm,单身 true,微信还剩 2.50 元。” - 把代码贴到评论区,我帮你“点赞 + 点评”!
如果本文对你有帮助,记得 一键三连 👍 / 💬 / ➕,评论区等你交作业!
更多推荐



所有评论(0)