Files
java/readme.md
2025-12-29 23:41:10 +08:00

3.6 KiB
Raw Permalink Blame History

这份笔记为你梳理了 Java 开发中最核心的语法和类型体系。你可以把它当作一张“速查表”,重点标注了和 C/C++ 的差异点。


1. Java 数据类型大地图

Java 的类型系统分为两大类:基本类型引用类型

① 基本类型 (Primitive Types)

Java 的基本类型长度是固定的,不随操作系统位数改变(这是跨平台的保证)。

类型 大小 默认值 包装类 (用于集合) 备注
byte 1 byte 0 Byte 很少用,多用于二进制流
short 2 bytes 0 Short -
int 4 bytes 0 Integer 最常用
long 8 bytes 0L Long 赋值需加 L 后缀
float 4 bytes 0.0f Float 赋值需加 f 后缀
double 8 bytes 0.0 Double 常用浮点数
char 2 bytes '\u0000' Character UTF-16 编码,存一个汉字没问题
boolean 1 bit false Boolean 只有 true/false,不能用 0/1

② 引用类型 (Reference Types)

除了上面 8 种,剩下的全是引用类型(类似于 C 的指针,但你不能直接操作内存地址)。

  • 类 (Class):如 String, User
  • 接口 (Interface):如 List
  • 数组 (Array):如 int[], User[]

2. 核心语法速记

① 变量与常量

int age = 18;             // 变量
final double PI = 3.1415; // 常量 (类似 C++ 的 const)

② 运算符 (与 C 几乎一致)

  • 算术:+, -, *, /, %, ++, --
  • 关系:==, !=, >, <, >=, <=
  • 逻辑:&& (短路与), || (短路或), !
  • 特殊+ 可以用于字符串拼接,如 "Age: " + age

③ 条件与循环

// 条件
if (score > 60) { ... } else { ... }

// 循环 (和 C 没区别)
for (int i = 0; i < 10; i++) { ... }
while (condition) { ... }

// 增强型 for (专门遍历集合和数组)
for (String name : nameList) {
    System.out.println(name);
}


3. 面向对象三要素 (封装、继承、多态)

  • 封装:使用 private 隐藏属性,通过 publicgetter/setter 方法暴露。
  • 继承:使用 extends 关键字。Java 是单继承,一个儿子只能有一个亲爹。
  • 多态:父类引用指向子类对象 List list = new ArrayList();(这是后端开发的灵魂)。

4. Java 集合框架 (STL 对应版)

java.util 包下,这是做服务器开发最常用的工具:

功能 Java 接口 常用实现类 C++ 对应
动态数组 List ArrayList std::vector
链表 List LinkedList std::list
哈希表 Map HashMap std::unordered_map
排序映射 Map TreeMap std::map
唯一集合 Set HashSet std::unordered_set

5. 两个“必须知道”的避坑指南

🔴 避坑 1字符串比较

  • 错误if (str == "hello") (这是在比较内存地址)
  • 正确if (str.equals("hello")) (这是在比较内容)

🔴 避坑 2自动装箱与拆箱

Java 集合不能直接存基本类型(如 int),必须存包装类(Integer)。

ArrayList<Integer> list = new ArrayList<>();
list.add(10); // 自动装箱:把 int 变成 Integer 对象
int val = list.get(0); // 自动拆箱:把 Integer 变成 int


这份笔记你可以先存着。如果你想练习,我可以给你一个涉及到“继承和多态”的小案例,这对于理解 Spring 等后端框架非常有帮助。要试试吗?