作者:码力引擎
日期:2025-10-13
关键词:Java 基础、环境搭建、HelloWorld、变量、字面量


一、写在前面:今天只干 3 件事

  1. 电脑里先把 Java “装”好
  2. 写出第一行 HelloWorld
  3. 学会“变量” 的定义和使用
    很快啊,你就入门了!

二、 Java 环境搭建

① 安装 JDK(17/21 任选 LTS 版)

官网下载 .msi.dmg,一路 Next,记住安装路径(默认 C:\Program Files\Java\jdk-21)。
jdk下载
也可安装到其他盘符目录下!

② 配环境变量(Win10 演示)

  1. Win + S 搜“环境变量” → 点“编辑系统环境变量”
    环境变量

  2. 下方“环境变量” → 上半部分“用户变量”点“新建”

    • 变量名:JAVA_HOME
    • 变量值:C:\Program Files\Java\jdk-21(刚才记的路径)
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      然后点击确定!
  3. 选中用户变量里的 Path → 编辑 → 新建 → 输入
    %JAVA_HOME%\bin
    在这里插入图片描述

  4. 一路“确定”关掉所有窗口。
    在这里插入图片描述

③ 验证

打开 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 概率
  • 大小写敏感的语言里,userDao vs UserDAO 是两个变量;
    规范一旦固化,肉眼就能发现“咦,怎么突然全大写了?”
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 分钟)

  1. 把 HelloWorld 输出改成自己昵称。
  2. 定义 5 个变量分别存:年龄、身高、是否单身、昵称、微信余额,用 System.out.println 打印成一句话,例如:
    “大家好,我叫哪吒,今年 18 岁,身高 175.5 cm,单身 true,微信还剩 2.50 元。”
  3. 把代码贴到评论区,我帮你“点赞 + 点评”!

如果本文对你有帮助,记得 一键三连 👍 / 💬 / ➕,评论区等你交作业!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