- 博客(79)
- 收藏
- 关注
原创 【Redis】Redis数据类型
有效的字符串类型不仅可以是字符,还可以是数字,以上都是有效的字符串类型。String最大容量为512mb, 建议单个kv不超过100kb。
2024-05-13 09:38:20
198
原创 【JVM】ASM开发
ASM是一个Java字节码操纵框架,它能被用来或者。ASM可以直接产生二进制class文件,也可以在类被加载入虚拟机之前动态改变类行为,ASM从类文件中读入信息后能够改变类行为,分析类信息,甚至能根据要求生成新类。目前许多框架如cglib、Hibernate、Spring都直接或间接地使用ASM操作字节码。
2024-05-11 16:35:22
387
原创 【JVM】阅读Class字节码:常量池
下图是反编译过后的字节码文件中我们找到的常量池的部分。可见常量池数量是从1到52,共52个常量,了解了常量池的数量,接下去我们看整个常量池的内容怎么读,即下图红线部分。
2024-05-11 11:44:38
516
原创 【JVM】Class文件的格式
Class文件是JVM的,Java虚拟机规范中定义了Class文件的结构。Class文件是JVM实现平台无关、技术无关的基础。1:Class文件是一组以8字节为单位的字节流,各个数据项目按顺序紧凑排列2:对于占用空间大于8字节的数据项,按照高位在前的方式分割成多个8字节进行存储class文件就是这些十六进制的字节流。通过javap输出出来的字节码文件,是经过反编译之后适合人阅读的代码。3:Class文件格式里面只有两种类型:无符号数、表。
2024-05-11 10:46:33
379
原创 【JVM】了解JVM规范中的虚拟机结构
Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的(opcode)以及跟随其后的零至多个代表此操作所需参数的(operand)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。操作码一列中的T就跟泛型一样,虚拟机根据不同的数据类型会把T替换掉,提供不同的指令。
2024-05-10 22:00:18
413
原创 【JVM】JVM规范作用及其核心
字节码指令集(相当于中央处理器CPU)Class文件的格式数据类型和值运行时数据区栈帧特殊方法类库异常虚拟机的启动、加载、链接和初始化。
2024-05-10 13:34:23
221
原创 【JVM】从三种认知角度重识JVM
JVM:Java Virtual Machine,也就是Java虚拟机。虚拟机:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统(物理上不存在)。JVM通过软件来模拟Java字节码的指令集,是Java程序的运行环境。
2024-05-10 12:41:49
437
1
原创 Java日期
4. of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond):根据指定的年、月、日、时、分、秒、纳秒创建一个新的LocalDateTime对象。3. of(int year, int month, int dayOfMonth, int hour, int minute, int second):根据指定的年、月、日、时、分、秒创建一个新的LocalDateTime对象。
2024-01-11 10:21:12
961
原创 二分搜索树的删除问题(java详解)
58被删除后寻找58的后继节点替代它,就是58的右子树中的最小值,即59。4)删除左右孩子都有的结点:找d的后继/d的前驱,我们以d的后继为例子。1)删除只有左孩子的结点:以左孩子为根节点的子树替代被删除的节点位置。2)删除只有右孩子的节点:以右孩子为根节点的子树替代被删除的节点位置。最小值:从根节点开始一直向左走直到走不动。最大值:从根节点开始一直向右走直到走不动。3)删除叶子节点:直接删除。
2023-12-06 13:52:33
380
原创 PTA校赛算法题十道java、C++详解
这篇文章是基于我们前不久的校赛写的,校赛给的题解都是C++,我很想写一份完整的java版本,但是能力不够,大家可以看看逻辑,感兴趣的朋友可以写一份java题解在评论区,我替你交一下再来回复你你是不是满分通过了的具体情况。很希望有喜欢刷题的小伙伴和我交流Java版的题解。在我学成归来后,我会把这篇文章出一份完全的java题解。
2023-12-03 11:28:44
1388
原创 有权图的最短路径算法
我们可以用优先队列获得v这个顶点对应的dis值,不再是v这个顶点序号的最小值了。我们的优先队列取出来的是顶点的序号,但比较起来是比较的dis值。松弛操作有方向性,相当于拐个弯到达某个端点是不是比直接到达某个端点更近。此算法在有向图无向图也成立。我们的起始点是固定点,从起始点出发到达其他各顶点的最短路径。,由于大量的应用不依赖负权边,所以这个算法有非常广泛的应用。可以包含负权边,也可以包含负权环。
2023-11-28 20:07:03
745
原创 动态规划算法详解进阶篇
当我们画一个跳楼梯的数组时我们会发现,dp[i]的值只跟dp[i - 1]和dp[i - 2]的值有关,所以我们可以用a,b,c三个变量动态保存dp[i - 1]和dp[i - 2]的值。由dp[i][j] = dp[i-1][j] + dp[i][j-1]画一个二维数组可知,我们计算第i行时只用到了i - 1这一行的数据,所以我们只需要动态利用i - 1这一行的数据就可以了。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。网格的左上角 (起始点在下图中标记为 “Start” )。
2023-11-27 20:53:05
979
原创 动态规划经典例题leetcode思路代码详解
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。这一篇的例题解答是严格按照我上一篇写的动态规划三部曲做的,对动态规划不太了解或者比较感兴趣的朋友可以看我上一篇文章。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。个台阶向上爬需要支付的费用。,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
2023-11-25 17:58:14
1222
原创 动态规划算法详解基础篇
现在我们可以再返回去看斐波那契数列的动态规划版本的代码的注释,加深一下理解。我们要多刷题,通过套路刷,不理解为啥这样套没关系,先会用套路来做。用递归 -----> 优化成状态保存避免重复计算---->看一下能否变成自底向上。2、字符串问题:如果是两个字符串的则95%用动态规划,剩下的5%比较简单。来找出一些规律,进而更好的去规划一些东西,最后可以避免一些重复计算。1、动态规划一般是最优解,并且关注的是时间上的最优解。开始,后面的每一项数字都是前面两项数字的和。1、求最值问题:最大值、最小值。
2023-11-25 11:48:23
460
原创 位运算技巧及leetcode相关例题Java实现
这是快速幂算法来计算幂。它的基本思想是将指数n分解为若干个二进制位,然后根据每一位的值来决定是否将当前的底数m乘到结果中。具体来说,如果n的二进制表示的最后一位是1,则将m乘到结果中;然后将m平方,以便在下一次循环中进行计算。最后,通过不断地将n右移一位(即除以2),直到n变为0为止。最终返回的结果就是m的n次方。那么 m ^ 13 = m^1 * m^4 * m^8 = m ^ 1 * m^100 * m^1000。假设n = 13 = 1101 = 1 + 4 + 8。1)两个数相同,异或的结果为0。
2023-11-21 17:13:53
194
原创 最小生成树
边上的权是附加的额外信息,可以代表不同公路的收费等你需要的信息。最小生成树Kruskal算法同一张图的不同生成树的权值和大小不同,最小生成树就是求权值和最小的生成树。在选最短的边的同时要注意不要和已选的边形成环。如下图,我们成功选了六条边连接了七个顶点,形成了最小生成树。
2023-11-16 12:00:20
159
原创 欧拉回路和欧拉路径
欧拉回路遍历了所有的边,也就意味着遍历了所有的点,但这并不能代表有欧拉回路的地方都有哈密尔顿回路的,如下图的例子。欧拉路径的起始点不能随便选了,只能选取度数是奇数的点。感兴趣的朋友可以自己试着实现欧拉路径的代码实现。
2023-11-14 21:49:48
103
原创 图论问题建模和floodfill算法
floodfill算法是一种图像处理算法,用于填充连通区域。该算法从一个起始点开始,将所有与该点相邻且颜色相同的像素点都标记为同一区域,并继续递归处理该区域的相邻像素点,直到所有相邻像素点都被标记为该区域。该算法通常用于图像处理、计算机图形学等领域中的填充操作,例如对图像中的某个区域进行颜色填充、图形的边界检测等。
2023-11-02 21:42:10
885
空空如也
有人部署过清华大学的ChatGLM-6B模型吗 想知道它安装后使用收不收费
2023-07-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人