Java 基础知识总结(超详细整理)_java基础知识总结 超详细,收藏这篇就够了

以下是 Java 基础知识超详细总结(2026 年视角,基于 Java 21 LTS 及主流面试/实际开发需求)。这份整理力求全面、系统、易懂,覆盖从零基础到核心进阶的绝大部分内容。收藏这篇基本就够了(后续进阶如集合、并发、JVM、Spring 等可另开专题)。

内容分为 10 大模块,每模块包含核心概念、代码示例、易错点 & 面试高频考点。

1. Java 概述 & 运行机制(必背)

Java 三大特性(2026 常问):

  • 一次编写,到处运行(平台无关性)
  • 面向对象
  • 健壮性(自动垃圾回收 + 异常处理)

JDK / JRE / JVM 区别(经典面试题):

  • JDK = Java 开发工具包(开发 + 运行)
  • JRE = Java 运行环境(仅运行)
  • JVM = Java 虚拟机(真正执行字节码)

Java 程序执行流程
源代码(.java) → javac 编译 → 字节码(.class) → 类加载器 → JVM(解释器 + JIT 编译器) → 机器码执行

Java 版本演进速记(面试常考):

  • Java 8(2014):Lambda、Stream、Optional、默认方法
  • Java 11(2018 LTS):模块化(JPMS)、var 局部变量类型推断
  • Java 17(2021 LTS):密封类、记录类(record)、增强 switch
  • Java 21(2023 LTS):虚拟线程(Project Loom)、结构化并发、Sequenced Collections

2. 基本数据类型 & 包装类

类型字节默认值包装类自动装箱/拆箱陷阱(面试必考)
byte10Byte-128 ~ 127
short20Short-32768 ~ 32767
int40Integer缓存 -128~127
long80LLong加 L
float40.0fFloat加 f
double80.0Double默认浮点
char2‘’CharacterUnicode 0~65535
boolean~1bitfalseBoolean不能用 0/1 代替

自动装箱/拆箱经典陷阱

Integer a =100;Integer b =100;System.out.println(a == b);// true(缓存)Integer c =200;Integer d =200;System.out.println(c == d);// false(超出缓存范围,新对象)

面试扩展:为什么 Integer 缓存 -128~127?(性能优化 + 常量池)

3. 运算符 & 优先级(易错点集中营)

优先级口诀(从高到低):

  • 后缀(. [] () ++ --) > 前缀(++ – ! ~ new) > 算术 > 移位 > 关系 > 相等 > 位运算 > 逻辑 > 三元 > 赋值

复合赋值隐式转换(经典笔试题):

short s =1; s +=1;// 合法,等价 s = (short)(s + 1) s = s +1;// 编译错误!int 不能赋给 short

字符串拼接优先级

System.out.println(1+2+"3");// "33"System.out.println("1"+2+3);// "123"

短路 vs 非短路

  • && / || 短路(左边确定就不算右边)
  • & / | 不短路(两边都算,可能 NPE)

4. 流程控制(if / switch / 循环)

switch 增强(Java 17+):

String day ="MON";String type =switch(day){case"MON","TUE","WED","THU","FRI"->"工作日";case"SAT","SUN"->"周末";default->"非法";};

for-each vs 传统 for
for-each 底层调用 iterator,不能改集合大小

5. 面向对象核心(OOP)——三大特性 + 五大原则

三大特性

  • 封装:private + getter/setter
  • 继承:extends(单继承),super()
  • 多态:父类引用指向子类对象,运行时绑定

五大设计原则(SOLID):

  • S:单一职责(一个类只干一件事)
  • O:开闭原则(对扩展开放,对修改关闭)
  • L:里氏替换(子类可替换父类)
  • I:接口隔离(不要胖接口)
  • D:依赖倒置(面向接口编程)

final 关键字全解

  • 变量:常量
  • 方法:不可重写
  • 类:不可继承

static 关键字

  • 静态变量/方法:类级别
  • 静态代码块:类加载时执行(只一次)

6. 数组 & 常用类(String / StringBuilder / Math / Date)

数组初始化

int[] arr =newint[5];// 全 0int[] arr2 ={1,2,3};// 静态初始化

String 不可变性(面试核心):

String s ="hello"; s = s +" world";// 实际创建新对象,原 "hello" 不变

String / StringBuilder / StringBuffer 对比

可变性线程安全适用场景
String不可变常量、频繁拼接少
StringBuilder可变非安全单线程高频拼接
StringBuffer可变安全多线程(现已少用)

常用 API

  • equals() vs ==(String 重写了 equals)
  • intern()(字符串常量池)

7. 异常处理(try-catch-finally-throw-throws)

异常体系

  • Throwable
    • Error(严重错误,如 OutOfMemoryError)
    • Exception
      • RuntimeException(非检查,如 NullPointerException)
      • Checked Exception(必须处理,如 IOException)

经典写法(Java 7+ 多 catch / try-with-resources):

