自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 Java 黑马程序员学习笔记(进阶篇27)

【代码】Java 黑马程序员学习笔记(进阶篇27)

2025-11-16 17:47:00 495

原创 Java 黑马程序员学习笔记(进阶篇26)

本题要求你基于提供的代码框架,实现一个程序,从指定文件中读取学生信息,通过加权随机抽样算法选中目标学生,修改其体重后将数据写回文件。在名字数据处理场景中,常需要从网页提取特定格式的文本(如百家姓的四字一组格式)。本题要求你基于提供的代码框架,实现一个程序,从指定的百家姓网页中爬取内容,并通过正则表达式的分组功能提取目标数据。)只能按字节读取数据,而网页源码是文本(比如 HTML 标签、中文文字),需要按 “字符” 处理(比如一个汉字可能占 2 个字节)。,方便读取网页的文本内容(源码)。

2025-11-14 19:59:23 908

原创 Java 黑马程序员学习笔记(进阶篇25)

"wangwu",25,"深圳"),将这 3 个对象存入 ArrayList<Student> 集合中。(1) 定义 Student 类,包含姓名(name,String 类型)、年龄(age,int 类型)、地址(address,String 类型)三个属性,提供构造方法和 toString 方法,且该类必须支持序列化。序列化流(对象流)用于 “将 Java 对象转换为字节序列”(序列化)和 “将字节序列恢复为 Java 对象”(反序列化),核心应用是对象的持久化存储(如存到文件)或网络传输。

2025-11-09 20:46:29 1023

原创 Java 黑马程序员学习笔记(进阶篇24)

文件中仅包含一个整数(表示软件已被使用的次数,初始可能为 0)。内部维护一个 8KB 的缓冲区(字节数组),通过 “批量读写缓冲区” 减少磁盘 IO 次数,大幅提高效率。与缓冲字节流类似,缓冲字符流内部有缓冲区(默认 8KB 字符数组),提高文本读写效率,且提供。),内层的普通流会被自动关闭(try-with-resources 也会自动处理)。中,要求每行内容与原文件保持一致(仅调整顺序),且每行末尾需保留换行。的 ASCII 对应不可见字符,不是我们要的)。中的所有内容(每行作为一个独立的字符串);

2025-11-04 17:37:35 1312

原创 Java 黑马程序员学习笔记(进阶篇23)

IO(Input/Output)流是 Java 中用于处理设备间数据传输的技术,核心作用是实现 “数据的读取” 和 “数据的写入”。输入(Input):从外部设备(如文件、键盘、网络)读取数据到程序中(程序←设备)。输出(Output):从程序中将数据写入到外部设备(程序→设备)。常见应用场景:文件读写、下载 / 上传文件、网络通信数据传输等。

2025-11-02 16:37:39 758

原创 Java 黑马程序员学习笔记(进阶篇22)

类用于表示文件或目录的路径(抽象表示,与平台无关),可对文件 / 目录的路径、名称、大小等元数据进行操作,但不能读写文件内容(读写内容需用流)。

2025-10-30 20:53:08 901

原创 Java 黑马程序员学习笔记(进阶篇21)

当 Java 自带的异常类型无法满足业务需求时(如 “余额不足” 异常),可自定义异常类。新建类,继承Exception(自定义 Checked 异常)或(自定义 Unchecked 异常)。提供无参构造和带的构造方法(用于传递异常描述信息)。

2025-10-27 11:28:33 909

原创 Java 黑马程序员学习笔记(进阶篇20)

方法引用是Lambda 表达式的简化写法。当 Lambda 表达式的主体仅包含一个方法调用时,就可以用方法引用替代 Lambda,让代码更简洁。本质:复用已有的方法,作为函数式接口的抽象方法的实现。语法类名/对象名::方法名(双冒号是方法引用的运算符)

2025-10-21 20:51:32 947

原创 Java 黑马程序员学习笔记(进阶篇19)

① 现有一个存储人员信息的 ArrayList 集合,集合中每个元素的格式为 “姓名 - 年龄”(例如 "张无忌 - 15" 表示姓名为张无忌,年龄为 15)。② 请使用 Java 的 Stream 流,通过 map 操作提取每个元素中的年龄(转换为整数类型),并打印所有年龄。:对集合 / 数组的元素进行 “流水线式处理” 的工具(不存储数据,也不改变原集合)。所以传一个长度为 0 的数组,既明确了返回类型,又不会浪费空间,是推荐的写法。,原集合不存在,无法被修改,且有严格校验规则。

2025-10-18 15:10:22 614

原创 操作系统大题 2 之银行家算法

A 完成后,释放其已分配的。

2025-10-17 17:42:32 1037

原创 Java 黑马程序员学习笔记(进阶篇18)

