自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 每日八股——运行时常量池

内存复用:多个类可以共享常量池中的常量,避免了相同常量的多次存储,提高了内存使用效率。性能优化:常量池使得符号引用在运行时能够快速解析,提高了程序执行效率。静态性:常量池在类加载时就被确定,之后无法修改,因此不适合存储动态生成的内容。内存消耗:过多的常量可能导致内存压力,尤其在没有合理优化的情况下。运行时常量池是 Java 类加载过程中非常重要的组成部分,它不仅能存储字符串常量、数字常量,还能存储符号引用等。

2025-01-14 13:42:25 457

原创 每日力扣刷题

直接模拟,难点在于理清逻辑和字符串的处理。

2025-01-14 10:01:37 207

原创 每日力扣刷题

dp[i]=dp[i-1]+dp[i-2] //两个字符表述的数字大小在区间内。简单来说,我们需要先保留n=1时的格雷码【0,1】,再将其逆转为【1,0】,同时为逆转后的列表中的元素加上前缀,即2^(n-1)次方。每次递归时,都要尝试使用不同的数字作为根节点,构建子树。然后确定动态转移方程,dp[i]=dp[i-1] //当两个字符表示的数字大小会超出26的限制,或者有0。所以 n=2 的格雷码即为 【0,1】+【1+2^1,0+2^1],也就是【0,1,3,2】我们已知 n=1 时,格雷码为【0,1】

2025-01-09 20:55:24 316

原创 每日一些题

题解开始之前,给大家安利一个上班偷偷学习的好搭档,idea中的插件有一个叫 LeetCode with labuladong,可以在idea中直接刷力扣的题目。朋友们上班没事的时候,可以偷偷摸几题。看八股的话,可以用面试鸭,也是idae插件,比较隐蔽。

2025-01-02 16:21:15 551

原创 每日八股——保证线程执行顺序的方法

如何保证线程顺序执行,大多数人脱口而出join方法,下面介绍几种其他的方法。

2024-12-26 14:01:16 831

原创 Jackson中@JsonProperty在groovy和java中的差异

由于没有特别配置 PropertyNamingStrategy,Jackson 使用了默认的大小写转换策略,将 Excess 转为小写的 excess,将 NCD 转为小写的 ncd。这个问题的根本原因在于 Groovy 和 Java 对于类属性的处理存在一些差异,尤其是在处理 字段命名策略 和 注解 的时候。{"ncd":1,"excess":"1","Excess":"1","NCD%":1} //实际执行结果。依然会出现在 JSON 中。执行结果是:{"Excess":"1","NCD%":1}

2024-12-20 13:37:53 459

原创 Liquibase结合SpringBoot使用实现数据库管理

Liquibase 是一个强大的数据库管理工具,它帮助你通过自动化管理数据库的变更、版本控制、和回滚,简化了开发中的数据库迁移工作。通过在 Spring Boot 中集成 Liquibase,可以更高效地管理数据库结构和版本,确保开发团队的协作更加流畅。在项目中,Liquibase 可以和 Git 等版本控制工具配合使用,确保数据库结构变更的透明性和可追溯性。

2024-12-17 11:10:29 1224

原创 力扣——寻找峰值

按照题目当中的条件,数组当中总有一个峰值,传统二分查找依赖数组的全局有序性,而这里利用的是峰值的局部性。然后就想到用二分,但是数组又不一定是有序的。仔细一思考,好像也可以用,关键在于这个峰值的性质。第一想法就是直接遍历,时间复杂度为O(n),肯定超时了。

2024-11-22 14:54:39 403

原创 ShardingSphere——介绍

Apache ShardingSphere 是一个开源的分布式数据库中间件生态圈,可以看作是一个或,它在应用程序和数据库之间,帮助开发者实现一些复杂的分布式数据库管理功能,为用户提供数据分片、分布式事务、数据库治理等功能。它支持通过分片(Sharding)、读写分离、影子库(Shadow Database)等多种方式,帮助开发者优化分布式数据库的操作体验。具体来说,ShardingSphere 是为分布式数据库场景设计的,可以认为它是。

2024-11-21 18:25:01 900

原创 每日一些题

现给定一个二叉树root,要求把二叉树每层的节点向右移k位,最后返回一个右移之后的二叉树。

2024-11-21 17:59:11 374

原创 力扣刷题——最大矩形

好难,想吃顿火锅犒劳自己。

