自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机组成原理和计算机网络常见单位分类及换算

直观对比。

2025-03-21 09:51:59 430

原创 递归在二叉树的遍历的应用

二叉树的遍历主要有三种方式:前序遍历、中序遍历和后序遍历。此外,还有层序遍历也是一种常见的遍历方式。今天主要介绍的是三种深度遍历方法:前序遍历、中序遍历和后序遍历。左子树 ——右子树 —— 根节点。左子树——根节点 —— 右子树。根节点—— 左子树—— 右子树。

2024-11-20 22:42:17 264

原创 定长滑动窗口(LeetCode——1423.可获得的最大点数)

- 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。几张卡牌,每张卡牌都有一个对应的点数。点数由整数数组cardPoints给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿k张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组cardPoints和整数k,请你返回可以获得的最大点数。

2024-11-19 16:00:37 475

原创 定长滑动窗口基础模板题:LeetCode——2379.得到K个黑块的最少涂色次数和643.子数组最大平均数 1

给你一个长度为n下标从开始的字符串blocksblocks[i]要么是'W'要么是'B',表示第i块的颜色。字符'W'和'B'分别表示白色和黑色。给你一个整数k,表示想要黑色块的数目。每一次操作中,你可以选择一个白色块将它黑色块。请你返回至少出现连续k个黑色块的操作次数。

2024-11-19 15:04:39 356

原创 滑动窗口入门(LeetCode——1456定长字符串中元音字母的最大数目)

