java复习 19

1 Java 基本数据类型的取值范围、语法规则

1. 各数据类型核心规则

(1)byte 类型(选项 A)
  • 取值范围-128 ~ 127(8 位有符号整数)。
  • 错误原因128 超出 byte 最大值 127,编译报错。
(2)boolean 类型(选项 B)
  • 取值规则 :只能是 truefalse不能赋值 nullnull 是引用类型的默认值)。
  • 错误原因boolean i = null 类型不兼容,编译报错。
(3)long 类型(选项 C)
  • 语法规则
    • 长整型字面值需加后缀 L(大小写均可,但推荐大写 L 避免与数字 1 混淆)。
    • 十六进制表示:0x 开头(如 0xfff 是十六进制,值为 4095)。
  • 正确原因0xfffL 是合法 long 类型赋值(十六进制 + L 后缀)。
(4)double 类型(选项 D)
  • 语法规则
    • 浮点型字面值默认是 double,加后缀 d/D 可显式声明(也可省略)。
  • 正确原因0.9239d 是合法 double 赋值(d 后缀明确类型,符合语法)。

2. 数据类型赋值常见考点!!!!!!!!!!!!!!!!!!!!!!!!!!

类型 取值范围 / 规则 典型错误案例
byte -128 ~ 127 byte i = 128;(超出范围)
short -32768 ~ 32767 short i = 32768;(超出范围)
int -2^31 ~ 2^31-1 无特殊后缀时,大数字需用 Llong
long 需加 L 后缀(如 100L long i = 10000000000;(默认 int,超出范围报错)
float 需加 f/F 后缀(如 3.14f float i = 3.14;(默认 double,类型不兼容)
double 可加 d/D 后缀(也可省略) 无典型错误,注意精度问题(如 0.1 + 0.2 != 0.3
boolean true/false boolean i = null;(类型不兼容)
char 单字符(如 'A')或 Unicode 编码 char i = 'AB';(字符数量错误)

3. 关键结论

  • 范围超界必错byte/short/int 等整型赋值时,字面量不能超出类型范围。
  • boolean 特殊处理 :只能赋值 true/false,与引用类型(null)严格区分。
  • 后缀显式声明longLfloatf,避免默认类型导致的兼容问题。

这道题中,选项 C、D 正确 ,A 超出 byte 范围,B 错误赋值 nullboolean。记住这些规则,下次遇到类似题就能秒判对错啦~

2 在 Java 中,boolean 类型绝对不能赋值为 01 ,只能是 truefalse

在 Java 中,boolean 类型绝对不能赋值为 01 ,只能是 truefalse。这是 Java 与其他语言(如 C、C++)的重要区别,务必牢记!

1. Java 的严格规则

  • 合法值 :仅 truefalse

  • 错误案例

    java

    java 复制代码
    boolean flag = 1;  // ❌ 编译错误:不兼容的类型
    if (flag == 1) { } // ❌ 编译错误:无法比较 boolean 和 int
  • 底层实现 :Java 的 boolean 在 JVM 中以 1 位存储(理论上),但语言层面禁止与整数互转。

2. 对比其他语言的差异

语言 boolean 与整数的关系 示例
Java 严格区分,不可互转 boolean b = true;(仅合法写法)
C/C++ 0 表示 false,非零(如 1)表示 true bool b = 1;(合法)
Python 00.0 等视为 False,其他数值视为 True if 1: print("yes")(合法)

3. 常见混淆场景

(1)从数据库读取 0/1boolean

需手动转换,不能直接赋值:

java

java 复制代码
int dbValue = 1;
boolean flag = (dbValue == 1); // ✅ 显式比较,结果为 true
(2)条件判断中的整数

Java 的 if 条件必须是 boolean 类型,不能用整数替代:

java

java 复制代码
int score = 100;
if (score > 0) { ... } // ✅ 条件表达式返回 boolean
if (score) { ... }     // ❌ 编译错误:需要 boolean,得到 int

4. 避坑口诀

"Java 布尔特严格,真假二值别混淆;零一整数不能用,显式比较才是道!"

记住这个规则,考试 / 面试遇到类似题直接秒选正确答案~ 😄

3 **考前必看整理(2)**

我真的有点慌,/(ㄒoㄒ)/,希望不要考的太难吧,但愿,能及格就好,能过就好!

一、死磕 "必考题"(背完稳拿基础分)

1. 数据类型 & 转换(必考选择题)
  • 8 大基本类型byte(1), short(2), int(4), long(8), float(4), double(8), char(2), boolean(1)
    • 口诀:1244 8821(对应 byte 到 boolean 的位数)
  • 类型转换 :小范围→大范围自动转(byte→int),大范围→小范围要强转(int→byte(byte)),浮点转整数会丢精度((int)3.9 结果是 3
2. String 特性(必考)
  • 不可变String s = "a"; s += "b"; 实际新建了 String 对象!拼接用 StringBuilder(单线程)/StringBuffer(多线程)
    • 口诀:String 不可变,拼接用 Builder
  • 比较equals 比内容(s1.equals(s2)),== 比地址(s1 == s2 看是否同一对象)
3. 异常处理(流程必考题)
  • 执行顺序try 出异常→找匹配的 catch(子类异常在前,父类在后!比如 catch (FileNotFoundException) 要在 catch (IOException) 前面)→执行 finally(必执行,除非 System.exit(0)
    • 口诀:异常 catch 按顺序,子类先抓父类后,finally 必执行

二、代码题 "保命框架"(不会写完整,写框架也给分)

1. 方法定义(背模板)

java

java 复制代码
// 修饰符 返回值类型 方法名(参数列表) {
//     方法体;
//     return 返回值; // void 不用 return
// }
public static int add(int a, int b) {
    return a + b;
}
2. 循环结构(for/while 必考)

java

java 复制代码
// for 循环(遍历数组/集合)
for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

// while 循环
int i = 0;
while (i < 10) {
    System.out.println(i);
    i++;
}
3. 异常处理(try-catch 模板)

java

java 复制代码
try {
    // 可能出错的代码(比如文件操作、除 0)
    int num = 1 / 0;
} catch (ArithmeticException e) {
    // 捕获异常后处理
    System.out.println("除 0 错误!");
} finally {
    // 必执行的代码(关资源、打印日志)
    System.out.println("无论对错,我都执行");
}

三、考场 "应急技巧"(不会就蒙,有逻辑地蒙)

1. 选择题不会?看关键词
  • 问 "线程安全的集合"→选 Vector/Hashtable(虽然过时,但考试常考);问 "高效线程安全"→选 ConcurrentHashMap
  • 问 "String 拼接效率高"→选 StringBuilder
  • 问 "构造方法特点"→选 "与类名同名,无返回值,new 时调用"
2. 代码题写注释 + 框架
  • 比如题目要求 "写一个方法计算数组和",就算不会遍历,也写:

java

java 复制代码
public static int sumArray(int[] arr) {
    // 思路:遍历数组,累加元素
    int sum = 0;
    for (int i = 0; i < arr.length; i++) {
        sum += arr[i];
    }
    return sum;
}
  • 老师看你有思路,步骤对,会给分!

四、最后 1 小时 "急救包"

  1. 快速过一遍口诀:把数据类型、String、异常的口诀读 3 遍,刻进脑子
  2. 看错题 / 重点题:把之前练习的错题,尤其是老师强调的题,快速扫一遍答案逻辑
  3. 深呼吸:别慌,你记住的知识点足够应付基础题,考试时冷静审题,把会的都写上!
相关推荐
虾球xz13 分钟前
CppCon 2016 学习:The Exception Situation
开发语言·c++·学习
老土豆FUSK14 分钟前
C++ 封装特性
开发语言·c++
晨曦54321020 分钟前
学生成绩管理系统
开发语言·python
在未来等你23 分钟前
设计模式精讲 Day 4:建造者模式(Builder Pattern)
java·: design-patterns·builder-pattern·software-design·object-oriented-programming
重整旗鼓~26 分钟前
6.IK分词器拓展词库
开发语言·elasticsearch
march of Time28 分钟前
go在for循环中使用errgroup和channel进行并发处理
开发语言·golang·xcode
Cyrus_柯29 分钟前
C++(面向对象编程)
开发语言·c++·算法·面向对象
今天我要乾重生1 小时前
java基础学习(三十)
java·开发语言·学习
Bi8bo71 小时前
Python编程基础
开发语言·python
JWASX2 小时前
【RocketMQ 生产者和消费者】- 消费者重平衡(1)
java·rocketmq·重平衡