- 博客(978)
- 资源 (1)
- 收藏
- 关注
原创 java里接口和抽象类区别
在 Java 中,接口用于定义行为和契约,适合描述不同实现间的共同行为特性,具有更好的灵活性和扩展性。而抽象类更适合在需要共享代码或提供部分实现的情况下使用。对于 RPC 接口,使用接口的优势体现在灵活性、解耦性以及与代理机制的配合上,使它成为首选。
2024-09-24 08:58:57
356
原创 1143. 最长公共子序列
是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。最长公共子序列是 "ace" ,它的长度为 3。最长公共子序列是 "abc" ,它的长度为 3。两个字符串没有公共子序列,返回 0。是这两个字符串所共同拥有的子序列。,返回这两个字符串的最长。
2024-09-19 22:29:22
328
原创 64. 最小路径和
请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。因为路径 1→3→1→1→1 的总和最小。每次只能向下或者向右移动一步。给定一个包含非负整数的。
2024-09-09 22:15:15
361
原创 295. 数据流的中位数
/ 返回 1.5 ((1 + 2) / 2)是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。返回到目前为止所有元素的中位数。以内的答案将被接受。
2024-08-23 23:23:27
476
原创 394. 字符串解码
你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数。给定一个经过编码的字符串,返回它解码后的字符串。,表示其中方括号内部的。
2024-08-16 20:11:27
355
原创 4. 寻找两个正序数组的中位数
合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。合并数组 = [1,2,3] ,中位数 2。请你找出并返回这两个正序数组的。的正序(从小到大)数组。算法的时间复杂度应该为。
2024-08-14 22:15:37
451
原创 cookie和session的区别
特性 | Cookie | Session || **存储位置** | 客户端(浏览器) | 服务器 || **存储容量** | 限制为 4KB 左右 | 服务器资源决定 || **安全性** | 容易被查看和篡改 | 相对安全,数据不暴露在客户端 || **生命周期** | 持久化或会话级别 | 会话级别,或服务器设置的超时时间 || **使用场景** | 跨会话保持状态,不敏感的数据 | 需要更高安全性、敏感数据 || **跨域问题** | 受限于创建的域 | 无跨域问题 |
2024-08-13 09:06:01
581
原创 http里重定向和转发有啥区别
1. **发起新请求**:- **重定向**:客户端会发起第二次请求,涉及两次HTTP请求。- **转发**:服务器内部完成,没有发起新的HTTP请求,只有一次请求。2. **URL变化**:- **重定向**:浏览器地址栏会更新为新的URL。- **转发**:浏览器地址栏不会改变,用户看到的还是原来的URL。3. **应用场景**:- **重定向**:用于用户在不同页面之间跳转,尤其是跨域或者跨服务器的跳转。
2024-08-13 09:02:25
1122
原创 http不同类型方法的作用,get和post区别
RESTful API是一种基于**Representational State Transfer**(REST)架构风格的Web服务接口设计方法。REST由Roy Fielding在2000年的博士论文中首次提出,是一种轻量级的、基于HTTP协议的API设计风格。RESTful API通过使用HTTP的标准方法来执行各种操作,如GET、POST、PUT、DELETE等,使得Web服务更加简单和可扩展。
2024-08-09 09:10:08
1533
原创 HTTPS链接建立的过程
HTTPS(HyperText Transfer Protocol Secure)建立链接的过程主要是通过TLS(Transport Layer Security)协议来实现的。
2024-08-08 09:10:36
3891
原创 tcp和udp区别,tcp拥塞控制算法和粘包问题
**TCP**和**UDP**是两种常见的传输层协议,各有优缺点,适用于不同的场景。- **TCP的拥塞控制算法**包括慢启动、拥塞避免、快速重传和快速恢复,以防止网络过载。- **TCP的粘包问题**是由于数据流式传输造成的,可以通过固定长度消息、消息头加长度字段、特殊分隔符等方法解决。
2024-08-07 08:48:35
989
原创 tcp三次握手和四次挥手
2. **第二次挥手**:服务器收到FIN包后,回应一个ACK(确认)包,确认客户端的FIN包,并进入**CLOSE_WAIT**状态。- 在两次握手的情况下,客户端在发送SYN包后,收到服务器的SYN-ACK包后,立即假设连接建立成功,但此时客户端无法确认服务器是否已经接收到了客户端的SYN包以及是否准备好接收数据。客户端在**TIME_WAIT**状态下会等待一段时间(通常是2倍的MSL,即最大报文段寿命),确保所有的数据包都能传输完毕,然后才进入**CLOSED**状态。
2024-08-06 21:21:27
831
原创 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为。
2024-08-06 21:11:50
346
原创 java里CMS(Concurrent Mark-Sweep)和G1(Garbage First)垃圾回收器区别
CMS(Concurrent Mark-Sweep)和G1(Garbage First)是两种不同的Java垃圾回收器,它们有着不同的设计目标和实现方式。下面详细解释它们的区别。
2024-08-05 23:06:54
916
原创 23种设计模式(持续更新中)
参考链接,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。、外观(门面)模式、组合模式、享元模式。,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、状态模式、命令模式、备忘录模式、访问者模式、中介者模式、解释器模式。ps:标红为常用模式,其余不常用。常用的也就4+4+6=14种模式。
2024-08-04 15:41:53
765
原创 Comparator比较逻辑
/ 降序排序 Collections.sort(list, (a, b) -> b.val - a.val);如果b-a,返回时是true,那a在b后面,就是2在5后面,就是降序了。如果是a-b,返回值不是true,所以a不在b后面就是升序。就是return true了,就是a在b后面。所以a-b还是b-a怎么记忆升序降序呢。比如a=2,b=5.
2024-08-03 21:00:28
168
原创 208. 实现 Trie (前缀树)
是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。// 返回 False。// 返回 True。// 返回 True。// 返回 True。(发音类似 "try")或者说。
2024-08-02 19:41:20
364
原创 994. 腐烂的橘子
左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,因为腐烂只会发生在 4 个方向上。直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。因为 0 分钟时已经没有新鲜橘子了,所以答案就是 0。的新鲜橘子都会腐烂。
2024-07-29 22:20:50
469
原创 124. 二叉树中的最大路径和
被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中。最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42。最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6。节点,且不一定经过根节点。是路径中各节点值的总和。给你一个二叉树的根节点。
2024-07-27 11:27:43
286
原创 Leetcode 543. 二叉树的直径
3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。这条路径可能经过也可能不经过根节点。是指树中任意两个节点之间最长路径的。给你一棵二叉树的根节点,返回该树的。由它们之间边数表示。
2024-07-22 22:50:20
282
原创 Leetcode 438. 找到字符串中所有字母异位词
换种思路,其实比较abc和bac是异位词,不需要完全排序,只要它们对应字符一样就可以判定是一样的,比如a都出现1次,b都出现1次,c都出现1次。用这种思路判断,不用排序。本来计划用排序的方式,超时了。
2024-06-16 16:49:24
283
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人