JavaSE 总复习:夯实基础,迈向进阶之路


我的个人主页

一、数据类型与变量

二、控制语句

三、数组
四、面向对象编程(OOP)
五、异常处理
六、常用类库
七、输入输出流
八、总结

在 Java 编程的学习旅程中,JavaSE(Java 标准版)是基石般的存在。它涵盖了丰富的基础知识和核心概念,对深入学习 Java 后端开发、安卓开发等领域起着至关重要的作用。以下将对 JavaSE 的重点知识进行全面复习总结。

(一)基本数据类型

Java 有 8 种基本数据类型,分别是:
整型:byte(1 字节,-128 到 127)、short(2 字节)、int(4 字节)、long(8 字节,需在数值后加L或l)。例如:int num = 10;
浮点型:float(4 字节,需在数值后加F或f)、double(8 字节)。如:double pi = 3.14;
字符型:char(2 字节,用单引号括起来的单个字符)。像char ch = 'A';
布尔型:boolean(只有true和false两个值)。

(二)引用数据类型

包括类、接口、数组等。例如创建一个字符串对象:String str = "Hello";

(三)变量声明与初始化

变量在使用前必须先声明,声明格式为数据类型 变量名。可以在声明时进行初始化,也可以先声明后赋值。例如:

java 复制代码
int a;
a = 5;
int b = 10;

(一)条件语句

if - else:根据条件判断执行不同的代码块。

java 复制代码
if (condition) {
    // 条件满足时执行的代码
} else {
    // 条件不满足时执行的代码
}

switch - case:用于多分支选择,适用于对某个表达式的多个固定值进行判断。

java 复制代码
switch (expression) {
    case value1:
        // 表达式等于 value1 时执行的代码
        break;
    case value2:
        // 表达式等于 value2 时执行的代码
        break;
    default:
        // 表达式不等于任何 case 值时执行的代码
}

(二)循环语句

for 循环:常用于已知循环次数的情况。

java 复制代码
for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体
}

例如打印 1 到 10 的数字:

java 复制代码
for (int i = 1; i <= 10; i++) {
    System.out.println(i);
}

while 循环:先判断条件,条件满足时执行循环体。

java 复制代码
while (condition) {
    // 循环体
}

do - while 循环:先执行一次循环体,再判断条件。

java 复制代码
do {
    // 循环体
} while (condition);

(三)跳转语句

break:用于跳出当前循环或switch语句。

continue:跳过本次循环剩余部分,直接进入下一次循环。

(一)数组的声明与创建

声明一维数组:数据类型[] 数组名; 或 数据类型 数组名[];

创建数组:数组名 = new 数据类型[数组长度]; 例如:int[] arr = new int[5]; 也可以在声明时直接初始化:int[] arr = {1, 2, 3, 4, 5};

(二)二维数组

声明与创建二维数组:数据类型[][] 数组名 = new 数据类型[行数][列数]; 例如:int[][] matrix = new int[3][3]; 同样可以在声明时初始化:int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

(三)数组的遍历

可以使用for循环遍历数组元素。对于一维数组:

java 复制代码
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

对于二维数组:

java 复制代码
for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
        System.out.println(matrix[i][j]);
    }
}

(一)类与对象

类:是对象的模板,定义了对象的属性(成员变量)和行为(成员方法)。例如:

java 复制代码
class Person {
    // 成员变量
    String name;
    int age;

    // 成员方法
    void speak() {
        System.out.println("My name is " + name + ", I'm " + age + " years old.");
    }
}

对象:是类的实例。通过new关键字创建对象:Person p = new Person(); 然后可以访问对象的成员变量和调用成员方法:p.name = "John"; p.age = 25; p.speak();

(二)封装

将类的成员变量设为private,通过public的getter和setter方法来访问和修改成员变量,实现数据的隐藏和封装。例如:

java 复制代码
class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age >= 0) {
            this.age = age;
        }
    }
}

(三)继承

一个类可以继承另一个类,子类继承父类的非private属性和方法。使用extends关键字。例如:

java 复制代码
class Student extends Person {
    String school;

    void study() {
        System.out.println("I'm studying in " + school);
    }
}

子类可以重写父类的方法,通过@Override注解来标识。

(四)多态

多态体现为父类引用指向子类对象,在运行时根据对象的实际类型来调用相应的方法。例如:

java 复制代码
Person p = new Student();
p.speak(); 

这里p虽然是Person类型,但实际指向Student对象,调用speak方法时会根据Student类中的重写情况来执行。

(一)异常类型

Java 中的异常分为Checked Exception(受检异常,如IOException)和Unchecked Exception(非受检异常,如RuntimeException)。

