Skip to content

01 — Java语言基础索引

定位: Java 语言最核心的类型系统 — 基本类型、String、Object 类构成一切 Java 程序的基石 面试高频度: ⭐⭐⭐⭐⭐

一、板块在体系中的位置

┌─────────────────────────────────────────────────────────────┐
│                    Java 知识体系全景图                         │
│                                                              │
│   ┌──────────────────────────────────────────────────┐      │
│   │  01-Java语言基础 ← 你在 这里                      │      │
│   │  基本类型 · 运算符 · String · Object               │      │
│   └──────────────────┬───────────────────────────────┘      │
│                      │                                      │
│                      ▼                                      │
│   ┌──────────────────────────────────────────────────┐      │
│   │  02-面向对象核心 · 03-集合框架 · 04-泛型与注解      │      │
│   └──────────────────┬───────────────────────────────┘      │
│                      │                                      │
│                      ▼                                      │
│   ┌──────────────────────────────────────────────────┐      │
│   │  06-IO/NIO · 07-Lambda/Stream · 08-多线程与并发   │      │
│   └──────────────────────────────────────────────────┘      │
│                                                              │
│   → 每一行 Java 代码都建立在这个板块之上                      │
└─────────────────────────────────────────────────────────────┘

二、知识全景图

┌─────────────────────────────────────────────────────────────┐
│                   Java 类型系统全景                           │
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │                  数据类型                               │   │
│  │          ┌──────────────────────┐                     │   │
│  │          │   基本类型 (8种)      │   引用类型            │   │
│  │          │  byte/short/int/... │  class/interface/... │   │
│  │          │  float/double/char/ │                      │   │
│  │          │  boolean            │                      │   │
│  │          └──────────────────────┘                     │   │
│  └──────────────────────────────────────────────────────┘   │
│           │                    │                            │
│           ▼                    ▼                            │
│  ┌──────────────┐   ┌────────────────────┐                  │
│  │ 自动转换规则   │   │ String (不可变)     │                  │
│  │ 强制转换规则   │   │ Object (所有基类)   │                  │
│  └──────────────┘   └────────────────────┘                  │
│                                                              │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  核心考点:                                            │   │
│  │  ① 8种基本类型的内存占用与默认值                        │   │
│  │  ② String 不可变性的设计动机 + 常量池机制               │   │
│  │  ③ equals/hashCode 契约 + == vs equals 区别           │   │
│  └──────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

三、子专题导航

#主题面试频率核心内容
**数据类型与运算符**数据类型与运算符⭐⭐⭐⭐8种基本类型的设计、自动/强制类型转换、运算符优先级
**String深度解析**String深度解析⭐⭐⭐⭐⭐不可变性动机、常量池、StringBuilder/StringBuffer、intern()
**Object类与通用方法**Object类与通用方法⭐⭐⭐⭐⭐equals/hashCode 契约、clone 深浅拷贝、finalize

四、核心考点速记

考点 1:8 种基本类型的内存占用

┌──────────┬────────────┬──────────┬──────────┐
│  类型     │  内存(位)   │  默认值   │  范围     │
├──────────┼────────────┼──────────┼──────────┤
│ byte     │     8      │    0     │ -128~127 │
│ short    │    16      │    0     │ ±3.2万   │
│ int      │    32      │    0     │ ±21亿    │
│ long     │    64      │    0L    │ 很大     │
│ float    │    32      │   0.0f   │ 科学计数  │
│ double   │    64      │   0.0d   │ 更大     │
│ char     │    16      │ '�' │ 0~65535  │
│ boolean  │   ~8(虚拟)  │  false   │ true/false│
└──────────┴────────────┴──────────┴──────────┘

考点 2:String 不可变性的设计

java
String s = "hello";
s = s + " world";  // 不是修改"hello",而是创建新对象

为什么不可变? 线程安全(无需同步)、常量池复用(节省内存)、哈希值缓存(HashMap 用 String 做 key 的动机)

考点 3:equals/hashCode 契约

如果 a.equals(b) == true
    → 则 a.hashCode() == b.hashCode()  (必须)
    
如果 a.hashCode() == b.hashCode()
    → a.equals(b) 可能 true 也可能 false  (哈希冲突)

五、面试高频追问一览

追问关联笔记频次
float 和 double 为什么不能用于精确计算?**数据类型与运算符**⭐⭐⭐⭐
String 不可变怎么理解?final char[] 够吗?**String深度解析**⭐⭐⭐⭐⭐
String s = new String("a") 创建了几个对象?**String深度解析**⭐⭐⭐⭐⭐
为什么重写 equals 必须重写 hashCode?**Object类与通用方法**⭐⭐⭐⭐⭐

📚 相关文件

  • **02-面向对象核心** — OOP 建立在此基础之上
  • **泛型注解索引** — 泛型对类型的进一步抽象
  • **Java文库设计文档** — 返回总纲

Knowledge4J — Java 知识库