(推测继承自。

2025-10-16 16:55:46 884

原创 Java 黑马程序员学习笔记(进阶篇17)

sum += n;return sum;

2025-10-10 14:25:43 628

原创 Java 黑马程序员学习笔记(进阶篇16)

当红黑树化时,链表节点会被替换为 TreeNode。底层数据结构仍为哈希表,但每个键值对额外通过。

2025-10-03 18:12:13 2034

原创 Java 黑马程序员学习笔记(进阶篇15)

得益于JDK8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式。

2025-09-30 18:49:02 540

原创 Java 黑马程序员学习笔记(进阶篇14)

需求:存储「学生对象」,要求「学号相同则视为重复元素」。// 学生类// 学号(唯一标识)// 构造方法// 重写 toString():便于打印@Override// 核心:重写 hashCode() 和 equals()(根据学号去重)@Override// 地址相同 → 同一对象// 类型不同 → 不相等// 学号相同 → 相等@Override// 哈希值由学号决定(保证学号相同的对象哈希值相同)// 测试类// 添加学生(学号相同的视为重复)

2025-09-27 14:43:41 1056

原创 Java 黑马程序员学习笔记(进阶篇13)

有两个子节点的节点度为 2(如二叉树的节点)。有新节点插入时,右子树的 “右分支” 过度延伸,导致二叉树左右子树高度差超过 1,出现 “右右” 型失衡。有节点插入时,左子树的 “右分支” 过度延伸,导致二叉树左右子树高度差超过 1,出现 “左右” 型失衡。有节点插入时,右子树的 “左分支” 过度延伸,导致二叉树左右子树高度差超过 1,出现 “右左” 型失衡。有新节点插入,导致左子树的左分支过度延伸,使二叉树左右子树高度差超过 1,出现 “左左” 型失衡。(该节点作为旋转 “支点”,如图中节点 7)。

2025-09-25 15:05:39 1022

原创 Java 黑马程序员学习笔记(进阶篇12)

在接口名后加。

2025-09-22 14:38:23 1050

原创 Java 黑马程序员学习笔记(进阶篇11)

题目描述(1) 定义一个 GirlFriend 类,包含姓名(name)、年龄(age)、身高(height)三个私有属性,提供必要的构造方法和 getter 方法。创建 3 个 GirlFriend 对象,信息如下:(2) 将这 3 个对象存入数组中,使用 Arrays.sort () 方法对数组进行排序,排序规则如下:(3) 最后打印排序后的数组,要求输出每个对象的姓名、年龄和身高信息。关键逻辑 1: 整体作用(1) 这行代码的核心是给自定义对象数组指定排序规则。这个方法的作用是定义两个对象

2025-09-20 14:55:57 957

原创 Java 黑马程序员学习笔记(进阶篇10)

但如果我们需要自定义排序规则(如降序、按特殊条件排序),就需要传入一个。(从大到小),而不是默认的升序排序。比较器对象,告诉程序 “如何比较两个元素的大小”。(参数列表) -> { 方法体 }时,我们已经将基准值交换到了。范围是从基准值位置的后一个。范围是从原数组的起始位置。(1) 这段代码的作用是。接口自定义了比较规则。方法默认只能对数组进行。因为在前面的代码中,当。到基准值位置的前一个。-(插入点 + 1)

2025-09-18 17:08:08 917

原创 Java 黑马程序员学习笔记(进阶篇9)

类,用于存储每个块的关键信息:块的最大值(max)、块的起始索引(startIndex)、块的结束索引(endIndex),并提供必要的构造方法和 getter 方法。,每一轮排序都会将当前未排序区间的 “最大值” 通过多次交换,移动到未排序区间的末尾,如同水中的气泡逐渐上浮(小值靠前)、大值沉底(大值靠后),因此得名 “冒泡”。—— 把无序的大数据表,拆成若干个 “块”,满足 “块内无序、块间有序” 的规则,再通过 “索引表” 快速定位目标所在的块,最后在块内查找目标。的查找算法,核心思路是。

2025-09-15 19:45:46 741

原创 Java 黑马程序员学习笔记(进阶篇8)

请编写一个 Java 程序,包含一个方法。

2025-09-14 20:13:42 773

原创 Java 黑马程序员学习笔记(进阶篇7)

适合仅需处理 “时 / 分 / 秒 / 毫秒” 的场景(如闹钟时间、会议开始时刻、日常作息时间等,不依赖具体日期)。(例如 “2 年 0 个月 0 天”“1 年 3 个月 5 天” 等日期跨度),主要用于计算两个。适合仅需处理 “年 / 月 / 日” 的场景(如生日、订单日期、有效期等)。适合处理不需要时区感知的场景(如程序内部日期计算、本地业务时间逻辑等)。(如跨国系统、分布式服务),能明确区分不同时区的时间差异。是 Java 8 引入的日期时间类(位于。是 Java 8 引入的日期时间类(位于。

2025-09-14 15:13:20 1242

原创 Java 黑马程序员学习笔记(进阶篇6)

指。

2025-09-13 20:21:01 991

原创 Java 黑马程序员学习笔记(进阶篇5)

(2) 请编写 Java 程序,从这段文本中提取所有 "Java" 字符串,但要求这些 "Java" 后面必须紧跟着 "8"、"11" 或 "17"(即仅匹配 "Java8"、"Java11"、"Java17" 中的 "Java" 部分),并将提取到的 "Java" 依次打印输出。(1) 包含 “Java”(不区分大小写,即 “Java”“java”“JAVA” 等形式都需匹配,本题文本中仅含 “Java”);(2) 编译的好处是:如果需要多次使用同一个正则(比如在循环或多个方法中),编译一次后复用。

2025-09-13 15:01:48 857

原创 Java 黑马程序员学习笔记(进阶篇4)

若直接调用 divide(BigDecimal val),当结果无法整除时(如 1÷3),会抛出 ArithmeticException,必须显式指定 scale(保留小数位数)和 roundingMode(舍入模式)。BigDecimal 位于 java.math 包下,是专门处理高精度小数的类,解决 float/double 因二进制存储导致的 “精度丢失” 问题(如 0.1 + 0.2 ≠ 0.3)。但对于引用类型成员(如数组、对象),只会复制引用(即新对象和原对象的引用类型成员指向同一块内存)。

2025-09-11 20:03:43 1085

原创 Java 黑马程序员学习笔记(进阶篇3)

这两行代码是 Swing 中的经典组合,核心是通过两个类的协作完成 “读取图片→展示图片” 的过程。

2025-09-10 16:02:57 747

原创 Java 黑马程序员学习笔记(进阶篇2)

产生事件的组件,如JButton(按钮)、图片组件、JFrame(窗体)等。:用户对组件的操作,如鼠标单击、鼠标划入 / 划出、键盘按键等。:绑定在事件源上的 “响应器”。当事件源发生指定事件时,自动执行监听器中对应的代码逻辑。用于监听,需实现接口中所有抽象方法,响应不同鼠标操作。是 Java Swing 中用于监听jtb:给按钮jtb1设定 “位置和大小”。y=010050相当于在教室(窗口)里给一张桌子(按钮)划地盘 ——“放在左上角,宽 1 米,高 0.5 米”。

2025-09-05 18:34:28 706

原创 Java 黑马程序员学习笔记(进阶篇1)

(1) 创建一个包含整数 0~15(共 16 个元素)的一维数组;(2) 使用随机打乱算法(洗牌算法)将该一维数组的元素顺序打乱;(3) 将打乱后的一维数组转换为 4 行 4 列的二维数组(的功能,在子类构造方法中配置窗口属性(无需额外手动创建。三张页面按照输入的长宽像素大下运行自动弹出。(1) 自定义窗口类(如。图形化接口显示操作画面。

2025-09-03 20:37:35 750

原创 Java 黑马程序员学习笔记(基础篇13)

将共性行为(方法)抽取到父类后,若父类无法确定该方法的具体执行逻辑(因子类执行内容不同),则该方法可定义为。,属于类的 “五大成员” 之一(其余成员:属性、方法、构造方法、代码块)。(接口只定义 “行为规范”,不提供具体实现,由实现类完成方法逻辑)。时,用匿名内部类可避免单独定义类,大幅简化代码结构。,快速为方法提供 “接口 / 抽象类的实现逻辑”。关键字建立 “实现关系”),实现接口的类称为。,作用是在创建子类对象时,为类的属性赋值。,地位类似 “成员变量”“成员方法”。① 接口的定义,使用关键字。

2025-09-02 17:28:20 753

原创 Java 黑马程序员学习笔记(基础篇12)

(1) 静态方法中,只能访问静态(2) 非静态方法可以访问所有(3) 静态方法无this关键字。

2025-08-30 17:37:44 1114 1

原创 Java 黑马程序员学习笔记(基础篇11)

方法,不再执行后续的 “输入密码”“验证验证码” 等登录逻辑。若未注册,打印 “用户名 XXX 未注册,请先注册再登录” 并结束登录方法;(3) 生成随机验证码并在控制台提示 “当前正确的验证码为:XXX”,然后提示用户输入验证码;(2) 字母需涵盖 26 个小写字母(a-z)和 26 个大写字母(A-Z),随机选取。对象,封装用户输入的 “用户名” 和 “密码”,用于后续与已注册用户信息的比对。(1) 验证码由 4 个字母(包含大小写)和 1 个数字(0-9)组成。,返回到方法的调用处(这里就是回到。

2025-08-29 14:08:30 538

原创 Java 黑马程序员学习笔记(基础篇10)

方法,功能是:接收用户集合和一个目标 ID,判断该 ID 是否存在于集合中(存在返回。方法,获取筛选结果,并遍历打印结果(格式:品牌 + 空格 + 价格)。(1) 从控制台接收用户输入的一个字符串,要求该字符串必须是。若输入不符合规则,提示用户重新输入,直至输入符合要求为止。方法检查 ID 为 "1" 的用户是否存在,并打印结果。(2) 将输入字符串中的每个数字字符,按照罗马数字规则((3) 把转换后的所有罗马数字拼接起来,输出最终结果。的(可能在第 1、2、3、4、5 位中的任意一位);

2025-08-25 21:04:45 652

原创 Java 黑马程序员学习笔记(基础篇9)

对称字符串是指从左到右读和从右到左读完全相同的字符串,例如 "abcba"、"aaa" 是对称字符串,而 "abc"、"abbaa" 不是对称字符串。(1) 程序接收用户输入的一个整数金额(范围:0-9999999),如果输入金额超出范围,提示 "金额无效" 并要求重新输入。(3) 将前 3 位 + "****" + 后 4 位拼接,得到脱敏后的手机号。(1) 定义一个 11 位的手机号字符串(例如:"13528834382")。拼接无变量 ,编译后就是拼接后的结果,会复用串池里的字符串。

2025-08-24 17:45:33 568

原创 Java 黑马程序员学习笔记(基础篇8)

设计一个学生信息管理系统,要求使用数组存储学生对象,并实现学生信息的添加和删除功能。说明数组中已经没有空位置了(所有位置都存了学生对象),此时直接添加新元素会 “装不下”,Java 数组长度一旦创建不可修改,当数组存满元素后,需通过创建新数组实现 “扩容”。请编写一个 Java 程序,实现对输入字符串中不同类型字符的统计功能。查找元素时,需明确区分 “找到” 和 “未找到” 两种情况。如果没有这个形参,方法就不知道要操作哪个数组,无法实现 “通用的扩容功能”。大),可以直接把新元素添加到数组的。

2025-08-23 17:58:18 863 1

原创 Java 学习笔记(基础篇7)

① 用快捷键唤起生成菜单,在类的编辑界面,按 Alt + Insert。

2025-08-22 12:15:41 709

原创 Java 学习笔记(基础篇6)

作用是获取成员变量的值,需要将值返回给调用者,因此必须指定返回值类型(与成员变量类型一致),且无。(2)提供 set 变量名(参数)方法,用于设置成员变量的值,方法用public修饰。(1)提供 get 变量名() 方法,用于获取成员变量的值,方法用public修饰;如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。:针对private修饰的成员变量,如果需要被其他类使用,应提供相应的操作。作用是设置成员变量的值,通常接收参数并赋值,无需返回结果,因此用。

2025-08-20 16:18:27 280

原创 Java 学习笔记(基础篇5)

和 “判断中奖等级” 两大功能。,目的是计算这个数组中所有元素的总和。循环,直到输入合法才。

2025-08-18 18:03:27 190

原创 Java 学习笔记(基础篇4)

只是一个标识符,只要方便理解和使用即可(通常会取有意义的名字,比如。让索引从 26 开始重新转为 0-25(例如 i=26 时,)不能错,因为它决定了方法能接收什么样的数据;,直到 i=51 时为 65+25=90 即。(2) 注意方法的返回值类型是 Int[ ]),直到 i=25 时为 122(即。原理:在 ASCII 编码中,当 i=0 时为 97(即。),i=1 时为 98(即。,对应 65+0=65 即。原理:ASCII 中。

2025-08-17 18:33:09 320

原创 Java 学习笔记(基础篇3)

定义一个包含元素 {1,2,3,4,5} 的整数数组,通过编程将数组中的元素进行反转(即第一个元素与最后一个元素交换位置,第二个元素与倒数第二个元素交换位置,以此类推),最后将反转后的数组元素依次打印输出(元素之间用空格分隔)。时,并不是把数组的所有元素复制一份传递给方法,而是把。实参:方法调用中的参数,等同于使用变量或常量;形参:方法定义中的参数,等同于变量定义格式;循环中使用两个指针((类型/个数/顺序)。

2025-08-16 21:07:13 1029

原创 Java 学习笔记(基础篇2)

(3)获取随机数:int number = r.nextInt(10);//获取数据的范围:[0,10],包括0,不包括10。(2)创建对象:Random r = new Random();(1)导包:import java.util.Random;如果都不是(default),就推荐招牌。

2025-08-14 20:42:58 309

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除