自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 中的抽象类详解:面向对象编程的重要概念

抽象类是 Java 中实现代码复用和模板设计的重要工具,它通过提供抽象方法和非抽象方法,为子类定义了通用的行为和属性。理解抽象类的特性和使用场景,有助于更好地设计和组织面向对象的程序结构。通过本文的讲解,你应该对抽象类有了更深入的理解。在实际开发中,合理使用抽象类可以提高代码的复用性和可维护性,帮助你构建更加健壮和灵活的系统。

2025-03-08 12:37:25 693

原创 协商 缓存

协商缓存是HTTP缓存机制中的一种,用于在客户端(如浏览器)和服务器之间确认缓存资源是否仍然有效。当客户端再次请求某个资源时,服务器会通过比对资源的标识(如修改时间或唯一标识)来判断资源是否已更新。如果资源未更新,服务器返回304状态码,告知客户端可以继续使用本地缓存;如果资源已更新,服务器返回200状态码,并返回新的资源144。协商缓存是HTTP缓存机制中的重要组成部分,通过Last-Modified和ETag两种方式实现。它在减少网络传输、提升性能、保证资源最新等方面发挥着重要作用。

2025-03-08 12:31:02 312

原创 manus

Manus作为一款前沿的AI智能体平台,通过其创新的设计理念和强大的技术能力,正在为AI任务处理带来新的可能性。无论是金融分析、法律审查,还是自动化开发,Manus都展现出了极高的应用价值。随着其生态的逐步开放,Manus有望成为推动AI智能体技术普及的重要力量。对于技术爱好者和行业从业者而言,Manus不仅是一个工具,更是一个探索AI未来的窗口。期待在不久的将来,Manus能够为更多领域带来革命性的变革。

2025-03-07 08:36:13 633

原创 各类语言的比较

Java:适合复杂的企业级应用,生态系统成熟,学习曲线较陡。Go:适合高性能、高并发的系统,语法简洁,编译速度快。C++:适合对性能要求极高的场景,如游戏开发、嵌入式系统等,但学习难度较大。Python:适合快速开发、数据科学和机器学习,语法简单,学习曲线平缓。选择哪种语言取决于具体的项目需求、性能要求、开发周期和团队经验。

2025-03-04 21:50:25 1081

原创 讲讲越权漏洞

越权漏洞(Insecure Direct Object Reference, IDOR)是指攻击者通过修改请求参数或路径,访问或操作未经授权的资源。

2025-03-04 14:55:27 374

原创 java开发采用jwt

JWT(JSON Web Token)是一种基于JSON的开放标准(RFC 7519),用于在双方之间安全地传输信息。

2025-03-04 14:33:34 658

原创 java开发预防XSS攻击

XSS(Cross-Site Scripting)攻击是指攻击者通过在网页中注入恶意脚本,使其在用户浏览器中执行,从而窃取用户信息、篡改页面内容或进行其他恶意操作。

2025-03-04 14:28:45 663

原创 b树b+树红黑树

B树、B+树和红黑树都是常用的数据结构,广泛应用于数据库、文件系统和内存管理等场景。它们各自有不同的特点和适用场景,下面将逐一介绍。B树(Balanced Tree)是一种自平衡的,主要用于处理大量数据的存储和检索。B树的每个节点可以包含多个键和子节点,这使得它能够有效地减少磁盘I/O操作。

2025-03-03 20:19:13 299

原创 使cache命中率最高的算法是?

使缓存命中率最高的算法通常取决于特定的应用场景和缓存的访问模式。

2025-03-02 12:02:50 518

原创 List remove第一个元素之后后面的元素会移动吗?

答案:取决于 List 的底层实现,但如果是基于数组的实现(如 Java 的 ArrayList 或 Python 的 list),移除第一个元素后,后续元素会向前移动。数组实现的 List 使用连续的内存空间存储元素,元素在内存中是紧挨着的。当移除第一个元素(索引 0)时,为了保持数组的连续性,后续元素需要整体向前移动一位,填补被移除元素留下的空位。实际使用中(如 Java 的 ArrayList、Python 的 list),通常是指数组实现,所以后续元素会移动。