2024-11-20 14:50:00 159

原创 力扣——动态规划

为了避免重复计算路径长度,我们可以使用一个数组,将已经计算过的路径长度保存起来。当我们再次访问到同一个位置时,直接使用之前计算好的结果,而不是重新计算。这将大大降低时间复杂度。使用记忆化搜索将时间复杂度降为 O(m×n),其中 m 和n 是矩阵的行数和列数。仔细思考了一下,主要是做了很多重复计算,那就可以用记忆化搜索来优化。刚开始的思路是直接dfs暴力搜,然后时间超限了。

2024-11-19 14:33:02 549

原创 每日八股——JVM组成

JVM作为Java程序运行的平台,其结构和功能对于深入理解Java程序的运行机制非常重要。通过了解JVM的组成,可以更好地优化程序性能,解决内存问题等。

2024-11-15 18:06:35 914

原创 每日八股——java中的注解原理是什么?

注解的定义类似于接口,通常使用@interface关键字来声明。

2024-11-08 10:05:25 759

原创 随机题两题

给定一个数组,求其中有多少逆序对,要求时间复杂度不超过nlogn。

2024-10-24 16:50:50 372

原创 力扣随机题

每次遍历获取nums[i]的第一个数字,nums[j]的最后一个数字。递归计算每层的和,然后排序获得第k个最大和。判断是否互质,互质则sum++模拟,首先是双重遍历数组。

2024-10-16 23:21:12 529

原创 启动报错:Error running ‘Main‘ Error running Main. Command line is too long.

启动项目时出现下面的报错。

2024-10-15 15:14:03 715

原创 力扣随机题

否则返回 false。如果 input[i-1] == article[j-1] 或者 input[i-1] == '.',表示当前字符匹配,那么 dp[i][j] = dp[i-1][j-1]。我们需要处理 '*' 能否匹配零次的情况。dp[i][j] 表示 input 的前 i 个字符是否可以匹配 article 的前 j 个字符。dp[0][0] 表示空字符串和空字符串是匹配的,因此 dp[0][0] = true。dp[i][j]代表s串的前i个字符里有多少个t子串的前j个字符的子串。

2024-10-14 23:05:05 553

原创 力扣随机题

【代码】力扣随机题。

2024-10-11 23:38:45 368

原创 HashSet、LinkedHashSet 和 TreeSet

HashSet、LinkedHashSet 和 TreeSet 都是 Java 中实现 Set 接口的集合类,它们的主要功能是存储不重复的元素。然而,它们在存储元素的顺序、性能及底层实现上存在显著的不同。下面分别详细讲解每种 Set。

2024-10-11 16:53:52 732

原创 力扣随机题

这里正好讲一下HashSet,LinkedHashSet和TreeSet。看了别人的题解之后我发现,我简直思路太狭隘了,往往最朴素的方法最好用。我的思路是直接遍历,找出所有的三位相同数字,然后找出其中最大的。遍历set集合判断是否失败过,或者失败次数为1,添加进对应的集合。set集合记录所有人,用哈希表记录所有的败者以及失败次数。直接模拟会时间超限,根据公式进行优化。

2024-10-10 23:37:15 502 1

原创 力扣随机题

这就是一道排序题,直接根据公式排序,然后返回对应范围的数组就行了。首先用三个变量模拟斐波那契数列,当数列最大值大于k时终止模拟。遍历集合,从最大值开始,就可以找到最少的数目。

2024-10-08 22:51:14 404

原创 力扣随机一题——所有元音按顺序排序的最长字符串

最近实习有点忙,都没时间刷题了💔。

2024-09-26 22:55:02 335

原创 JWT+双token实现无感刷新

通过 JWT + 双 Token 实现无感刷新,可以提高系统的安全性,并且提升用户体验,减少频繁登录的麻烦。用于快速鉴权,有效期短;用于刷新,有效期长,使用频率低;前端通过拦截响应中的 401 错误,实现无感刷新;

2024-09-25 17:28:12 818

原创 力扣416周赛

剩下两题没做出来,很难评,出这么难,不要命了。

2024-09-24 21:36:56 439

原创 强制类型转换

后续并没有对ent对象进行操作,在 if 块结束后,它的作用域就结束了。因此,从表面上看,这个变量会被销毁,后续代码无法直接访问这个局部变量。那么这段代码有什么作用呢?查阅资料之后我发现了一个被遗忘的知识点。

