三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Java 学习打卡 2026.08.15

Java 学习打卡 2026.08.15

一.Arrays 数组工具类(重点)

Arrays 是 Java 提供的数组专用工具包,不用自己手写复杂逻辑,直接调用方法操作数组,非常便捷。

1. 第三种打印数组方式:Arrays.toString()

之前打印数组需要手写循环,现在可以直接使用工具类:

• 语法:Arrays.toString(数组名)

• 作用:把整个数组整体转为字符串格式输出

• 使用特点:需要定义字符串变量接收结果,或直接打印
int[] arr = {1,3,2};
String res = Arrays.toString(arr);
System.out.println(res);
// 输出:[1, 3, 2]
2. Arrays.sort() 数组自动排序

• 语法:Arrays.sort(数组名)

• 作用:对数组从小到大自动升序排序

• 无需手动写排序逻辑,底层封装好算法

3. Arrays.equals() 判断两个数组是否相等

• 作用:比较两个数组的元素、长度、顺序是否完全一致

• 返回值:布尔值 true / false

4. Arrays.fill() 数组批量填充

• 作用:自动给数组所有元素统一赋值填充

• 适合快速初始化数组所有数据

5. Arrays.copyOf() 数组拷贝

• 作用:复制原数组,生成一个新数组

• 可以自定义新数组长度,实现扩容、缩容效果

6. 二分查找(Arrays工具类)

• 前提:数组必须先排序

• 作用:快速查找指定元素的下标位置,效率极高

二、数组经典算法(今日补充重点)

1. 冒泡排序

核心思想:
相邻两个元素两两比较,如果顺序错误就交换位置,每一轮排序都会把当前最大值“冒泡”到末尾。

• 作用:实现数组从小到大排序

• 属于基础手写排序算法,区别于工具类自带 sort

2. 数组逆序

核心思想:
首尾对应位置元素互换,中间位置结束循环。

• 效果:原数组顺序反转(1,2,3 → 3,2,1)

3. 二分查找

• 适用:有序数组

• 原理:每次砍掉一半查找范围,快速锁定目标元素下标

三、二维数组

1. 概念

二维数组是特殊的一维数组:

• 外层数组的每一个元素,又是一个一维数组

2. 三种定义方式

1. 标准动态初始化:数据类型[][] 数组名 = new 类型[行数][列数];

2. 只定义行数、未定列数(不规则数组可用):数据类型[][] 数组名 = new 类型[行数][];

3. 静态初始化:数据类型[][] 数组名 = {{1,2},{3,4,5}};

3. 获取行列长度

• 获取总行数:数组名.length

• 获取指定行的列数:数组名[i].length

4. 三种遍历打印方式

1. 普通双层for循环:外层遍历行,内层遍历每一行的列元素

2. 增强for-each循环:简洁遍历所有元素,无需下标

3. Arrays.deepToString() 专用二维数组打印

• 普通 Arrays.toString() 打印二维数组只会输出地址值

• Arrays.deepToString(二维数组名):直接打印所有内层数值,是二维数组专属打印方式

5. 规则与不规则二维数组

• 规则二维数组:每一行的列数全部相同

• 不规则二维数组:每一行的列数不统一,长度各不相同

四、面向过程 vs 面向对象

1. 面向过程

• 核心:关注每一步过程、每一个细节流程

• 思路:怎么做、步骤是什么

• 偏向机械化、步骤化编程

2. 面向对象

• 核心:关注谁来做,依靠对象交互解决问题

• 思想更抽象、更适合复杂程序

• Java 是纯面向对象语言

五、类与对象(核心重点)

1. 类的作用

类是对象的模板,用来描述一类事物:

• 包含:属性(成员变量)、行为(成员方法)

2. 类的组成

1. 成员变量:描述事物的特征、属性

2. 成员方法:描述事物的功能、行为

3. 类的书写规范(必考)

1. 类名使用大驼峰命名法(首字母大写)

2. 成员变量、成员方法统一用 public 修饰

3. 自定义方法不能加 static(普通成员方法)

4. 一个 Java 文件中建议只定义一个类

5. public 修饰的类名 必须和文件名完全一致,不能随意改名

6. 不加 public 的普通 class,可以随意定义、不限文件名

六、对象实例化

• 通过 new 关键字创建对象:类名 对象名 = new 类名();

• 通过对象名可以:给成员变量赋值、调用成员方法

• 一个引用变量只能指向一个对象,不能同时指向多个对象

七、this 引用

• this 代表当前对象

• 用于区分成员变量和局部变量重名问题

• 每new一次对象,就有一个独立的this引用

八、构造方法

1. 作用

对象实例化创建的一瞬间自动调用,专门用来初始化对象成员变量

2. 核心规则

1. 方法名必须和类名完全相同

2. 没有返回值类型

3. 当我们没有手动写任何构造方法时,编译器会自动赠送一个无参空构造方法

4. 一旦手动写了构造方法,系统不再提供默认无参构造

今日学习心得

今天系统学完了 Java 数组全套进阶内容和面向对象入门核心。
从工具类简化数组操作、手写基础排序算法,到二维数组的定义与遍历,完整打通了一维、二维数组的所有常用操作。
同时正式入门面向对象思想,理解了类、对象、成员变量、成员方法、this、构造方法的底层逻辑,但自身掌握还不够,有些不太懂,明天多练习题来巩固一下,尤其类和对象以及构造方法这一块儿。

← 返回列表