第 2 课 / 共 9 课14 分钟2 个闯关

变量与类型:先说清楚是什么

int/double/String、整数除法陷阱、final 常量。

Java 的变量要先说明白是什么类型

Python 里 x = 5 就完事了,Java 必须写清楚:

int age = 18;
String name = "小明";
double price = 19.9;
boolean isFree = true;

格式是 类型 名字 = 值;

为什么要多写一个类型?因为编译器要在你运行前就替你做检查。写了 int age,后面再写 age = "十八"; 会直接编译失败——而不是等到上线后炸给用户看。

八种基本类型 + 一个字符串

日常真正常用的就四个:

int count = 100;          // 整数,范围约 ±21 亿
long bigNumber = 10000000000L;  // 更大的整数,字面量要加 L
double price = 19.99;     // 小数,默认用这个
boolean ok = true;        // 只有 true / false

剩下的 byteshortfloatchar 在特定场景才用,先知道有就行。char 存单个字符,用单引号char grade = 'A';

String 不是基本类型,它是类(首字母大写是线索)。字符串必须用双引号'abc' 在 Java 里是错的。

整数除法的陷阱

System.out.println(7 / 2);        // 3    ← 不是 3.5!
System.out.println(7.0 / 2);      // 3.5
System.out.println(7 / 2.0);      // 3.5
System.out.println(7 % 2);        // 1    取余

两个整数相除,结果还是整数,小数部分直接砍掉。 这是极高频的 bug 来源。想要小数,至少有一边得是小数。

int a = 7, b = 2;
double result = (double) a / b;   // 3.5,(double) 是强制类型转换

字符串拼接

String name = "小明";
int age = 18;
System.out.println(name + "今年" + age + "岁");   // 小明今年18岁

+ 碰到字符串就变成拼接,数字会被自动转成文字。方便,但有个坑:

System.out.println(1 + 2 + "岁");     // 3岁    先算 1+2
System.out.println("岁" + 1 + 2);     // 岁12   从左往右,一碰到字符串就都变拼接

常量:不许再改

final double PI = 3.14159;
// PI = 3.14;   ← 编译报错

final 表示"定了就不能改"。常量名习惯上全大写下划线分隔。凡是不该被改的值(配置、数学常数、税率),都加 final,让编译器帮你守住。

命名规范

Java 社区的规范非常统一,请照做:

  • 变量、方法:小驼峰 userNamegetTotalPrice
  • 类:大驼峰 MainUserService
  • 常量:全大写 MAX_SIZE

不遵守不会报错,但会让每个读你代码的人(包括未来的你)皱眉。

10 秒自测

int x = 10;
int y = 3;
System.out.println(x / y);

输出什么?答案是 3,不是 3.333。整数除法砍掉小数。

广告位(未配置 AdSense,上线后在此展示)

动手闯关

读懂了不算会,写出来才算

0/2 已通过

闯关和判题完全免费,交错了不扣任何东西。卡住随时点「问 AI」,它能看到你正在写的代码。

关卡 01猜输出+10 点 · +15 XP

整数除法

输出是什么? ```java int x = 10; int y = 3; System.out.println(x / y); ```

  • 可能是多选,选错不扣点数,随便试。
登录后闯关拿点数
关卡 02猜输出+10 点 · +15 XP

加号什么时候是拼接

输出是什么? ```java System.out.println(1 + 2 + "岁"); System.out.println("岁" + 1 + 2); ```

  • 可能是多选,选错不扣点数,随便试。
登录后闯关拿点数

学完了?标记一下

标记完成会记进度、涨 20 XP,还会点亮连续学习天数。