📅今日学习内容总结
一、八大基本数据类型 & 包装类
1. 每种基本类型都有对应的包装类,可以通过包装类常量查看取值区间:
Integer.MAX_VALUE、Integer.MIN_VALUE 获取int最大、最小值。
2. 书写规范:
• long 字面量末尾必须加大写 L;
• float 字面量末尾加上小写 f,否则编译报错。
3. boolean 类型没有 0、1 的概念,取值只有 true 和 false,不能参与算术运算。
二、浮点数精度知识点
1. int / int 结果依旧是整数;想要得到小数,运算中至少要有 double / float。
2. double 建议写成 1.0 格式,代码可读性更高。
3. 小数能否精确存储判断:小数改写成分数,分母只能是2的n次方,才能精确表示;其余小数会存在精度误差。
4. 临时美化输出(仅展示,不改变底层数值):可以使用 printf 格式化输出小数,控制保留小数位数。
三、数据类型转换
1. 自动转换(隐式转换):小范围类型 → 大范围类型,安全无数据丢失,推荐优先使用。
2. 强制转换(显式转换):大范围 → 小范围,手动书写(类型),存在数据丢失、溢出风险,谨慎使用。
注意:不是所有类型都能互相随意转换,要区分数值类型与其他类型。
四、算术运算自动类型提升(重点)
1. 运算规则:参与运算的数据,运算时自动向取值范围更大的类型提升。
2. 特殊规则:byte、short、char 互相运算,自动提升为int
◦ byte + byte → 结果int,需要int变量接收
◦ short + short → 结果int
◦ int + double → 结果double
◦ int + long → 结果long
3. 风险提醒:强制转换接收计算结果存在隐患,如果数值超出目标类型范围,发生溢出,数据出错。
五、字符串与基本类型相互转换
1. 字符串+运算特性:只要表达式存在字符串,+代表字符串拼接;字符串前面的内容优先正常运算。
2. 数字 → 字符串
◦ 简便写法:数字 + ""
◦ 标准写法:String.valueOf(数值)
3. 字符串 → 数字(以int举例)
int num = Integer.parseInt(字符串);
六、各类运算符
1. 模运算 %
◦ 支持整数,也支持double小数;
◦ 余数正负由第一个操作数决定。例:-10 % 3 = -1。
2. *增量运算符(复合赋值 += -= =)
自带隐式强制类型转换,书写简洁。
3. 自增、自减运算符 ++、--
4. 关系运算符:禁止连续书写(例如 a < b < c 错误写法)
5. **逻辑运算符:&& || !`
⚠️今日易错点汇总
1. byte、short相加直接用原类型接收,编译报错;
2. int相除得不到小数,忘记引入浮点类型;
3. 混淆浮点数“格式化打印美化”和真正高精度运算的区别;
4. 忽略模运算结果正负号规则;
5. 连续书写多个关系运算符;
6. long、float字面量忘记加L/f后缀。