Java SE 深入总结:核心概念与实践

Java SE(Standard Edition)是Java平台的核心,为开发者提供了丰富的API和工具来构建各种桌面和移动应用。本文将深入探讨Java SE的核心概念,并通过代码示例来展示这些概念的应用。

1. 面向对象编程(OOP)

Java是一种面向对象的编程语言,它支持封装、继承、多态和抽象这四个主要的OOP概念。

封装

封装是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。

java 复制代码
public class Car {
    private String model; // 封装的私有属性
    private int year;

    public Car(String model, int year) {
        this.model = model;
        this.year = year;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }
}

继承

继承允许一个类(子类)继承另一个类(父类)的属性和方法。

java 复制代码
public class Vehicle {
    protected String type;

    public Vehicle(String type) {
        this.type = type;
    }

    // 可以被子类重写的公共方法
    public void displayInfo() {
        System.out.println("Vehicle Type: " + type);
    }
}

public class Car extends Vehicle {
    private String model;

    public Car(String type, String model) {
        super(type); // 调用父类的构造器
        this.model = model;
    }

    @Override
    public void displayInfo() {
        super.displayInfo(); // 调用父类的方法
        System.out.println("Model: " + model);
    }
}

多态

多态允许同一个接口接受不同的数据类型。

java 复制代码
public class Animal {
    public void makeSound() {
        System.out.println("Some sound");
    }
}

public class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Bark");
    }
}

public class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}

public class Zoo {
    public static void main(String[] args) {
        Animal myAnimal = new Dog();
        myAnimal.makeSound(); // 输出 "Bark"

        myAnimal = new Cat();
        myAnimal.makeSound(); // 输出 "Meow"
    }
}

2. 集合框架

Java集合框架提供了一套标准的接口和实现,用于存储和操作一组对象。

List接口

java 复制代码
import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

Map接口

java 复制代码
import java.util.HashMap;
import java.util.Map;

public class MapExample {
    public static void main(String[] args) {
        Map<String, Integer> ageMap = new HashMap<>();
        ageMap.put("Alice", 25);
        ageMap.put("Bob", 30);

        System.out.println("Alice's age: " + ageMap.get("Alice"));
    }
}

3. 输入与输出(I/O)

Java提供了一套丰富的I/O类库,用于处理文件和数据流。

文件读写

java 复制代码
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class FileExample {
    public static void main(String[] args) {
        File file = new File("example.txt");
        try (FileWriter writer = new FileWriter(file)) {
            writer.write("Hello, Java SE!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

4. 异常处理

Java通过try-catch-finally块和throws关键字来处理异常。

java 复制代码
public class ExceptionExample {
    public static void main(String[] args) {
        try {
            int result = 10 / 0; // 这将导致ArithmeticException
        } catch (ArithmeticException e) {
            System.out.println("Cannot divide by zero.");
        } finally {
            System.out.println("This will always be executed.");
        }
    }
}

5. 多线程编程

Java支持多线程编程,允许同时执行多个任务。

创建线程

java 复制代码
public class ThreadExample extends Thread {
    @Override
    public void run() {
        System.out.println("Thread is running: " + Thread.currentThread().getName());
    }

    public static void main(String[] args) {
        ThreadExample thread = new ThreadExample();
        thread.start(); // 启动线程
    }
}

结语

Java SE提供了强大的功能和工具,使得Java成为了一种多用途、跨平台的编程语言。通过深入理解Java SE的核心概念,开发者可以构建高效、可维护的应用程序。随着Java的不断发展,新的功能和改进也在不断地被引入,使得Java保持了其作为现代软件开发首选语言的地位。

以上是我对我近期学习的一个总结,如果有不对的地方或者有什么建议的话,都可以提出来哦。

相关推荐
linweidong19 分钟前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
OpenAnolis小助手25 分钟前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom
小玮看世界27 分钟前
[Python]OD算法在OD实际运用转化参考清单
开发语言·python·算法
ForteScarlet1 小时前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
萧瑟余晖1 小时前
Java深入解析篇六十二之安全机制详解
java·开发语言
小刘在重生~1 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
Orange_sparkle1 小时前
Pi Agent vs LangGraph:从人机交互、企业 RAG 到持久化工作流的完整选型指南
java·网络·人机交互
菜鸟~noob2332 小时前
【电子战】 第01篇:噪声、门限与虚警/检测概率(PFA/PD)【含matlab代码】
开发语言·matlab
奇牙coding1232 小时前
GPT-6-Astra API 接入教程:OpenRouter 路由配置 + Python/curl 示例 + 静默降级踩坑
开发语言·python·gpt·ai
lzx_0023 小时前
C++11(一)
开发语言·c++·算法