2025-03-02 12:01:03 966

原创 阻塞和非阻塞网络io有什么区别,分别有哪些应用场景?

当程序执行读取或写入操作时,如果数据暂时不可用(比如从网络接收数据),那么该程序将被挂起,直到操作完成。这种模式下,线程在等待I/O操作完成期间不能执行其他任务。

2025-03-02 12:00:07 409

原创 Hash map =new HashMap(50)这个过程中map进行了几次扩容?

在 Java 中,当你创建一个HashMap这个构造函数表示你想要一个初始容量为 50 的HashMap。Java 默认的负载因子(load factor)是 0.75,意味着当HashMap中的元素数量超过容量的 75% 时,HashMap会进行扩容。

2025-03-02 11:57:25 188

原创 https能否抵御重放攻击?

HTTPS(HyperText Transfer Protocol Secure)是一种基于HTTP的协议,通过TLS/SSL(Transport Layer Security/Secure Sockets Layer)提供加密通信,确保数据的机密性、完整性和身份验证。这些特性对防御某些攻击(如窃听、篡改)非常有效,但重放攻击的防御需要额外机制,因为重放攻击并不需要解密或篡改数据,而是直接“重播”原始数据包。高敏感场景(如转账)通常加入时间戳、nonce、序列号,甚至硬件安全模块(HSM)来防重放。

2025-03-02 11:56:44 1047

原创 无法保证每趟排序至少能将一个元素放到最终位置上的算法是?

举个例子:数组 [5, 4, 3, 2],第一轮分成 [5, 4] 和 [3, 2],合并成 [4, 5] 和 [2, 3]。举个例子:数组 [5, 4, 3, 2, 1],第一趟挑出 1,放到开头,变成 [1, 5, 4, 3, 2],1 已经到最终位置了(排序完是 [1, 2, 3, 4, 5],1 在第一个)。举个例子:数组 [5, 4, 3, 2, 1],第一趟比较+交换后变成 [4, 3, 2, 1, 5],5 已经到它最终位置了(排序完是 [1, 2, 3, 4, 5],5 在最后一个)。

2025-03-02 11:52:50 814

原创 简历制作网站

登录进去选择模板即可,也是可以去自定义修改,下载也是免费的,无任何收费和广告,我觉得还不错,也有各类型的一个模板。扫码登录即可,这个网站的简历比较文艺,然后也比较简约没有什么收费,模板的颜值也不错。今天来分享几个好用的免费简历制作网站。

2025-02-25 21:04:29 233

原创 jdk为17时报错不支持版本jdk5

当然可以!下面是 JDK 7 和 JDK 8 中 的数据结构对比,以及相关代码示例。JDK 7 的 使用了 分段锁(Segment Locking) 的机制,数据结构如下::一个 数组,每个 是一个独立的哈希表。:每个 内部维护一个 数组,存储键值对。:每个 是一个链表节点,用于处理哈希冲突。(2) 图示锁粒度:每个 独立加锁,写操作时锁定一个 。内存开销: 数组和 数组增加了额外的内存开销。2. JDK 8 的 数据结构(1) 核心结构JDK 8 的 抛

2025-02-23 12:46:19 184

原创 JDK7 JDK8对比

当然可以!下面是 JDK 7 和 JDK 8 中 的数据结构对比,以及相关代码示例。JDK 7 的 使用了 分段锁(Segment Locking) 的机制,数据结构如下::一个 数组,每个 是一个独立的哈希表。:每个 内部维护一个 数组,存储键值对。:每个 是一个链表节点,用于处理哈希冲突。(2) 图示锁粒度:每个 独立加锁,写操作时锁定一个 。内存开销: 数组和 数组增加了额外的内存开销。2. JDK 8 的 数据结构(1) 核心结构JDK 8 的 抛

2025-02-23 12:38:37 268

原创 deepseek给我出的面试题,你能写多少?

以下是针对您的项目经历和技能整理的面试题目,分为。

2025-02-22 23:26:38 656

