【Java】数据类型,运算符和方法重点总结

【Java】数据类型、运算符和方法 重点总结
(适合初学者快速掌握 + 面试/考试核心回顾)

一、Java 数据类型(8种基本类型 + 引用类型)

1. 八大基本数据类型(primitive types)

类型关键字占用字节默认值取值范围包装类备注与常见用途
整型byte10-128 ~ 127Byte字节流、网络传输、小范围整数
short20-32768 ~ 32767Short较少单独使用
int40-2³¹ ~ 2³¹-1 ≈ ±21亿Integer最常用整数类型
long80L-2⁶³ ~ 2⁶³-1Long大整数、时间戳、ID,字面量要加 L
浮点型float40.0f≈ ±3.4E38(有效数字6~7位)Float字面量要加 f,精度较低
double80.0≈ ±1.8E308(有效数字15~16位)Double默认浮点类型,绝大多数小数计算用它
字符型char20 ~ 65535(Unicode)Character可存中文 ‘中’、’\u4e2d’
布尔型boolean~1falsetrue / falseBoolean条件判断,不能参与算术运算

记忆口诀“四整(byte short int long)两浮(float double)一字符一布尔”

2. 基本类型 vs 引用类型

特性基本类型(8种)引用类型(class、interface、array、enum等)
存储位置栈(局部变量)栈中存引用(地址),实际对象在堆中
默认值有(0、false、等)null
是否可为 null
传递方式值传递引用传递(传地址)
是否有方法没有(包装类才有)

二、Java 运算符(优先级从高到低)

优先级运算符类别运算符结合性说明与注意点
1后缀. [] ()左→右方法调用、数组下标、成员访问
2一元++ — + – ! ~ (type)右→左自增自减、取反、强制类型转换
3乘除取模* / %左→右% 对负数结果符号跟被除数一致
4加减+ –左→右+ 也可用于字符串拼接
5位移<< >> >>>左→右>>> 无符号右移(高位补0)
6关系< <= > >= instanceof左→右instanceof 判断类型
7等值== !=左→右基本类型比值,引用类型比地址
8位与&左→右
9位异或^左→右
10位或|左→右
11逻辑与&&左→右短路(左边false右边不执行)
12逻辑或||左→右短路(左边true右边不执行)
13条件? :右→左三元运算符
14赋值及复合赋值= += -= *= /= %= &= |= ^= <<= >>= >>>=右→左a += 5 等价于 a = a + 5

高频考点

  • &&& 的区别(短路 vs 不短路)
  • ==equals() 的区别
  • + 字符串拼接的性能问题(建议用 StringBuilder)
  • 整数运算溢出(int 相加超过 2³¹-1 会绕回负数)

三、方法(Method)重点总结

1. 方法的完整格式

[修饰符列表] 返回值类型 方法名(形式参数列表) [throws 异常列表] {
    方法体...

[return 返回值;]

}

2. 方法的分类(面试常考)

类型特点示例能否被继承/重写
普通实例方法属于对象,必须通过对象调用public void eat()可重写
静态方法属于类,用类名调用public static void sleep()不可重写(隐藏)
构造方法无返回值类型,方法名=类名public Person()
final 方法不能被子类重写public final void show()不可重写
abstract 方法只有声明,无实现,抽象类/接口中使用public abstract void run();必须重写

3. 方法参数传递机制(非常重要!)

  • Java 只有一种参数传递方式:值传递
  • 基本类型:传递的是值的副本
  • 引用类型:传递的是地址的副本(不是引用本身)
void change(int a) { a = 100; }           // 外部变量不变
void change(int[] arr) { arr[0] = 999; }  // 外部数组会变(改的是堆中对象)

4. 方法重载(Overload)

  • 同一个类
  • 方法名相同
  • 参数列表不同(个数、类型、顺序)
  • 与返回值类型、访问修饰符无关
void print(int a) {}
void print(double a) {}
void print(int a, String b) {}

5. 方法重写(Override)规则

  • 子类重写父类方法
  • 方法名、参数列表完全相同
  • 返回值类型:基本类型必须相同,引用类型可以是子类型(协变返回)
  • 访问权限不能变严格(public → protected → default → private)
  • 抛出异常不能更广(可以更窄或不抛)

四、常见面试/易错点速记

  1. float f = 3.14; // 错误!要写 3.14f
  2. long l = 10000000000; // 错误!要写 10000000000L
  3. int a = 10 / 0; // ArithmeticException
  4. String s = null; s.length(); // NullPointerException
  5. 1 + 2 + “3” → “33”
    “1” + 2 + 3 → “123”
  6. && 短路 vs & 不短路(后者可能导致空指针)
  7. == 比较基本类型值,引用类型比较地址
  8. 方法中 return 后面代码不会执行

希望这份总结能帮你快速建立清晰的知识框架!

如果你想针对某个部分深入(例如:包装类、自动装箱拆箱、方法重写 vs 重载对比、运算符优先级经典题),可以直接告诉我,我继续展开讲解。

文章已创建 4580

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部