Java 核心语法完整总结博客
一、前言
Java 作为面向对象、跨平台的静态强类型编程语言,所有程序运行都基于一套固定核心语法。本文从基础数据类型、流程控制、面向对象、数组集合、异常、常用关键字六大模块梳理 Java 核心语法,覆盖入门到开发必备基础,适合新手系统复习、面试快速复盘。
二、基础语法规范
1. 程序结构
- 一个
.java源文件只能有一个public修饰类,类名必须和文件名完全一致; - 程序入口固定为
public static void main(String[] args)方法,是 JVM 执行起点; - 语句以分号
;结尾,代码块使用{}包裹,区分大小写; - 注释三种写法:单行
//、多行/* */、文档注释/** */(用于生成 API 文档)。
示例基础模板:
java
public class HelloJava { // 程序入口方法 public static void main(String[] args) { System.out.println("Java核心语法"); } }2. 标识符与关键字
- 标识符(类名、变量名、方法名)规则:只能由字母、数字、下划线
_、美元符$组成,不能以数字开头,不能是关键字; - 命名规范:
- 类 / 接口:大驼峰
UserInfo - 变量 / 方法:小驼峰
userName - 常量:全大写下划线分隔
MAX_AGE
- 类 / 接口:大驼峰
- 关键字:
public、static、class、if、for、extends、implements等,不能自定义使用。
三、数据类型与变量
Java 是强类型语言,变量声明必须指定类型,分为基本数据类型、引用数据类型。
1. 八大基本数据类型(存值在栈内存)
表格
| 类型 | 占用字节 | 取值范围 | 默认值 |
|---|---|---|---|
| byte | 1 | -128~127 | 0 |
| short | 2 | -32768~32767 | 0 |
| int | 4 | ±21 亿 | 0 |
| long | 8 | 超大整数 | 0L |
| float | 4 | 单精度小数 | 0.0F |
| double | 8 | 双精度小数(默认浮点) | 0.0 |
| char | 2 | 单个字符 / Unicode | '\u0000' |
| boolean | 1 | true / false | false |
注意:long数值后缀加L,float后缀加F;char单引号,字符串String双引号。
2. 引用数据类型(堆内存存数据,栈存地址)
类、接口、数组、String、包装类等,默认值为null。 包装类:基本类型的对象形式,Integer、Byte、Double,支持自动装箱 / 拆箱。
java
// 自动装箱 Integer num = 10; // 自动拆箱 int n = num;3. 变量分类
- 局部变量:方法内定义,无默认值,必须初始化;
- 成员变量(实例变量):类中方法外,对象创建后存在,有默认值;
- 静态变量(类变量):
static修饰,属于类,全局唯一。
4. 类型转换
- 自动转换(小→大):
byte→short→int→long→float→double - 强制转换(大→小,可能丢失精度):
java
double d = 3.14; int a = (int) d; // 结果3,小数丢失四、运算符
1. 算术运算符
+ - * / % ++ --注意:整数相除结果为整数,5/2=2;%取模可判断奇偶。
2. 赋值运算符
= += -= *= /= %=
3. 比较运算符
> < >= <= == !=,结果只能是boolean;==基本类型比较值,引用类型比较地址。
4. 逻辑运算符
&&短路与、||短路或、!非;短路运算左边不满足时右边不执行。
5. 三元运算符
条件 ? 成立值 : 不成立值
java
运行
int max = a > b ? a : b;6. 位运算符、移位运算符
& | ^ ~ << >> >>>,底层性能优化常用。
五、流程控制语句
1. 分支结构
if-else
java
if(条件){} else if(条件){} else{}switch
支持byte/short/int/char/String/枚举,必须加break防止穿透;JDK14 + 支持->简化写法。
java
switch (num) { case 1 -> System.out.println("一"); case 2 -> System.out.println("二"); default -> System.out.println("其他"); }2. 循环结构
- for 循环:固定次数循环
java
for(int i=0; i<10; i++){}- 增强 for(遍历数组 / 集合)
java
int[] arr = {1,2,3}; for(int x : arr){}- while:先判断后执行
- do-while:先执行后判断,至少运行一次
3. 跳转关键字
break:跳出当前循环 /switch;continue:结束本次循环,进入下一次;return:结束当前方法。
六、数组
数组是固定长度的引用类型容器,存储同类型数据。
1. 数组定义
java
// 静态初始化 int[] arr1 = {1,2,3}; // 动态初始化 int[] arr2 = new int[5];2. 二维数组
java
int[][] arr = new int[3][4];3. 常用属性
数组名.length获取长度,数组下标从 0 开始,越界会抛出ArrayIndexOutOfBoundsException。
七、方法
方法是封装一段可复用代码的代码块。
1. 方法格式
java
修饰符 返回值类型 方法名(参数列表){ 方法体; return 返回值; }- 返回值为
void时无需 return; - 实参、形参必须类型匹配。
2. 方法重载 Overload
同一个类中,方法名相同,参数个数 / 类型 / 顺序不同,与返回值、修饰符无关。
java
public void test(){} public void test(int a){}3. 可变参数
类型...参数名,底层是数组,只能放在参数列表最后一位。
java
public void sum(int... nums){}八、面向对象核心(Java 思想核心)
1. 类与对象
类:模板、抽象概念;对象:类的实例,通过new创建。
java
// 定义类 class User{} // 创建对象 User u = new User();2. 三大特性
- 封装:私有化成员变量
private,提供get/set方法访问,隐藏内部细节; - 继承 extends:子类复用父类代码,Java 单继承;
super访问父类; - 多态:父类引用指向子类对象,方法重写实现不同逻辑;前提:继承 / 实现、方法重写、父类引用接收子类。
3. 构造方法
方法名与类名一致,无返回值;用于对象初始化,new时自动调用; 无参构造默认存在,手写有参构造后默认无参构造消失。
4. this 与 super
this:代表当前对象,调用本类构造、成员;super:代表父类对象,调用父类构造、成员; 构造方法中this()/super()必须放在第一行。
5. 方法重写 Override
子类重写父类非私有方法,权限不能低于父类;加@Override注解校验。
6. 抽象类 abstract
abstract class,可抽象方法(无方法体)+ 普通方法;不能 new,子类必须重写全部抽象方法。
7. 接口 interface
JDK8 前:只有抽象常量、抽象方法; JDK8:新增默认方法default、静态方法static; JDK9:私有方法; 类实现接口用implements,支持多实现;接口多继承。
8. 内部类、匿名内部类、Lambda
Lambda 简化函数式接口(仅一个抽象方法)写法,函数式接口标记@FunctionalInterface。
九、常用修饰符
- 访问权限(范围从大到小)
public > protected > 默认(不写) > private - static 静态 修饰变量 / 方法:属于类,直接
类名.调用;静态方法只能访问静态成员。 - final
- 修饰变量:常量,不可修改;
- 修饰方法:不能重写;
- 修饰类:不能继承。
- abstract:抽象类 / 抽象方法;
- synchronized:同步锁,多线程安全。
十、字符串 String
String不可变,底层 char 数组,每次拼接产生新对象;- 可变字符串:
StringBuilder(单线程高效)、StringBuffer(多线程安全); - 常用方法:
length()、substring()、equals()、split()、trim()等; - 字符串常量池优化内存复用。
十一、异常处理
1. 异常分类
- Error:系统级错误,无法处理;
- Exception:可处理异常
- 运行时异常 RuntimeException:数组越界、空指针,无需捕获;
- 编译期异常:IO、文件,必须捕获或抛出。
2. 处理语法
java
try{ 可能报错代码 }catch(异常类型 e){ 异常处理 }finally{ 一定会执行(释放资源) }3. 抛出异常
throw:方法内手动抛出单个异常对象;throws:方法声明抛出异常,交给调用者处理。
十二、集合基础(容器核心)
集合存储引用类型,长度可变,分为两大根接口:
- Collection 单列集合
- List:有序可重复,
ArrayList、LinkedList、Vector - Set:无序不可重复,
HashSet、TreeSet
- Map 双列集合(键值对)
HashMap、TreeMap,键唯一,值可重复
通用遍历:增强 for、迭代器 Iterator、Lambda 流式遍历。
十三、IO、泛型、反射简要核心
- 泛型
<T>:编译期类型约束,避免强制转换、类型异常; - IO 流:字节流(文件读写)、字符流(文本),分输入输出;
- 反射:运行时获取类、方法、变量,框架底层核心原理。
十四、结语
Java 所有高级框架(Spring、MyBatis)底层都依赖以上核心语法。学习顺序建议:基础语法→流程控制→数组方法→面向对象→字符串异常→集合。掌握核心语法后,再深入多线程、IO、网络、框架会事半功倍,也是笔试面试高频考察内容。