给你字符串s和整数k。请返回字符串s中长度为k的单个子字符串中可能包含的最大元音字母数。英文中的为(aeiou. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。

2024-11-18 23:44:05 417

原创 动态规划入门(记忆化搜索)——爬楼梯(Leetcode 70题)

动态规划是通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法,换而言之:这个问题的解决可以通过解决许多个小的子问题来构建,而这些子问题会重复出现。

2024-11-18 12:35:53 1027

原创 递归经典汉诺塔问题

- 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。

2024-11-17 21:21:24 997

原创 递归基础斐波那契数(LeetCode——509.斐波那契数)

递归的核心思想是将一个复杂的问题分解成更小的、相似的子问题,直到这些子问题简单到可以直接解决。。在每个递归调用中,都会检查是否满足基本情况,如果满足,则返回一个直接的值,不再进行递归调用。没有基本情况,递归将无限进行下去,导致栈溢出错误。这是函数调用自身的过程。在这一步,问题被分解成更小的子问题,每个子问题都是原始问题的一个更小的版本。确保递归能够在有限的步骤内结束。通常通过基本情况来实现。

2024-11-17 20:20:30 536

原创 深入链表的遍历——快慢指针算法(LeetCode——876题)

今天我们一起来学习一下一个快速遍历链表的方法我们先来看看一道经典的需要遍历链表的题目 (题目来自LeetCode)876. 链表的中间结点给你单链表的头结点head,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。

2024-09-14 22:39:05 758 1

原创 链表的实现

链表是数据结构中一种基础且重要的数据结构,它允许我们有效地在序列中插入和删除元素,而无需重新分配整个数据结构。与数组相比,链表提供了更高的灵活性,但也可能在访问速度上有所牺牲。现在我将将从基础概念出发,逐步深入链表并详细探讨链表的基本操作及其与数组的性能差异和适用场景。

2024-09-12 23:23:11 587

原创 冒泡排序——基于Java的实现

冒泡排序(Bubble Sort)是一种简单的排序算法,适用于小规模数据集。其基本思想是通过重复遍历待排序的数组,比较相邻的元素并交换它们的位置,以此将较大的元素逐步“冒泡”到数组的末尾。算法的名称源于其运行过程中,较大的元素像水中的大气泡一样逐渐浮到顶部。

2024-09-07 22:00:28 576

原创 深入了解Java的多线程API

我们继续来深入了解Java给我们提供的线程相关的方法。

2024-09-07 15:21:04 883

原创 多线程的简单了解——多客户端链接

在前面的学习中发现我们的聊天室功能只能有一个客户端接入服务端中,第二个客户端想要接入服务端中必须要等待第一个客户端输入结束才能接入。这很明显不符合实际应用的开发,现在我们就来学习Java中一个重要的知识,多线程来解决这个问题。我们先来简单的了解一下多线程。

2024-09-05 21:34:30 931

原创 两张图片轻松搞懂TCP连接时的三次握手以及断开连接时的四次挥手——面试高频

我们先来看一张图片简单了解一下TCP在请求中是为什么要进行三次“对话”

2024-09-04 23:18:46 1155

原创 基于Java的基础简单网络编程

C/S:这里的C是指Client,即客户端。而S是指Server,即服务端。网络上的的应用本质上就是两 台计算机上的软件进行交互。而客户端和服务端就是对应的两个应用程序,即客户端应用程序和服 务端应用程序B/S:这里的B是Browser,即浏览器,而S是指Server。浏览器是一个通用的客户端,可以与不同 的服务端进行交互。但是本质上B/S还是C/S结构,只不过浏览器是一个通用的客户端而已。

2024-09-01 22:47:25 340 1

原创 深入了解Java异常处理机制及其方法

注意,永远不应当在main方法上使用throws!!注意,永远不应当在main方法上使用throws!!注意,永远不应当在main方法上使用throws!!throws用来在声明方法时同时声明该方法可能抛出的异常,用于通知调用方添加处理该异常的手段。当一个方法中使用throw抛出一个非RuntimeException的异常时,就要在该方法上使用throws声明这个 异常的抛出。此时调用该方法的代码就必须处理这个异常,否则编译不通过。/*** 测试异常的抛出*/return age;

2024-09-01 22:34:10 1230

原创 Java核心API——exception类认识java异常处理机制

finally块是异常处理机制中的最后一块.它可以直接跟在try之后或者最后一个catch之后finally的特点:只要程序执行到try当中,无论try中的代码是否出现异常,最终都要执行finally中的代码通常使用finally用于完成资源释放这类操作,比如IO后的关闭操作.

2024-08-31 20:25:57 651

原创 深入理解Java序列化:从入门到实践

在前面的学习中我们简单的学习到了对象流的使用,我们先来回顾一下。

2024-08-31 15:39:20 1090

原创 深入剖析Java核心API——io类,一篇文章总结清楚

在前面几天中我们都在不断的学习Java中一个重要的API——io类,现在我们进行总结。

2024-08-30 23:28:56 1630

原创 深入探索Java字符流:解锁IO类库的字符处理

java将流按照读写单位划分为字节流与字符流.java.io.InputStream和OutputStream是所有字节流的超类而java.io.Reader和Writer则是所有字符流的超类,它们和字节流的超类是平级关系.Reader和Writer是两个抽象类,里面规定了所有字符流都必须具备的读写字符的相关方法.字符流最小读写单位为字符(char),但是底层实际还是读写字节,只是字符与字节的转换工作由字符 流完成. 字符流都是高级。

2024-08-30 22:29:08 1067

原创 Java核心API——io类对象流

在上一篇文章中我简单的介绍了io类中的高级流缓冲流,具体继续来介绍一个高级流——对象流。

2024-08-29 22:59:09 311

原创 Java核心API——io类缓冲流

在前面的学习中我们学习了如何向文件中简单的传输写入数据java将流分为两类。

2024-08-29 22:53:42 511

原创 Java中IO基础文本数据处理:BufferedReader 和 BufferedWriter

在处理文本数据时,Java IO库中的BufferedReader和BufferedWriter类是极其重要的。它们提供了缓冲功能,使得文本数据的读写更加高效。

2024-08-27 23:47:03 478

原创 Java IO优化:BufferedInputStream与BufferedOutputStream详解

和扮演着重要的角色。它们为字节流提供了缓冲功能,显著提升了数据读写的效率。现在我们就来深入学习一下这两个类的功能、使用方法以及它们如何优化IO操作。

2024-08-27 23:36:01 496

原创 Java IO基础:高效读写文本数据

文件中只能保存2进制信息,因此我们要想写出文本数据,需要先将字符串转换为2进制。

2024-08-26 20:32:11 330

原创 Java IO精髓:高效块读写入技术深入解析

首先我们先用昨天学习的知识来完成文件的复制,使用read和write方法来完成。在昨天的学习中,我们学习了如何向文件中写入或者从文件中读取数据,但是在面临需要读入或者写出大量数据时,例如上面我们要复制一张图片,或者是一首歌,又或者是一个视频时,我们需要不断的用循环来调用read和write方法?很明显这样做很浪费性能,并且上述案例在复制文件时的读写效率是很低的。因为硬盘的特性,决定着硬盘的读写效率差,而单字节读 写就是在频繁调用硬盘的读写,从而产生了"木桶效应"。

2024-08-26 20:20:30 1221

原创 Java核心API——io类

我们先来认识一下什么时在程序中输入与输出输入是从外界到程序中的方向,是我们程序用于获取外界信息的过程,是"读"的过程输出是从程序到外界的方法,是我们程序向外界发送信息的过程,是"写"的过程java.io.InputStream与OutputStream。

2024-08-25 23:21:02 535

原创 深入探索Java File类:高效遍历目录中的每一个子项

今天我接着来介绍File类中访问目录中每一个子项的方法。

2024-08-25 18:28:58 386

原创 Java核心API——File类

File类的每一个实例用于表示文件系统中的一个文件或目录(本质是保存一个路径) 使用File我们可以:1:访问文件或目录的属性(名字,大小等信息)2:创建/删除 文件或目录3:访问一个目录中的所有子项但是不能访问文件数据。

2024-08-24 23:46:10 656

原创 从匿名内部类到Lambda表达式:Java编程的优雅进化

Lambda表达式是Java 8及更高版本中引入的一个特性,它提供了一种简洁的方式来表示匿名方法。Lambda表达式允许你以更直观、更简洁的方式编写代码,特别是在处理集合、事件监听或任何需要传递函数作为参数的场景中。匿名内部类:java中一种特殊的类定义方式,它允许你在需要实现一个接口或继承一个类的地方直接定义一个该接口或类的匿名子类。那么是不是感觉还是就算简化了类的创建还是很麻烦,不够清晰明了,这就可以介绍今天的主角了Lambda表达式了。是不是简洁了许多,但是别急还能更加的简洁。

2024-08-24 19:10:39 835

原创 Java核心API——Collection集合的工具类Collections

i < 10;i++) {/*sort方法在排序是要求集合元素必须实现:Comparable接口开发中我们定义的类不会去实现这个接口该排序功能对我们代码具有侵入性侵入性:当我们使用某给API功能时,其放过来要求我们为他实现接口或做某些继承并定义相关方法时,可以认定该API功能对我们代码有侵入性*///编译不通过@Override});//只用一次所以用匿名内部类// }//}

2024-08-23 17:00:04 422

原创 Java核心API——collection类的常见方法

Collection提供了一个方法toArray。可以将当前集合转换为一个数组。数组的工具类Arrays提供了应该静态方法asList。可以讲数组转为一个List集合。

2024-08-22 23:24:13 459

原创 Java增强型for循环

JDK5之后,java推出了一个新的特性:增强型for循环,也成为了新循环新循环不取代传统for循环的工作,【它只用来遍历集合或数组】语法:for(元素类型 变量名 : 数组或集合){循环体...i++){

2024-07-20 23:41:58 1603

原创 Java核心API——Collection类

java集合框架* java.util.Collection接口,是所有集合的顶级接口,规定了集合所必须的功能* * 集合与数组一样,可以保存一组具有相同类型元素数据结构* 并且提供了对于元素的维护操作(方法)。* 集合有多种不同的数据结构可供日后开发选择使用,使得Java程序能够更加高效、安全地处理集合数据。

2024-07-18 21:13:44 575

原创 为何文档注释如此重要?揭示其背后的好处

在软件开发中,代码是构建应用程序的基石。然而,仅有代码是不够的。随着项目的增长和团队的扩大,代码的可读性和可维护性变得至关重要。这就是文档注释发挥作用的地方。本文将深入探讨为什么文档注释对于软件开发如此重要,并揭示其背后的多重好处。

2024-07-15 23:44:05 506

原创 Java核心API——包装类

基本数据类型(如int, float, double, char, boolean等)是直接在栈内存中分配的,它们不是对象,因此不能直接调用对象所拥有的方法。为了克服这个限制,Java为每个基本数据类型提供了对应的包装类,包装类的出现是为了解决8个基本类型不能直接参与面向对象开发的问题。本质上讲就是可以通过包装类让基本类型以"对象"的形式出现。java为8个基本类型提供了8个包装类。其他包装类的类名与基本类型一致,只是首字母大写。

2024-07-14 11:04:33 834

原创 Java核心API——Object类

Object类是所有类的根类,这意味着在Java中创建的每一个类都直接或间接地继承自 Object 类(除了 Object 类本身以外,因为它没有父类)看到这里你或许还是不明为什么要有Object类下面我就详细解释。首先这里就不得不提到Java这门语言让人熟知的特点:面向对象。这也是常人的思维模式,例如当我们看到一个手机时,我们可以立刻识别出它是一部手机,这就是一个对象。手机的外观、品牌、型号、功能等都可以看作是对象的属性或状态。

2024-07-13 20:17:31 886

原创 正则表达式的基于Java的应用

将当前字符串按照满足正则表达式要求的部分拆分,将拆分后的每部分字符串最终以。如果字符串开始就可以出现可拆分项,则拆分出的第一个字符串为空字符串。将当前字符串中所有满足正则表达式的部分替换为给定的内容。如果连续匹配到两个可拆分项,则中间会拆分出一个空字符串。如果末尾拆分出空字符串时,会被【全部忽略】

2024-07-12 10:11:07 1074

原创 正则表达式

正则表达式* 正则表达式用于描述一个字符串的格式* 主要任务:验证一个实际字符串内容是否符合格式要求(有效性不验证)* 比如:手机号、邮箱格式的验证* 基本语法(不止Java有,因此只学习基本语法看懂就行)

2024-07-11 07:54:47 918

原创 Java核心API——String类中的StringBuilder

专门用来修改字符串内容的工具类其提供了对字符串内容编辑的:增删改插的功能StringBuilder内部维护一个可变的char数组,所以修改内容不会创建新的String对象。

2024-07-10 17:13:27 617

车辆管理系统-基于Java简单实现

本Java资源构建了一个完整的车辆管理系统,专注于租车服务。系统通过定义汽车基类及其子类(轿车、客车),实现了车辆的品牌、日租金、车牌号等基本属性,并根据车型不同引入了额外的属性(如型号、座位数)。通过抽象方法实现了计算租金的逻辑,子类根据具体车型重写该方法以适应不同计费规则。系统还包含汽车业务类,管理车辆信息并提供基于品牌、车型、座位等条件的租车服务。最终,通过测试类模拟用户输入,展示不同车型在不同租车天数下的租金计算结果,满足租车业务的多样化需求。 通过参与车辆管理系统Java资源的学习,您将全面掌握面向对象编程原则、设计模式应用、系统架构设计、异常处理、测试调试等关键技能,同时培养良好的编码习惯,为软件开发职业生涯奠定坚实基础。

2024-07-14

空空如也

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

TA关注的人

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