news 2026/8/16 3:09:11

Java 学习打卡 2026.08.15

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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、构造方法的底层逻辑,但自身掌握还不够,有些不太懂,明天多练习题来巩固一下,尤其类和对象以及构造方法这一块儿。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/16 3:08:25

【WEB开发日记01】校内二手交易网站 - 已开源

【WEB开发日记01】源码GitHub地址: https://github.com/HiCodeOnline/WebHiSecondHandWithGo前后端分离,提供PC管理端,手机WEB端源码 技术栈 语言和框架 GoFiberReactNext.jsTailwind CSS 中间件 PostgreSQLRedisRustFSMeilisearch 应用效果

作者头像 李华
网站建设 2026/8/16 3:08:11

从编排到委托:OpenClaw如何重塑AI Agent开发范式

1. 项目概述:从“编排”到“委托”的认知升级最近在折腾AI应用开发,特别是围绕大语言模型(LLM)构建智能体(Agent)时,一个词反复出现在我的视野里:OpenClaw。起初我以为它又是一个新的…

作者头像 李华
网站建设 2026/8/16 3:05:12

深度测评:2026年刚需首选的专业降AIGC软件

2026年论文降AI率工具已从“基础改写”升级为多维度智能优化系统,核心评价维度包括文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规性等。本次测评覆盖6款主流工具,涵盖中文/英文、全流程与专项功能、免费与付费版本,让你高效筛选适…

作者头像 李华
网站建设 2026/8/16 2:58:32

AI产品工程实践:从快速迭代到全盘规划的策略选择

1. 先想清楚,你的AI产品到底要解决什么问题做AI产品,最怕一上来就纠结“快速迭代”还是“全盘规划”。这就像盖房子,还没想好是盖个临时工棚还是百年住宅,就开始争论是用预制板快,还是打地基稳。方向错了,跑…

作者头像 李华
网站建设 2026/8/16 2:57:04

:实现微信、QQ提示音接管与 OpenCode 联动桌面宠物开发实录

桌面宠物开发实录:实现微信、QQ提示音接管与 OpenCode 联动 文章目录桌面宠物开发实录:实现微信、QQ提示音接管与 OpenCode 联动摘要一、场景切入:我想要的不是"挂件",而是嵌入生活的角色二、总体架构:一个进…

作者头像 李华
网站建设 2026/8/16 2:55:14

GitHub 双仓库静态部署完整配置手册(适配你的项目)

✨个人主页:编程的一拳超人 ⛺️ 欢迎关注:👍点赞 📢留言 😍收藏 于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 GitHub 双仓库静态部署完整配置手册(适配你的项目…

作者头像 李华