自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 笔记四:接雨水

按左边的高度来计算,此时接到的雨水量为。按右边的高度来计算,此时接到的雨水量为。1.元素入栈,当栈顶元素 height[stack.peek( )] 小于等于即将入栈的元素 height[i] 时,出栈一个元素(不出栈,两个相邻的柱子无法接雨水),如果出栈后栈为空,此时无法构成矩形(缺边了),break;2. 如果栈不为空,矩形右边的宽为 height[ i ] - height[ pop ],矩形左边的宽为 height[peek] - height[pop] , 因此。

2023-09-30 21:43:44 64

原创 LeetCode 笔记三:哈希

3. 如果不存在比当前数字小一的数字,那么表明我们找到了连续序列中的最小值,此时在 HashSet 中寻找是否存在比该数字大一的数字,存在则最长序列的长度加一,反之则继续。2. 遍历 HashSet , 如果存在比当前数字小一的数字,则继续(我们的目标是找到连续序列中的最小值);2.哈希表的 value :存放与排序后字符串含有相同字母的字符串序列。1. 遍历数组,将其加入 HashSet 中, 去重;1.哈希表的 key : 存放排序后的字符串。考虑用哈希表来解决此问题。考虑用哈希表来解决问题。

2023-09-29 22:32:21 71

原创 LeetCode 笔记二:划分字母区间

【代码】LeetCode 笔记二:划分字母区间。

2023-09-26 22:28:03 61

原创 LeetCode 笔记一:跳跃游戏

当位于数组下标 i 时,所能到达的最远距离为 i + nums[ i ];遍历数组,维护最远可到达的距离forth,当最远距离 forth >= 数组最后一个元素的下标 ( nums.length - 1) 时,认为可以到达最后一个下标,返回true, 否则返回false;用 maxForth 来记录当前下标 i 所能到达的最远距离,用 forth 来记录选择某一下标为起跳点的跳跃边界,当到达跳跃边界时必须跳,故跳跃次数 count 加一, 且更新边界条件 forth;

2023-09-26 21:45:31 104

原创 跨域是什么?怎么解决?

跨域(Cross-Origin)是指在浏览器中,当一个网页的 JavaScript 代码试图访问不同域名、不同端口或不同协议的资源时,就会发生跨域问题。浏览器的同源策略(Same-Origin Policy)限制了跨域请求。同源策略是一个重要的安全机制,它要求网页只能访问与其自身来源(包括协议、域名和端口号)相同的资源,而不能直接访问其他来源的资源。需要注意的是,跨域问题只存在于浏览器端,不影响服务端之间的直接通信。如果在后端代码中进行跨域请求,则不会受到同源策略的限制。

2023-09-26 15:22:55 30

原创 什么是ThreadLocal?

如果ThreadLocal没有被正确地清除,可能会导致长时间运行的线程持有对应的局部变量,而无法被垃圾回收。因此,在使用完ThreadLocal后,应该调用。需要注意的是,ThreadLocal中存储的数据只与特定的线程相关,并不具备跨线程传递的能力。每个线程都有自己独立的ThreadLocal实例,操作自己的局部变量值。总之,ThreadLocal是一种方便在多线程环境下管理线程局部变量的机制,能够提供线程隔离和线程安全的支持。ThreadLocal是Java中的一个类,它提供了线程局部变量的支持。

2023-09-23 11:25:38 29

原创 Session是什么?

Session通常用于在多个请求之间存储和共享用户相关的数据,例如用户的登录状态、购物车内容、用户偏好设置等。每当用户发送请求时,他们的Session ID将被包含在请求中,从而使服务器能够检索并加载相应的会话数据。通过使用Session,开发人员可以在不同的页面和请求之间存储临时数据,并实现用户状态的跟踪与管理,从而提高网站的交互性和个性化体验。当用户通过浏览器访问一个网站时,服务器会为每个用户创建一个唯一的会话,并为该会话分配一个唯一的标识符,通常称为Session ID。

2023-09-23 11:08:27 67

原创 什么是CSRF攻击?如何预防?

CSRF攻击,全称为跨站请求伪造(Cross-Site Request Forgery),是一种利用受害者已经登录的身份来发送意请求的攻击方式。攻击者通过诱导受害者访问一个恶意网站或者点击包含恶意代码的链接,来实施CSRF攻击。攻击成功后,恶意网站可以在受害者不知情的情况下,以受害者的身份发送请求给目标网站,从而执行一些非法操作。

2023-09-21 16:57:28 120

原创 如何从存放了10亿个数字的文档中获取最大的10个数,而计算机内存只有1M?

这种方法的优势是只需要维护一个较小的堆,不需要将整个文档加载到内存中。需要注意的是,如果文档过大,无法一次读取到内存中,可以采用类似的分块读取的方法,先读取一部分数字进行堆构建和调整,然后再读取下一部分数字。综上所述,如果计算机内存有限且数据规模不是特别大(可以一次性加载到内存中),那么使用大顶堆的方法可能更好,因为它简单、高效。而如果数据规模非常大,无法一次性加载到内存中,那么外部排序的方法更适合,尽管它可能稍微复杂一些。最终,堆中存储的就是文档中最大的10个数。如果当前堆的大小小于10,直接插入。

2023-09-20 23:04:54 190

转载 Spring 事务失效的 8 种场景!

在日常工作中,如果对Spring的事务管理功能使用不当,则会造成Spring事务不生效的问题。而针对Spring事务不生效的问题,也是在跳槽面试中被问的比较频繁的一个问题。今天,我们就一起梳理下有哪些场景会导致Spring事务生效。

2023-09-12 22:53:09 128

原创 Swagger

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的web服务接口文档,我们可以通过Swagger使用自定义的注解来生成接口文档,方便后期维护,同时,Swagger的接口文档实时更新,可以进行在线测试。

2023-09-10 21:06:38 36

原创 Spring Boot面试题(更新ing)

SpringBoot是一个用于开发和部署Spring应用的框架。它通过提供自动化的配置和快速启动的能力,简化了Spring应用的开发流程。SpringBoot集成了大量常用的依赖,可以快速构建出一个可运行的、独立的Spring应用SpringBoot采用约定优于配置的原则,减少了开发者的配置工作,提高了开发效率。SpringBoot还提供了丰富的可扩展性和可插拔的特性,可以根据需要选择添加或移除组件,使得应用更加灵活和可定制。

2023-09-10 16:31:55 48

原创 阻塞队列(BlockingQueue)详解

阻塞队列是Java并发编程中非常重要的一个工具类,它可以实现多线程之间的协作,提高程序的效率和可靠性

2023-09-09 22:33:11 766

原创 @Reference 和 @Autowired 的区别

当一个接口存在多个实现类的时候,由于Spring会同时找到多个满足条件的选择,默认情况下它不知道选择哪一个,此时@Autowired无法正确注入对象。此时可以通过与@Qualifier配合使用显示指定名称。Spring内置的注解,用于注入Bean,默认的注入方式为byType (根据类型进行匹配),会优先根据接口类型去匹配并注入Bean(接口的实现类)。JDK内置的注解,用于注入Bean,默认的注入方式为byName (根据名称进行匹配),如果无法根据名称匹配到Bean,注入方式会变为byType。

2023-08-14 15:54:42 88

空空如也

空空如也

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

TA关注的人

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