Java基础知识总结(详细整理)

分类: 365BT体育app 发布时间: 2025-07-20 14:23:40 作者: admin 阅读: 9193
Java基础知识总结(详细整理)

一、Java语言特性

Java作为一门经典的面向对象编程语言,具有以下核心特性:

跨平台性:通过JVM(Java虚拟机)实现"一次编写,到处运行"。开发者编写的.java文件会被编译为字节码文件(.class),由不同平台的JVM解释执行。

面向对象:支持封装(隐藏内部实现)、继承(代码复用)、多态(同一方法的不同实现)三大特性。

自动内存管理:垃圾回收(GC)机制自动回收不再使用的对象内存,避免内存泄漏。

多线程支持:内置Thread类和并发工具包,简化并发程序开发。

二、基础语法

1. 数据类型

Java数据类型分为基本类型和引用类型:

基本类型:直接存储值,包括int(整型)、double(双精度浮点)、char(字符)、boolean(布尔)等8种

引用类型:存储对象内存地址,如String、数组、自定义类等

// 基本类型示例

int age = 25; // 4字节整型

double salary = 15000.5; // 8字节浮点

char grade = 'A'; // 单个字符

boolean isPass = true; // 布尔值

// 引用类型示例

String name = "程序员"; // 字符串对象

int[] scores = {90, 85, 95}; // 整型数组

2. 变量与常量

变量:用于存储可变数据,需先声明后使用

常量:使用final修饰,值一旦设定不可更改

int count; // 声明变量

count = 10; // 初始化赋值

count = 20; // 修改值

final double TAX_RATE = 0.15; // 常量命名建议全大写

// TAX_RATE = 0.2; // 错误!常量不可修改

3. 运算符

Java支持多种运算符:

算术运算符:+, -, *, /, %

比较运算符:>, <, ==, !=

逻辑运算符:&&(与), ||(或), !(非)

int x = 10, y = 3;

System.out.println(x / y); // 3(整数相除取整)

System.out.println(x % y); // 1(取余运算)

System.out.println(x > y && x < 15); // true(逻辑与)

三、流程控制

1. 条件语句

通过判断条件执行不同代码块:

if-else:处理多条件分支

switch:匹配固定值(JDK14+支持表达式)

// if-else示例

int temperature = 28;

if (temperature > 30) {

System.out.println("开启空调");

} else if (temperature > 20) {

System.out.println("适宜温度"); // 执行此分支

} else {

System.out.println("注意保暖");

}

// switch示例(JDK12+)

int day = 3;

String dayType = switch (day) {

case 1, 2, 3, 4, 5 -> "工作日";

case 6, 7 -> "周末";

default -> "无效日期";

};

2. 循环结构

用于重复执行代码:

for循环:明确循环次数时使用

while/do-while:不确定循环次数时使用

// 打印1-10的平方

for (int i=1; i<=10; i++) {

System.out.println(i + "的平方:" + (i*i));

}

// 增强for循环遍历数组

String[] languages = {"Java", "Python", "C++"};

for (String lang : languages) {

System.out.println("编程语言:" + lang);

}

// while循环示例

int num = 5;

while (num > 0) {

System.out.println(num--); // 5 4 3 2 1

}

四、面向对象编程

1. 类与对象

类:对象的模板,包含属性(成员变量)和方法

对象:类的实例,通过new关键字创建

// 定义手机类

public class Phone {

// 属性

String brand;

double price;

// 方法

public void call(String number) {

System.out.println("正在拨打:" + number);

}

}

// 创建对象

Phone myPhone = new Phone();

myPhone.brand = "Huawei";

myPhone.price = 5999.0;

myPhone.call("10086"); // 输出:正在拨打:10086

2. 继承与多态

继承:子类继承父类属性和方法,实现代码复用(单继承)

多态:父类引用指向子类对象,调用重写方法时表现子类行为

class Animal {

public void eat() {

System.out.println("动物进食");

}

}

class Cat extends Animal { // 继承

@Override

public void eat() { // 方法重写

System.out.println("猫吃鱼");

}

}

// 测试多态

Animal animal = new Cat();

animal.eat(); // 输出"猫吃鱼"

3. 接口与抽象类

接口:定义行为规范(默认方法为public abstract),支持多实现

抽象类:包含抽象方法(无具体实现)和具体方法,用于部分实现

// 接口定义

interface Flyable {

void fly(); // 抽象方法

}

// 实现接口

class Bird implements Flyable {

public void fly() {

System.out.println("鸟儿展翅飞翔");

}

}

// 抽象类示例

abstract class Shape {

// 抽象方法(子类必须实现)

abstract double calculateArea();

// 具体方法

void printInfo() {

System.out.println("这是一个形状");

}

}

五、集合框架

Java集合框架用于存储和操作对象组,主要接口:

List:有序可重复(如ArrayList、LinkedList)

Set:无序不可重复(如HashSet、TreeSet)

Map:键值对存储(如HashMap、TreeMap)

// List示例

List cities = new ArrayList<>();

cities.add("北京");

cities.add("上海");

cities.get(0); // 返回"北京"

// Map示例

Map population = new HashMap<>();

population.put("北京", 2154_0000);

population.put("上海", 2487_0000);

System.out.println(population.get("上海")); // 输出24870000

六、异常处理

Java使用try-catch-finally处理运行时错误:

try:包裹可能抛出异常的代码

catch:捕获并处理特定异常

finally:无论是否发生异常都会执行(常用于释放资源)

try {

FileInputStream fis = new FileInputStream("config.txt");

// 读取文件操作...

} catch (FileNotFoundException e) {

System.out.println("文件未找到:" + e.getMessage());

} finally {

System.out.println("资源清理完成");

}

七、IO操作

Java IO分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),推荐使用try-with-resources自动关闭资源:

// 自动关闭的读取示例

try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {

String line;

while ((line = reader.readLine()) != null) {

System.out.println(line);

}

} catch (IOException e) {

e.printStackTrace();

}

八、多线程

1. 线程创建

两种实现方式:

继承Thread类

实现Runnable接口(推荐,避免单继承限制)

// 方式1:继承Thread

class MyThread extends Thread {

public void run() {

System.out.println("线程ID:" + Thread.currentThread().getId());

}

}

// 方式2:实现Runnable

Runnable task = () -> {

System.out.println("通过Lambda创建线程");

};

new Thread(task).start();

2. 线程同步

使用synchronized保证线程安全:

class Counter {

private int count = 0;

public synchronized void add() {

count++;

}

}

九、常用API

1. String类

字符串不可变,常用方法:

length():获取长度

substring():截取子串

equals():内容比较

String s1 = "Hello";

String s2 = new String("Hello");

System.out.println(s1.equals(s2)); // true(比较内容)

System.out.println(s1 == s2); // false(比较对象地址)

2. 日期处理(Java8+)

LocalDate、LocalTime等类解决传统Date类的缺陷:

LocalDateTime now = LocalDateTime.now();

System.out.println("当前时间:" + now.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));

学习建议:

每个知识点务必配合代码实践

理解面向对象设计思想

掌握集合框架的选用场景(如快速查询用HashMap,排序用TreeMap)

重视异常处理和资源释放

多线程编程注意线程安全

希望这篇系统总结能帮助您夯实Java基础!

欢迎评论区留言!

相关文章

如何设计游戏:初学者的逐步指南
藤蔓水果有哪些?
机票退票要提前多久可以退?为什么飞机票退票越晚越好?
蜗牛爬山时是怎么爬的 蜗牛是如何爬行的?