(二)异常处理机制

使用try - catch - finally语句块来处理异常。try块中放置可能抛出异常的代码,catch块捕获并处理异常,finally块中的代码无论是否发生异常都会执行。例如:

java 复制代码
try {
    // 可能抛出异常的代码
    int result = 10 / 0;
} catch (ArithmeticException e) {
    // 处理算术异常
    System.out.println("除数不能为 0");
} finally {
    // 清理资源等操作
    System.out.println("Finally block");
}

还可以使用throws关键字在方法声明中抛出异常,让调用者处理。

(一)字符串类String

String类提供了许多操作字符串的方法,如length()获取字符串长度,charAt()获取指定位置字符,substring()截取子字符串,equals()比较字符串内容等。例如:

java 复制代码
String str = "Hello, World!";
System.out.println(str.length());
System.out.println(str.charAt(0));
System.out.println(str.substring(7));

(二)包装类

对应基本数据类型的包装类,如Integer、Double等。可以将基本数据类型转换为包装类对象(装箱),反之亦然(拆箱)。例如:

java 复制代码
int num = 10;
Integer integer = Integer.valueOf(num); // 装箱
int num2 = integer.intValue(); // 拆箱

(三)集合框架

List:有序可重复的集合,如ArrayList和LinkedList。ArrayList基于数组实现,随机访问快;LinkedList基于链表实现,插入和删除操作快。

java 复制代码
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
System.out.println(list.get(0));

Set:无序不重复的集合,如HashSet和TreeSet。HashSet基于哈希表实现,TreeSet基于红黑树实现,可以对元素排序。

java 复制代码
HashSet<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(1); // 重复元素不会被添加

Map:键值对集合,如HashMap和TreeMap。HashMap基于哈希表实现,TreeMap基于红黑树实现,可以根据键排序。

java 复制代码
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
System.out.println(map.get("Apple"));

(一)字节流

InputStream和OutputStream是字节流的抽象基类。FileInputStream用于读取文件字节数据,FileOutputStream用于写入文件字节数据。例如:

java 复制代码
try {
    FileInputStream fis = new FileInputStream("input.txt");
    int data;
    while ((data = fis.read())!= -1) {
        System.out.print((char) data);
    }
    fis.close();
} catch (IOException e) {
    e.printStackTrace();
}

(二)字符流

Reader和Writer是字符流的抽象基类。FileReader和FileWriter用于读取和写入字符数据,更适合处理文本文件。例如:

java 复制代码
try {
    FileReader fr = new FileReader("input.txt");
    char[] buffer = new char[1024];
    int len;
    while ((len = fr.read(buffer))!= -1) {
        System.out.print(new String(buffer, 0, len));
    }
    fr.close();
} catch (IOException e) {
    e.printStackTrace();
}

八、总结

JavaSE 知识体系庞大而丰富,通过对数据类型、控制语句、数组、面向对象编程、异常处理、常用类库以及输入输出流等方面的复习,我们能更牢固地掌握 Java 编程的基础。这些知识是进一步学习 Java 高级特性和应用开发的必备前提。在实际编程中,不断实践和深入理解这些概念,才能更好地运用 Java 语言解决各种复杂的问题,为后续的学习和项目开发奠定坚实的基础。希望本次复习总结能帮助大家查漏补缺,提升对 JavaSE 的掌握程度,在 Java 编程之路上越走越远。

相关推荐
nuclear20117 分钟前
Python 在Excel中插入、修改、提取和删除超链接
开发语言·python
续写少年!15 分钟前
自定义注解
java·开发语言
请你打开电视看看18 分钟前
结构型模式-桥接模式
java·python·桥接模式
苹果酱056724 分钟前
通俗理解人工智能、机器学习和深度学习的关系
java·开发语言·spring boot·mysql·中间件
Yanbin_Q35 分钟前
Java 使用堆外内存(off-heap memory) 作为缓存
java·开发语言·缓存
码上有前43 分钟前
【51-60期】深入解析Java面试问题:从高并发到性能调优的最佳实践
java·开发语言·面试
秋凉 づᐇ1 小时前
数据结构(汇总)
java·数据结构·算法
CHHC18801 小时前
golang 定时器的不同任务
开发语言·golang·定时任务
wjs20241 小时前
基于Java的Nacos云原生动态服务发现、配置和服务管理平台设计源码
java·nacos·服务发现·配置管理·云原生平台
^毛小兔^1 小时前
[Bash]遍历文件夹下的动态库文件,并为每个so文件创建一个软连接(symbolic link)
开发语言·bash