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
剩下的 byte、short、float、char 在特定场景才用,先知道有就行。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 社区的规范非常统一,请照做:
- 变量、方法:小驼峰
userName、getTotalPrice - 类:大驼峰
Main、UserService - 常量:全大写
MAX_SIZE
不遵守不会报错,但会让每个读你代码的人(包括未来的你)皱眉。
10 秒自测
int x = 10;
int y = 3;
System.out.println(x / y);
输出什么?答案是 3,不是 3.333。整数除法砍掉小数。