try(FileInputStream fis =newFileInputStream("file.txt")){// ...}catch(IOException|SQLException e){// ...}finally{// 一定执行(释放资源)}

8. 常用工具类 & 枚举 & 记录类(Java 14+)

枚举(enum)

publicenumSeason{SPRING("春"),SUMMER("夏");privatefinalString name;Season(String name){this.name = name;}}

记录类(record,Java 16+ 稳定)

publicrecordPoint(int x,int y){}// 自动生成 equals、hashCode、toString、getter

9. 泛型(Generics)基础

常用写法

List<String> list =newArrayList<>();// 钻石语法(Java 7+)

泛型擦除:编译后泛型信息丢失(运行时 List 和 List 是同一个类)

通配符

  • ? extends T:上限(可读不可写)
  • ? super T:下限(可写不可读)

10. 反射 & 注解基础(入门级)

反射三要素

  • Class 对象
  • Field / Method / Constructor

获取 Class 对象三种方式

Class<?> clazz1 =Class.forName("java.lang.String");Class<?> clazz2 =String.class;Class<?> clazz3 =newString().getClass();

注解入门(Java 5+):

@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public@interfaceMyAnnotation{Stringvalue()default"hello";}

最后总结:Java 基础学习路径建议(2026 版)

  1. 环境搭建 + 语法(1 周)
  2. 面向对象 + 数组/字符串(2 周)
  3. 集合框架预习 + 异常(1 周)
  4. 多线程入门 + IO 流(2 周)
  5. 泛型 + 反射 + 注解(1 周)
  6. 刷 LeetCode 简单题 + 复习易错点(持续)

一句话背诵口诀(面试速记):
八基四引,装箱拆箱陷阱多;运算优先短路别算错;OOP 三大五原则记牢,final static 位置要分清;String 不可变,Builder 可变快;异常分 checked 和 runtime,反射注解入门要会写。”

这份总结基本覆盖 90% 的 Java 基础面试和实际开发需求。如果需要针对某个模块(如集合、多线程、JVM)再做超详细展开,或者附上代码练习题,继续告诉我~

Read more

【MySQL】从零开始学习MySQL:基础与安装指南

【MySQL】从零开始学习MySQL:基础与安装指南

MySQL作为世界上最受欢迎的关系型数据库之一,在电商、SNS、论坛等场景中应用广泛。作为学计算机的,数据库的水平是衡量一个程序员水平的重要指标需要掌握MySQL。本文 将以Linux下的MySQL,从基础概念出发,完成MySQL安装。 一、MySQL基础认知:为什么选择它? 1.1什么是数据库? 简单来说,数据库是高效管理数据的工具。相比文件存储,它解决了四大问题: * 安全性:避免文件被随意修改或删除 * 易管理:支持快速查询、筛选和统计 * 可扩展:轻松应对海量数据存储 * 易集成:便于在程序中调用和操作 数据库的存储介质包括磁盘(持久化)和内存(临时缓存) 1.2主流数据库对比 选择数据库时,需根据项目规模和需求判断: * SQL Sever:微软产品,适合.NET程序员的最爱,中大型项目 * Oracle:甲骨文旗下,适合复杂业务逻辑的大型项目,但并发性能不如Mysql; * MySQL:开源免费,并发性能优秀,适合电商、

By Ne0inhk

Clawdbot部署Qwen3:32B实操:解决‘gateway token missing’的三种Token注入方式对比

Clawdbot部署Qwen3:32B实操:解决‘gateway token missing’的三种Token注入方式对比 Clawdbot 是一个统一的 AI 代理网关与管理平台,旨在为开发者提供一个直观的界面来构建、部署和监控自主 AI 代理。通过集成的聊天界面、多模型支持和强大的扩展系统,Clawdbot 让 AI 代理的管理变得简单高效。 当你在 ZEEKLOG 星图镜像广场一键部署 Clawdbot 并集成本地运行的 qwen3:32b 模型后,大概率会遇到这样一个提示: disconnected (1008): unauthorized: gateway token missing (open a tokenized dashboard URL or paste token in Control UI settings) 这不是报错,也不是服务没起来—

By Ne0inhk
快速学习GO语言总结

快速学习GO语言总结

干货分享,感谢您的阅读!备注:本博客将自己初步学习GO的总结进行分享,希望大家通过本博客可以在短时间内快速掌握GO的基本程序编码能力,如有错误请留言指正,谢谢!(持续更新) 一、初步了解Go语言 (一)Go语言诞生的主要问题和目标 1. 多核硬件架构: 随着计算机硬件的发展,多核处理器成为主流,使得并行计算变得普遍。然而,传统的编程语言在处理多核并行性时可能面临困难,因为它们缺乏合适的原生支持。Go语言通过引入轻量级的协程(goroutine)和通道(channel)机制,使得并发编程变得更加容易。开发者可以轻松地创建数千个并发执行的协程,而无需担心线程管理的复杂性。 2. 超大规模分布式计算集群: 随着云计算和分布式系统的崛起,构建和维护超大规模的分布式计算集群变得越来越常见。这些集群需要能够高效处理大量的请求、数据共享和协调。Go语言的并发特性和通道机制使得编写分布式系统变得更加容易,开发者可以使用协程和通道来处理并发任务、消息传递和协调工作。 3. Web模式导致的开发规模和更新速度增加: Web应用的兴起带来了前所未有的开发规模和持续更新的需求。传统的编程语言在

By Ne0inhk

2025 最新版 Node.js 下载安装及环境配置教程

一、版本选择说明 根据 Node.js 官方发布计划,截至 2025 年 9 月,当前处于Active LTS(长期支持)状态的版本为Node.js v22.x(代号 "Jod"),该版本于 2024 年 4 月发布,将提供长期支持至 2027 年 4 月,是生产环境的最优选择。 ⚠️ 注意:Node.js 的奇数版本(如 v23)为短期开发版本,已在 2025 年 5 月停止支持,不建议用于生产环境;官网默认展示的v22.19.0(LTS)

By Ne0inhk