- 博客(96)
- 收藏
- 关注
原创 整理软件开发环境
当前比较麻烦的事情是,接触的内容不够多、接触的问题少,下个周,我可能得主动向领导求一些修复bug或者别的技术杂活来做,以更快地融入实际开发。算下来,真正需要熟练掌握的工具其实不超过十项。单个工具的学习曲线并不陡峭,更多是“多用就熟了”。工具只是“术”,真正拉开差距的地方在于“道”。整体来看,工具之间各司其职,链路清晰,没有特别复杂的依赖关系。Windows 宿主机。目标设备 / 虚拟机。
2026-04-26 18:37:12
316
原创 每日一题--C语言指针与内存泄漏:一道小问题的深度复盘
左值 (Lvalue):能站在等号左边,说明它有家(有持久的内存地址)。如str变量本身。右值 (Rvalue):只能站在等号右边,是个过客(临时值或字面量)。如&str的结果、常量10。理解这一点,能帮助我们更好地理解为什么&str可以传参给char **p(因为它的结果是一个地址,是一个右值,但指向的是一个左值)。
2026-04-14 22:07:36
245
原创 从 .c 到可执行文件:深入理解编译、Makefile 与链接库
概念核心比喻关注点Makefile工地施工图纸时间戳、依赖、自动化.c -> .o翻译并盖章的单页合同预处理、编译、汇编模块化拆分乐高积木说明书与零件.h声明、.c实现、解耦静态链接自带便当文件大、独立运行动态链接去食堂刷卡吃饭文件小、依赖环境。
2026-04-13 22:56:59
321
原创 每日一题--关于转向的思考
站在职业的十字路口,离职后的这几个月,焦虑与反思并存。作为一名2025届软件工程的毕业生,我面临着Java后端市场极度内卷(且受AI冲击预期强烈)与嵌入式领域入门壁垒高(面试机会少)的双重挤压。转行嵌入式,我需要做哪些立竿见影的准备?我的主攻方向到底是什么?在缺乏硬件经验的情况下,我的预期管理和话术包装该如何调整?对于我来说,最差的情况不是没学深,而是用浅薄的Java知识去对抗衰退的行业周期。既然Java没有深挖,嵌入式也没有深挖,那么在起点相近的情况下,
2026-04-12 21:52:35
327
原创 算法题解记录--142环形链表2
为什么快慢指针一定能相遇?如果把环想象成圆形跑道,快指针比慢指针快1步,相当于快指针在追慢指针,每次接近1步,必然相遇。为什么第二次相遇点就是环入口?数学推导证明了:头节点到环入口的距离 = 相遇点到环入口的距离。这个问题的启示看似简单的链表问题,背后蕴含着深刻的数学原理。快慢指针不仅解决了"是否有环"的问题,通过数学推导还能精确定位环的入口,展现了算法之美。如有疑问,可评论或联系,看到会回复。
2026-03-09 20:02:46
177
原创 每日一题--JVM线程分析与死锁排查
代码层面:存在死锁,线程互相等待对方释放锁线程池配置:最大线程数无限制,导致线程无限创建内存层面:每个线程占用约1MB栈内存,线程数激增耗尽内存异常处理:捕获OOM异常,进程未退出,但服务已不可用这次问题排查让我深刻理解了线程状态与资源占用的关系运行中的线程→ 占用CPU等待中的线程→ 占用内存但不占用CPU死锁的线程→ 永久等待,内存被持续占用JDK工具是Java开发者的"瑞士军刀",掌握它们能让我们在遇到问题时快速定位根因,而不是靠猜测重启。最后的小技巧。
2026-02-25 09:17:10
399
原创 算法题解记录--155最小栈
这道题的关键在于如何在常数时间内获取最小值。使用辅助栈的方式非常巧妙,利用了栈的“后进先出”特性,保证了最小值的同步更新。这是一个典型的“空间换时间”的优化策略,也是面试中非常经典的问题。如果你有更好的解法或者不同的思路,欢迎在评论区留言交流!
2026-02-24 15:39:46
426
原创 算法题解记录--79单词搜索
这道题让我更深入地理解了DFS + 回溯的应用场景;剪枝优化在实际题目中非常重要,尤其是在数据量大的情况下;对于这种路径搜索问题,visited和回溯是关键,不能省略;如果题目允许重复使用单元格,问题会简单很多,但本题不允许,所以必须小心处理。
2026-02-24 09:55:04
417
原创 每日一题--JVM内存溢出分析
内存区域溢出类型关键参数触发方式堆OOM-Xmx创建大量对象并持有引用方法区/常量池OOM-Xmx不断 intern 字符串虚拟机栈SOF-Xss无限递归直接内存OOM使用 Unsafe 分配内存理解 JVM 内存结构是排查 OOM 的基础。通过合理设置 JVM 参数,我们可以快速复现各种内存溢出场景,从而更好地理解其触发机制。在实际开发中,建议结合监控工具(如 JVisualVM、Arthas)对内存使用进行实时分析,提前发现潜在风险。
2026-02-23 20:45:57
793
原创 算法题解记录--239滑动窗口最大值
为什么存下标不存值?需要判断元素是否还在窗口内(通过下标和 i-k 比较)通过下标可以快速获取元素值为什么用双端队列?需要从队首移除过期元素需要从队尾移除比新元素小的元素需要从队尾添加新元素单调队列的本质维护一个"候选最大值"的序列新元素会"干掉"所有比它小的旧元素队首永远是当前最强选手。
2026-02-21 14:41:43
904
原创 算法题解记录-560和为k的子数组
我们定义一个数组pre,其中pre[i]表示从nums[0]到nums[i-1]的和。那么子数组nums[i..j]的和 =。方法时间复杂度空间复杂度说明暴力枚举O(n³)O(1)不可行前缀和 + 双重循环O(n²)O(n)可能超时前缀和 + 哈希表O(n)O(n)✅ 最优解用空间换时间,通过哈希表快速查找目标前缀和。这道题是“前缀和”类题目的经典代表,也是面试中高频出现的题目之一。LeetCode 525. 连续数组LeetCode 974. 和可被 K 整除的子数组。
2026-02-20 17:13:52
323
原创 算法题解记录-2452距离字典两次编辑以内的单词
这道题属于典型的“模拟 + 逐位比较”类问题,逻辑清晰,适合作为字符串基础练习。关键在于理解“两次编辑”的限制,并将其转化为逐位差异计数的思路。如果你有更好的解法(比如使用字典树优化),也欢迎在评论区交流!欢迎关注我的博客,持续更新 LeetCode 题解与算法笔记。
2026-02-19 20:19:20
383
原创 算法题解记录-416分割等和子集
dp[i][j]表示:从数组的[0, i]这个子区间内挑选一些正整数,每个数只能用一次,是否存在一个子集的和等于 j。问题转化能力动态规划思想空间复杂度优化从超时的回溯,到可接受的记忆化搜索,再到高效的动态规划,每一步优化都体现了算法设计的精髓。掌握这类问题的解法,对理解背包问题很有帮助。
2026-02-19 16:17:23
713
原创 算法题解记录-51N皇后问题
回溯法的核心:尝试 -> 检查 -> 递归 -> 回溯对角线判断技巧主对角线:行-列值相等副对角线:行+列值相等数据结构选择:使用数组而不是列表可以更高效地检查和更新状态剪枝优化:在放置皇后前检查冲突,避免无效递归。
2026-02-04 10:36:23
411
原创 算法题解记录-114二叉树展开为链表
方法一(先序遍历存储)思路直接,适合初次理解和实现。方法二(原地展开)不需要额外空间,是更优的解法,但理解上需要一些思考。在实际面试中,建议先解释方法一,然后引出方法二并说明其空间优势,体现思考的深度。
2026-01-22 19:58:33
282
原创 算法题解记录-131分割回文串
回溯框架:每一步尝试一个切割点,递归处理剩余部分,回溯时撤销选择。剪枝优化:只有当前子串是回文时才继续递归,避免无效搜索。结果收集:在递归到底(即)时,将当前路径加入结果集。回文判断:使用双指针法判断子串是否为回文,避免重复计算。本题是典型的回溯 + 剪枝问题,通过构建决策树来枚举所有可能的分割方式,并通过回文判断提前剪枝,有效减少了搜索空间。掌握这种“尝试-回溯”的思维模式,对解决类似组合、分割、排列问题非常有帮助。
2026-01-16 20:34:27
395
原创 算法题解记录-22括号生成
回溯法本质:尝试所有可能路径,遇到无效路径立即回退决策树思维:将构造过程可视化为一棵树,每个选择是一个分支剪枝优化:在构造过程中就排除无效路径,避免不必要的计算卡特兰数:有效括号组合的数量由卡特兰数给出,这是组合数学中的一个经典序列。
2026-01-15 16:15:15
312
原创 算法题解记录-208实现Trie前缀树
节点设计是关键isEnd标记 +children数组根节点是虚拟节点:不存储字符,只作为起点插入时建路径:按字符逐层创建或复用节点查找时走路径:路径存在 +isEnd标记决定结果。
2026-01-12 21:08:40
655
原创 Java源代码,JVM:在windows上启动一个JVM项目
一般情况下,我们会在Linux操作系统上启动JVM源码项目,那样子相当更加简单。博主电脑性能较差,开虚拟机性能更差,由此决定在Windows上启动JVM源码项目。有能力的人,最好还是在Linux上启动JVM源码项目,也能够锻炼一些Linux的能力。
2025-08-12 22:15:46
779
原创 Java Date类介绍
Java中的java.util.Date类是Java早期版本中用于表示日期和时间的基本类。内部数据结构中,核心为:其中,transient指无需序列化的属性。
2025-08-05 23:38:09
725
1
原创 计算机组成原理概述(知识点总结)【复习专用】
所谓计算机组成原理概述的知识,主要有3大部分,第一是计算机的发展历程,第二是计算机的层次结构,第三则是计算机的性能指标。这三大部分,分别指出计算机的由来、核心部件以及核心的评价标准。
2025-02-27 09:56:39
795
原创 算法题解记录31+++下一个排列(百题筑基)
我们可以定义这样的概念,最大序列数组。它表示,在一个数组中,从某个下标k开始,后面的所有数字,都是按照从大到小的顺序,进行组合的。比如【1,3,5,4,2】中的数组【5,4,2】或者另外的【1,4,5,3,2】中的【5,3,2】另外,我们定义这个概念,极小数极小数表示,以最大序列数组的前缀数值(即前一个数)为标准,在最大序列数组中,比前缀数大,但是在最大序列数组中最小的数。有了这两个概念,我们就可以解题了。以上内容即我想分享的关于力扣热题31的一些知识。我是蚊子码农。
2024-09-01 20:47:33
1109
原创 有向图的邻接表实现(Java版)
在无向图中,边没有方向性,就相当于一条公路,你可以来我这,我也可以去你那。然而,现实世界里,有一些通道是单向的,只允许一个方向通过。比如某些工作流程,你必须完成工作A,才能进行工作B。这时候,我们需要用有向边,来表达这些数据。当然,无向图可以看成特殊的有向图。在一张有向图中,可能会有2种情况。第一,顶点存储一些信息,比如用户名、密码、用户作品等等。第二,边存储一些信息,比如用户与用户的亲密程度、距离、长度等等。
2024-08-30 21:17:28
680
原创 算法题解记录30+++乘积最大子序列(百题筑基)
我们定义一种概念,用于理解这些数据。累积量:即从下标i到j中,绝对值最大的数。很明显,对于题目数组,累积量最大为原数组(因为没有0,且绝对值都大于等于1),即 -240在一个数组中,从下标0出发,累积量一定越来越大。所以,可以得到累积量数组为这一步比较复杂。理论上,我们可以定义以下标i开始的,最大的子序列。那么,我们同样可以逆转定义,定义以下标i结尾的,最大的子序列。我们设这个值为imax。这里数组内的定义,是指从0开始,到下标i的子数组。
2024-08-24 22:46:36
1307
原创 图的基本术语【度数、路径、环】
在经过基础数据结构的学习后,我们知道,图结构是四类基础数据结构之一。事实上,图在现代信息社会中非常常用,比如解决地图、搜索引擎、电路、任务调度、商业交易、计算机网络、社交网络等问题。为了解决这些问题,我们需要提前了解一些图的术语。19个基础的图术语,又可以分为3类。我是蚊子码农,如有补充或者疑问,欢迎在评论区留言。
2024-08-03 13:44:09
1872
原创 JVM运行时数据区域(五大内存区划分--堆Heap、虚拟机栈VM Stack、程序计数器Programming Counter、方法区Method Area、本地方法栈Native Method)
本节内容,介绍每个内存的主要功能。程序计数器PC:辅助执行引擎,执行下一条字节码指令。虚拟机栈VM Stack:帮助Java方法的执行。本地方法栈NM Stack:帮助本地方法的执行。【本地方法,即C、C++方法】堆区Heap:管理几乎所有对象实例和数组。方法区Method Area:存储类定义信息。【即,class文件中的信息】我是蚊子码农,如有补充或者疑问,欢迎在评论区留言。
2024-07-28 19:13:24
1077
原创 JVM的基础,class文件的理解(2)
class文件,通常由Java编译器编译得到,用于JVM的工作。我们按功能研究其数据结构。不过,我们首先要知道,class文件用无符号整型表示所有数据。为了方便组织,用多个无符号整型,组成一张表。整个class文件,本质上就是一张表。我是蚊子码农,如有补充或者疑问,欢迎在评论区留言。
2024-07-06 21:42:24
824
原创 JVM的基础介绍(1)
JVM,即Java Virtual Machine,中文名Java虚拟机。它的作用,就是将我们编写的项目代码,转化为操作系统可以理解的源码,进而在机器上运行。它的突出本领,就是使得代码真正脱离机器,无论是哪种机器,只要实现了JVM,相同的class文件,就能得到相同的运行结果。JVM运行于操作系统上,从操作系统的角度,它是一个普通的进程。而从Java开发者的角度出发,它实现了极好的封装,我们对其不甚了解,只知道它是运行Java项目所必备的工具。尝试来剖析这个神秘的机器。我是蚊子码农。
2024-07-06 16:30:29
684
1
原创 csdn如何建立专栏,并且把已发布的文章,放到专栏里
不会在csdn上建立专栏,管理自己的博客?建立了专栏,不知道该怎么放入文章?本文将一步步带你解决这些问题。我是蚊子码农。
2024-07-03 11:06:24
1666
原创 与码无关:分数限制下,选好专业还是选好学校?
很快,24届高考生就要面对志愿填报的难题。俗话说得好,“3分考,7分报”,报志愿在个人发展中是一个很重要的命题。学校层级【985、211、本科、专科】职业兴趣【医生、教师、军人、警察】专业分类【偏文、偏理】家庭情况【一毕业就要工作吗?我是蚊子码农,如有补充或者疑问,欢迎在评论区留言。
2024-06-22 14:07:31
986
原创 将项目部署到Linux操作系统上,并允许局域网内其它人访问【Centos7系统、IDEA项目部署到Linux操作系统】【项目的部署】
如何将IDEA开发的SpringBoot项目部署到Linux系统上?如何让别人可以访问你的项目?如何在Linux操作系统中安装JRE,使得你的电脑可以成为通用的游戏服务器?如何在你的Linux操作系统中安装MySQL?
2024-06-21 23:33:47
1744
空空如也
c语言函数未调用却执行
2022-12-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