2024-09-24 11:25:28 435

原创 Mysql数据库实现分布式锁

使用 MySQL 数据库实现分布式锁可以确保在多实例环境中定时任务不重复执行。

2024-09-23 17:53:56 310

原创 AOP实现自动化日志记录,并将日志记录到es中

日志记录: 使用 SLF4J 和 Logback 进行日志记录。AOP: 使用 AOP 记录方法执行时间及相关信息,并将日志发送到 Elasticsearch。Elasticsearch: 使用 Elasticsearch 存储和查询日志,配合 Kibana 实现可视化。优化: 通过引入 AOP,可以实现统一的日志记录逻辑,减少代码重复,方便管理。

2024-09-23 14:40:48 567

原创 java反射学习总结

反射(Reflection)是 Java 提供的一种机制,它允许程序在运行时动态地检查和操作类的属性、方法以及构造函数等信息。反射使得我们可以在编译时不确定类型的情况下操作对象,比如动态地调用方法、访问属性和创建对象实例。反射机制是 Java 强大的动态编程功能之一,它允许我们在运行时检查和操作类的结构信息,这在构建灵活的框架和库时非常有用。然而,反射的使用会带来一定的性能和安全性问题,因此在使用时应尽量避免过度使用。

2024-09-23 11:05:41 947

原创 力扣415周赛

剩下两个题要用前缀树+dp,光用dp做不出来,我没写出来。

2024-09-20 14:46:17 1041

原创 力扣春招100题——队列

这个题组的难度,比原来的难度大多了,写的心碎了,好菜,怎么这么菜。

2024-09-19 17:02:49 602

原创 力扣150题——位运算

位运算(Bitwise Operation)是计算机底层操作中的一种,用来直接对整数的二进制位进行操作。位运算通常速度很快,且消耗的内存较少,在处理一些特定问题(如加密算法、图像处理、低级硬件编程等)时非常有用。

2024-09-18 15:32:53 855

原创 力扣150题——多维动态规划

只需要在上一题的基础上讲k的值化为动态的,并且最后遍历所有的K,找出能达到最大利益的K,并返回最大值。用dp[i][j]代表s1的前i个字母和s2的前s2个字母能否交错组成s3的前i+j-1的子串。

2024-09-18 13:35:08 505

原创 力扣100题——杂题

是 Java 中一个实现了Map接口的类,它结合了HashMap和链表的特性,提供了一个有序的映射。至此,也赶在中秋节放假之前完成了力扣100题,撒花撒花。

2024-09-14 15:16:35 1474

原创 力扣100题——二维动态规划

用dp[i][j]代表text1前i个字符和text2前j个字符的最长公共子序列长度。思路和上一题差不多,只不过状态转移方程略有不同。

2024-09-14 14:01:46 737

原创 深信服笔试算法题

大概意思是说输入几个会议的开始时间和结束时间,判断最少需要几个会议室。

2024-09-14 10:17:53 277

原创 力扣100题——技巧

这些题目对我的智商不太友好。

2024-09-13 17:23:40 821

原创 力扣100题——动态规划(二)

但是提交上去错误了,问题在于没有考虑到负数这个因素,如果数组中有负数那么此时最大值和最小值会进行反转。确定状态转移方程,当j<i时,d[i] = d[j]&&wordDict.contains(s.substring(j, i))使用dp数组记录当前下标对应的字符串长度能否被正确划分。这题目更适合用栈来写,思路和代码都会清晰一点。按照常规的动态规划思路来做这题的话。

2024-09-13 14:03:37 1255

原创 力扣sql50题——聚合函数

主要是要了解ifnull,round,between and这几个函数的用法。这道题很简单,只需要满足两个条件,最后对结果按rating进行降序。重点在于掌握函数,然后理清思路,按照题目要求限制条件即可。只要指导where和order by的用法,就可以解决。

2024-09-12 21:34:54 291

原创 力扣100题——动态规划

因为不能偷相邻的房子,所以dp[i] = max( dp[i-1] ,dp[i-2]+nums[i])根据题目找出状态转移方程,使用dp数组保存记录,dp[i]即为当前偷的最大值。动态规划关键在于写出状态转移方程,根据题目的意思每次能上一个台阶或两个台阶。根据题目给出的状态转移方程直接模拟实现,优化思路在于。

2024-09-12 15:40:27 1186

空空如也

空空如也

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

TA关注的人

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