原创 picgo图床快速查错

那样就不用忙试了,这个用于去其它软件也是百试不灵,就看日志就完啦兄弟们!关于Picgo这个软件其实是有一个日志的,所以我们没必要看啥文章查错。就很明显就看出来是啥了吧,成功了,至于失败的也直接丢gpt。就这个东西,一点开日志文件。

2025-02-22 23:22:00 279

原创 Forest:一款极简的声明式HTTP调用API框架

那今天介绍的这款轻量级的 HTTP 客户端框架 Forest,正是基于 Httpclient和OkHttp 的,屏蔽了不同细节的 HTTP 组件库所带来的所有差异。使用 HttpURLConnection 发起 HTTP 请求最大的优点是不需要引入额外的依赖,但是使用起来非常繁琐,也缺乏连接池管理、域名机械控制等特性支持。

2025-02-22 23:18:00 256

原创 Go依赖管理

这种结构在Go项目中较为少见,通常用于大型项目,其中不同的模块可能需要不同版本的依赖,或者需要更细粒度的依赖管理。但是当时间过的够久之后,你又添加了一个业务C,C同时依赖a这个依赖,但是C依赖的是a最新的版本,所以呢,正常运行的时候去拉取依赖的时候发现本地有,所以就不会去拉取最新版本的了,导致不能正常运行从而报错。go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。通常情况下,一个Go项目只有一个模块,即只有一个。

2024-11-05 16:59:23 388 1

原创 36有效的数独

3.这个就需要先框定一个界限起始点的行+3,列+3的范围,然后遍历9个看是否有重复元素。(img-Mkd3oSJi-1726034445949)]实际上最大的程度如果是这个样子的话可以接受,不太考虑算法,只关注与具体实现。哇当思路清晰,把步骤去给拆分后,所有这些问题都开始瓦解了,一遍过。1.对于一个for循环九次循环,判断数组里面是否有该元素。这个题目,看着略微头大,但是应该还是不难。那么这样的话遍历一个格子时间复杂度大概在。2.一个for循环九次看数组中。

2024-09-11 14:01:03 514

原创 35搜索插入位置

全都是二分法,我觉得可能数组最难就这了?这就是相当没意思了吧。

2024-09-11 14:00:28 176

原创 34在排序数组中查找元素的第一个和最后一个位置

注意这里找mid的时候,数组是十分容易超出界限的,所以一旦涉及+1或者-1进行前置判断,判断是否会超出界限后再进行。好好好,又是log n那么还有什么说的,非递减顺序排列。

2024-09-11 13:59:50 368

原创 32搜索旋转排序数组

这个题目一旦想到logn那么就是和二分法,折半法,还有归并靠齐。这个题很显然用二分最好了,将其划分为两个区域。

2024-09-11 13:59:21 155

原创 31下一个排列

然后其实还可以优化的代码在check那,这个地方本质就是一个排序,其实sort已经写好了,不过优化空间不大就是了,就是代码量少很多。但是其实过程中调试了很多次,很耗时间,这个方法有点冗杂了。然后还有更好的东西的话,我想是在翻转如果start

2024-09-11 13:58:08 262

原创 30串联所有单词的子串

回溯的作用:回溯的作用是撤销递归中的选择。每次递归进入下一层时,会通过交换操作改变数组的顺序;当递归返回时,通过再次交换将数组恢复到原先的顺序,从而尝试其他可能的排列。递归与交换:递归的每一层都会处理数组的一个位置,交换不同的元素到当前位置,然后递归进入下一层。这种逐步交换和恢复的过程确保了我们能够生成所有可能的排列。回溯关键点:回溯发生在每次递归返回时。交换是生成不同排列的方式,而回溯则是通过再次交换,将数组恢复到之前的状态,以便进行下一次排列尝试。第二种处理排列组合的方法。

2024-09-11 13:54:23 1019

原创 28找出字符串中第一个匹配项的下标

【代码】28找出字符串中第一个匹配项的下标。

2024-09-11 13:53:42 199

原创 27移除元素

【代码】27移除元素。

