Java 核心语法完整总结博客

Java 核心语法完整总结博客

一、前言

Java 作为面向对象、跨平台的静态强类型编程语言,所有程序运行都基于一套固定核心语法。本文从基础数据类型、流程控制、面向对象、数组集合、异常、常用关键字六大模块梳理 Java 核心语法,覆盖入门到开发必备基础,适合新手系统复习、面试快速复盘。

二、基础语法规范

1. 程序结构

  1. 一个.java源文件只能有一个public修饰类,类名必须和文件名完全一致;
  2. 程序入口固定为public static void main(String[] args)方法,是 JVM 执行起点;
  3. 语句以分号;结尾,代码块使用{}包裹,区分大小写;
  4. 注释三种写法:单行//、多行/* */、文档注释/** */(用于生成 API 文档)。

示例基础模板:

java

public class HelloJava { // 程序入口方法 public static void main(String[] args) { System.out.println("Java核心语法"); } }

2. 标识符与关键字

  • 标识符(类名、变量名、方法名)规则:只能由字母、数字、下划线_、美元符$组成,不能以数字开头,不能是关键字;
  • 命名规范:
    • 类 / 接口:大驼峰UserInfo
    • 变量 / 方法:小驼峰userName
    • 常量:全大写下划线分隔MAX_AGE
  • 关键字:publicstaticclassifforextendsimplements等,不能自定义使用。

三、数据类型与变量

Java 是强类型语言,变量声明必须指定类型,分为基本数据类型、引用数据类型。

1. 八大基本数据类型(存值在栈内存)

表格

类型占用字节取值范围默认值
byte1-128~1270
short2-32768~327670
int4±21 亿0
long8超大整数0L
float4单精度小数0.0F
double8双精度小数(默认浮点)0.0
char2单个字符 / Unicode'\u0000'
boolean1true / falsefalse

注意:long数值后缀加Lfloat后缀加Fchar单引号,字符串String双引号。

2. 引用数据类型(堆内存存数据,栈存地址)

类、接口、数组、String、包装类等,默认值为null。 包装类:基本类型的对象形式,Integer、Byte、Double,支持自动装箱 / 拆箱。

java

// 自动装箱 Integer num = 10; // 自动拆箱 int n = num;

3. 变量分类

  1. 局部变量:方法内定义,无默认值,必须初始化;
  2. 成员变量(实例变量):类中方法外,对象创建后存在,有默认值;
  3. 静态变量(类变量):static修饰,属于类,全局唯一。

4. 类型转换

  1. 自动转换(小→大):byte→short→int→long→float→double
  2. 强制转换(大→小,可能丢失精度):

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. 循环结构

  1. for 循环:固定次数循环

java

for(int i=0; i<10; i++){}
  1. 增强 for(遍历数组 / 集合)

java

int[] arr = {1,2,3}; for(int x : arr){}
  1. while:先判断后执行
  2. 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. 三大特性

  1. 封装:私有化成员变量private,提供get/set方法访问,隐藏内部细节;
  2. 继承 extends:子类复用父类代码,Java 单继承;super访问父类;
  3. 多态:父类引用指向子类对象,方法重写实现不同逻辑;前提:继承 / 实现、方法重写、父类引用接收子类。

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

九、常用修饰符

  1. 访问权限(范围从大到小)public > protected > 默认(不写) > private
  2. static 静态 修饰变量 / 方法:属于类,直接类名.调用;静态方法只能访问静态成员。
  3. final
  • 修饰变量:常量,不可修改;
  • 修饰方法:不能重写;
  • 修饰类:不能继承。
  1. abstract:抽象类 / 抽象方法;
  2. synchronized:同步锁,多线程安全。

十、字符串 String

  1. String不可变,底层 char 数组,每次拼接产生新对象;
  2. 可变字符串:StringBuilder(单线程高效)、StringBuffer(多线程安全);
  3. 常用方法:length()substring()equals()split()trim()等;
  4. 字符串常量池优化内存复用。

十一、异常处理

1. 异常分类

  • Error:系统级错误,无法处理;
  • Exception:可处理异常
    • 运行时异常 RuntimeException:数组越界、空指针,无需捕获;
    • 编译期异常:IO、文件,必须捕获或抛出。

2. 处理语法

java

try{ 可能报错代码 }catch(异常类型 e){ 异常处理 }finally{ 一定会执行(释放资源) }

3. 抛出异常

  • throw:方法内手动抛出单个异常对象;
  • throws:方法声明抛出异常,交给调用者处理。

十二、集合基础(容器核心)

集合存储引用类型,长度可变,分为两大根接口:

  1. Collection 单列集合
  • List:有序可重复,ArrayList、LinkedList、Vector
  • Set:无序不可重复,HashSet、TreeSet
  1. Map 双列集合(键值对)
  • HashMap、TreeMap,键唯一,值可重复

通用遍历:增强 for、迭代器 Iterator、Lambda 流式遍历。

十三、IO、泛型、反射简要核心

  1. 泛型<T>:编译期类型约束,避免强制转换、类型异常;
  2. IO 流:字节流(文件读写)、字符流(文本),分输入输出;
  3. 反射:运行时获取类、方法、变量,框架底层核心原理。

十四、结语

Java 所有高级框架(Spring、MyBatis)底层都依赖以上核心语法。学习顺序建议:基础语法→流程控制→数组方法→面向对象→字符串异常→集合。掌握核心语法后,再深入多线程、IO、网络、框架会事半功倍,也是笔试面试高频考察内容。