- 博客(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开发预防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
原创 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
原创 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
原创 34在排序数组中查找元素的第一个和最后一个位置
注意这里找mid的时候,数组是十分容易超出界限的,所以一旦涉及+1或者-1进行前置判断,判断是否会超出界限后再进行。好好好,又是log n那么还有什么说的,非递减顺序排列。
2024-09-11 13:59:50
368
原创 31下一个排列
然后其实还可以优化的代码在check那,这个地方本质就是一个排序,其实sort已经写好了,不过优化空间不大就是了,就是代码量少很多。但是其实过程中调试了很多次,很耗时间,这个方法有点冗杂了。然后还有更好的东西的话,我想是在翻转如果start
2024-09-11 13:58:08
262
原创 30串联所有单词的子串
回溯的作用:回溯的作用是撤销递归中的选择。每次递归进入下一层时,会通过交换操作改变数组的顺序;当递归返回时,通过再次交换将数组恢复到原先的顺序,从而尝试其他可能的排列。递归与交换:递归的每一层都会处理数组的一个位置,交换不同的元素到当前位置,然后递归进入下一层。这种逐步交换和恢复的过程确保了我们能够生成所有可能的排列。回溯关键点:回溯发生在每次递归返回时。交换是生成不同排列的方式,而回溯则是通过再次交换,将数组恢复到之前的状态,以便进行下一次排列尝试。第二种处理排列组合的方法。
2024-09-11 13:54:23
1019
原创 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
原创 Mapper目录的作用
经常在项目中遇见Mapper那么这个Mapper到底是什么意思呢其实呢,Mapper啊就是一个个抽象的接口,看到了吧,没有具体的实现方法,它就是一个接口,但是呢,Mapper其实主要是和数据库操作有关的,它是去实现CRUD的Mapper接口的方法可以通过,注解啊和xml去进行关联的SQL语句代码这种东西举个例子就最直观了嘛写个Mapper的接口啊那么相应的xml
2024-09-05 21:27:16
560
原创 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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人