2024-09-11 13:53:07 112

原创 26 删除有序数组中的重复项

检查边界条件:如果输入数组为空,则直接返回0。双指针法:使用两个指针i和j来遍历数组。j指针用于记录当前不重复元素的位置,而i指针用于遍历整个数组。遍历数组并去重:当nums[i]与nums[j]不相等时,说明遇到了一个新的不重复元素,将其放到j的下一个位置。返回结果:最后返回j + 1,即数组中不重复元素的数量。通过对上述算法的学习,我们不仅能有效解决“移除数组中的重复项”这一具体问题,还能从中领悟到如何利用双指针法来简化操作、提高效率等基础但强大的技巧。

2024-09-11 13:51:55 136

原创 25K 个一组翻转链表

反复检查发现第一个大循环到第二次大循环的连接没有连接上,没有什么很好的方案。这个题目很自然的我就直接想到了模拟。随即出现了下面的代码。

2024-09-11 13:50:05 253

原创 24两两交换链表中的节点

【代码】24两两交换链表中的节点。

2024-09-11 13:49:34 336

原创 Mapper目录的作用

经常在项目中遇见Mapper那么这个Mapper到底是什么意思呢其实呢,Mapper啊就是一个个抽象的接口,看到了吧,没有具体的实现方法,它就是一个接口,但是呢,Mapper其实主要是和数据库操作有关的,它是去实现CRUD的Mapper接口的方法可以通过,注解啊和xml去进行关联的SQL语句代码这种东西举个例子就最直观了嘛写个Mapper的接口啊那么相应的xml

2024-09-05 21:27:16 560

原创 2024XYCTFwp

xyctf wp

2024-09-05 19:57:05 120

原创 IT程序员常去的论坛、社区、网站有哪些?

简介:成立于1999年3月,是中国最大的软件开发人员网站,社区内有大量热心高手,尤其是在悬赏积分制度的推动下,论坛氛围活跃。简介:以数据库技术讨论闻名的论坛,是一个广受欢迎的IT技术社区,前身为Oracle小组,现涵盖更广泛的IT话题。简介:一个面向开发者的技术社区,内容涵盖前端、后端、移动开发等领域,用户可以在这里分享技术文章、问题和想法。简介:中国最大的开源技术社区,提供了大量的开源项目资源,并且是程序员们交流开源技术的好地方。

2024-09-04 18:45:01 3179

原创 23合并 K 个升序链表

这个题目我最开始看就回想两个有序链表的排序,但是如果这样排,那要排k次,每次排序还有相应时间复杂度,工程量之大,相当恐怖。最小堆,非子叶节点小于子叶节点,可以导致根节点是最小的,那么我们只需要把所有数据全部插入最小堆,然后一一删去根节点即可。注意这个offer方法是把数组头结点放在最小堆,而不是把整个数组放进去。如果想直接全部放进去就在第一个循环里面改成pq.add(list)即可。第二种这个直接用了最简单粗暴的,但是说实话还是有点难度的。poll方法是挑出最小的那个堆节点。当然也可以直接放进去。

2024-09-04 18:25:14 466

原创 22括号生成

那么思路如下,如果括号是左括号,丢进去,然后如果是又括号,那么就要考虑前面,那么可以用到stack的push和pop方法。这里我出了点问题,就是把那个list去变成了局部变量所以呢。首先它题目里面只给我们一个n然后那么我们栈空间需要2n。但是在java里面并没有这个样的函数,至少我还不知道。看到有关括号匹配括号生成我们自然而然想到了,栈。n>=1

2024-09-04 18:24:43 219

原创 21合并两个有序链表

两种解法我最开始想的是第二种。

2024-09-04 18:23:17 231

原创 20括号匹配

那么Java里面的栈具体是什么我这个还不太清楚。一直忘了括号匹配是用什么后面想起来是用栈。

2024-09-04 18:22:44 115

原创 19删除链表的倒数第 N 个结点

这个题目主要是去学习链表ListNode。

2024-09-04 18:22:13 106

空空如也

空空如也

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

TA关注的人

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