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

news/2024/12/23 21:48:26/

在这里插入图片描述
我的个人主页

一、数据类型与变量

二、控制语句

三、数组
四、面向对象编程(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 编程之路上越走越远。


http://www.ppmy.cn/news/1557566.html

相关文章

软件工程复习重点(第一章 软件工程概述)

1.什么是软件&#xff1f;软件有什么特点&#xff1f; 软件分类&#xff1f; 计算机软件--计算机系统中的程序、数据及其文档的统称。 软件&#xff1d;程序数据文档 表现形式&#xff1a;逻辑实体、抽象性 生产方式&#xff1a;与硬件不同、无明显的制造过程、定制 维护机制&a…

【WiFi】WiFi6 5G 802.11ax 最大速率对应表

5GHz 频段 1x1 MIMO 速率 20MHz 信道宽度 MCS 0: 8.6 MbpsMCS 1: 17.2 MbpsMCS 2: 25.8 MbpsMCS 3: 34.4 MbpsMCS 4: 51.6 MbpsMCS 5: 68.8 MbpsMCS 6: 77.4 MbpsMCS 7: 86.0 MbpsMCS 8: 103.2 MbpsMCS 9: 114.7 MbpsMCS 10: 129.0 MbpsMCS 11: 143.4 Mbps 40MHz 信道宽度 …

STM32 HAL库之串口接收不定长字符

背景 在项目开发过程中&#xff0c;经常会使用MCU的串口与外界进行通信&#xff0c;例如两个单片机之间TTL电平型串口通信&#xff0c;单片机与成熟电路模块之间的串口通信等等.... 如何高效的使用串口是开发人员必须关注的问题。 STM32的HAL库为我们提供了三种串口通信机制&am…

大数据新视界 -- Hive 数据仓库:架构深度剖析与核心组件详解(上)(1 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Mono里运行C#脚本1

前面已经知道怎么样把C#的源码通过MCS编译器生成exe的文件,然后我们还把 exe的文件进行反汇编查看,知道我们需要处理的目标,就是这些汇编的代码。接着下来,我们就将要来探究mono是怎么样去运行这些代码的。 一般来说,要运行这些代码,要经历几个阶段:建立垃圾回收内存…

linux上vlc安装

方式一&#xff1a;linux可以连外网的 直接使用命令 sudo snap install vlc方式二&#xff1a;linux连不上外网的 我是在虚拟机中下载的&#xff0c;不太好连接外网&#xff0c;可以直接在Ubuntu Software 中进行搜索下载

深度学习:数据集:训练集、验证集和测试集

深度学习&#xff1a;数据集&#xff1a;训练集、验证集和测试集 在深度学习领域中&#xff0c;合理地划分数据集是确保模型有效学习并能够泛化到新数据上的关键环节。通常&#xff0c;一个完整的数据集会被分为三个部分&#xff1a;训练集&#xff08;Training Set&#xff0…

[机器学习]XGBoost(2)——目标函数(公式详解)

前置知识详见[机器学习]XGBoost&#xff08;1&#xff09;——前置知识 知识回顾 在学习目标函数之前&#xff0c;先来回顾一下加法模型和前向分步算法的知识 注意&#xff1a; 在前向分步算法中&#xff0c;通常使用 t 来表示当前的步骤或迭代次数。用 M 表示回归树的总数…