自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员小航

公众号:『 程序员小航 』

  • 博客(134)
  • 资源 (1)
  • 收藏
  • 关注

原创 我用 AI 写了一个能自动生成文章摘要的 Hexo 插件

以及参考张洪的博客 https://blog.zhheo.com/ 发现这个 AI 摘要,但是不支持 Front Matter 注入,也不支持自定义模型,所以就开发了这个插件。项目已在 GitHub 开源,https://github.com/liuzhihang/hexo-generator-ai-summary ,欢迎大家提 PR 和 Issue。智能摘要生成:基于 DeepSeek 自动分析文章语义,支持指定 API 以及模型生成摘要,支持使用本地模型。风格不一:技术文章与随笔摘要混用相同模板。

2025-03-29 12:57:51 614

原创 Follow

This message is used to verify that this feed (feedId:68574439826647040) belongs to me (userId:67206382581823488).

2024-10-14 16:55:01 143

原创 Halo-Theme-Hao文档:如何设置导航栏?

暂时没有办法进行取消,这里与主题无关,如果需要取消,建议创建一个空菜单,然后选择空菜单即可。不仅仅可以对主菜单设置图标,还可以对左上角导航设置,可以参考下面教程进行配置。版本>=1.3.2起,顶部菜单理论支持无限级,并且可自由配置菜单的显示方向。选择 Font class,找到自己喜欢的图标,复制名字即可,注意名字不带。在创建菜单时,可以选择设置图标,图标格式为。可以通过拖拽调整缩进,从而创建子菜单。主菜单即网站导航栏中间部分的菜单。设置成你刚刚新建的菜单即可。本篇文章会教你如何配置。,最终效果参考如下。

2023-10-16 22:29:37 1691

原创 260. 只出现一次的数字 III

现在数组中只有两类数:x 位为 0 的,和 x 位为 1 的,并且这两个不同的数的 x 位还不同。假如第 x 位异或的结果为 1,即所有数的 x 位异或结果为 1。最后问题拆解为 136.只出现一次的数字。明确那两个数肯定不同,所以肯定有的位数。直接使用 HashSet 判断。通过 & 操作,将数组氛围两类。,得到的值为那两个不同元素的。

2023-10-16 22:22:35 266

原创 137. 只出现一次的数字 II

通过位运算得出所有该位的和,对 3 进行取模则得出结果数字该位的值。,则可能的结果为 4 个数都相同或者 3 个数都相同。移除,最后剩下的就是结果。,其中某个元素只出现。,将每个元素都转化为。

2023-10-15 22:28:55 430

原创 136. 只出现一次的数字

考察的是位运算 —— 异或(^),相同为 0,不同为 1。则直接对数据所有元素执行 ^ 操作,最终的就是结果。

2023-10-14 23:46:23 165

原创 1488. 避免洪水泛滥

把所有的空闲日子(不下雨的天数)存起来,注意要使用 TreeSet,因为后面需要进行比较。不下雨:将 i 天存储到 TreeSet 中,等后面再选择这一天抽哪个湖泊。下雨:如果下雨的湖泊已经有水,则判断有水后至今期间有没有空闲日子。有空闲:设置那天为抽水,并移除该空闲日子,使用。默认对所有天数填写默认值,即都抽 1 号湖泊。用 Map 存储湖泊编号和下雨天的对应关系。无空闲:直接返回空数字。

2023-10-14 23:41:49 128

转载 2562. 找出数组的串联值

题目题解直接使用双指针,依次拼接如果指针结束指向同一个数,则再加上该数classSolution{publiclongfindTheArrayConcVal(int[]nums){intleft=0;intright=nums.length-1;longres=0;while(r...

2023-10-12 21:53:10 170

转载 Halo-Theme-Hao文档:基础设置

本章教你如何进行一些基础配置,包括:网站标题、站点 logo、侧栏头像、首页分页、评论功能以下内容为 Halo 的公共设置,和主题无关,可能会随着 Halo 更新发生变化,如果有所差异,可以留言并 @我,进行修改。主题在设计之初,会复用一些 Halo 自带的部分设置,不会在主题菜单中,所以有些小伙伴会疑惑找不到 logo、标题设置的地方,那是因为他们设置的地方在系统->设置这里。基本设置分页...

2023-10-12 21:53:10 850 1

转载 2512. 奖励最顶尖的 K 名学生

题目题解Map + MapclassSolution{publicList<Integer>topStudents(String[]positive_feedback,String[]negative_feedback,String[]report,int[]student_id,intk){//将分数放到Map中...

2023-10-11 23:26:12 70

转载 Halo-Theme-Hao文档:如何安装主题?

1下载安装Releases · https://github.com/liuzhihang/halo-theme-haoRelease 页面下载主题后,在 Halo Console 后台上传并启用即可。2在线安装Release 页面右键复制链接 主题.zip,在 Halo Console 后台选择远程下载并启用即可。3商城安装从商城安装的前提是需要安装商城插件应用市场插件。...

2023-09-14 20:50:55 453

转载 IDEA 自动折叠隐藏 getter setter 小技巧

1lombok大部分小伙伴会推荐 lombok,当然我也使用,加上 @Data、@Getter、@Setter 注解,确实很方便。但是总有一些原因,可能在开发中并不能使用 lombok,这时候又习惯了 lombok 的清爽,可以通过对 IDEA 进行如下设置以达到同样的效果。2添加 region操作很简单,选中自己的 get set 方法,然后使用 Command + Option + T,都可以...

2023-09-12 22:05:38 299

转载 Hao 主题 500 错误

不少小伙伴安装,或者升级主题后会遇到这个情况,原因是因为后台部分配置不适配,或者新的配置没有设置属性。理论上应该保证升级不受到影响,但是没排查到是什么配置没有设置默认值,后续会尝试解决,避免这种情况。临时解决办法:后台主题设置,都保存一遍!...

2023-08-05 10:20:48 99

转载 我试图通过这篇文章告诉你,这行源码有多牛逼。

你好呀,我是歪歪。这次给你盘一个特别有意思的源码,正如我标题说的那样:看懂这行源码之后,我不禁鼓起掌来,直呼祖师爷牛逼。这行源码是这样的:java.util.concurrent.LinkedBlockingQueue#dequeueh.next = h,不过是一个把下一个节点指向自己的动作而已。这行代码后面的注释“help GC”其实在 JDK 的源码里面也随处可见。不管怎么看都是一行平平无奇的...

2023-05-19 12:55:29 109

原创 开发人员为什么要写测试用例?

作为一名开发人员,你可能会发现周围的开发并不太喜欢写测试用例,甚至有些同学根本不写测试用例,认为写测试用例完全是浪费时间,或者是测试用例只是测试的事情。在开发过程中,往往都是呼啦啦的写完代码,然后用 Postman 或者 Httpclient 等接口工具请求下接口,看着没问题就提测,然后等测试人员反馈问题。这大概和职业以及所处的环境又关系,有些是公司没有相关的要求,有些是注重敏捷开发(项目和自己总有一个敏捷),不过群里有些同学问测试用例的事情,而我前段时间正好在写测试用例,所以做了一些笔记,在这里和大家

2022-11-26 12:11:02 5095

原创 付费版 VS Code?脑瓜子嗡嗡的吧!

今天看到一张图,分享给小伙伴看一下:脑瓜子嗡嗡的吧!这不比每周四 v me 50, xx kfc 来的快,还是给你打折限时活动价,由 google 正版授权的微软开源 vscode。并且还应该会有人买吧!可能是为了知识付费。想不到吧!这还上了 github,还有人专门给 vscode github 提了 issue:https://github.com/microsoft/vscode/issues/163798更让我长知识的是,竟然这样做,唯一侵犯的只有商标权?是不是又发现了新的

2022-10-19 21:02:44 1799

原创 打印 Logger 日志时,需不需要再封装一下工具类?

在开发过程中,打印日志是必不可少的,因为日志关乎于应用的问题排查、应用监控等。现在打印日志一般都是使用 slf4j,因为使用日志门面,有助于打印方式统一,即使后面更换日志框架,也非常方便。在 《Java 开发手册》中也有相关的规约。所以在开发中,一般使用下面这种方式来打印日志。LOGGER.info("print: {}", "this is the log");不过有的应用会将 LOGGER 再封装一下,最终写成:LoggerUtil.info(

2022-09-26 08:55:19 500

原创 告别手写,使用 Doc View 快速生成接口文档

Doc View 是一款快捷生成接口文档 IDEA 插件,使用 Doc View 可以将开发人员从繁琐的文档编写中释放出来,极大的节省开发时间。Doc View 支持以下功能:Controller/Dubbo 接口生成 Markdown 文档查看 Markdown 源码,预览 Markdown, 编辑接口字段等支持自定义配置 Markdown 模版导出 Markdown 文件到本地上传到 YApi、ShowDoc、语雀文档目录查看、操作、导出导航栏 Icon 快捷操作生成 Http Client看着

2022-06-19 11:26:10 1356

原创 集成测试时 MockMvc 无法注入

如果阅读过 使用 Junit 编写单元测试[1] 的小伙伴都知道,在写对 Controller 进行单元测试时,会将 Service 层进行 Mock。大概样子如下:但是除了单元测试,还需要写集成测试,就是模拟全流程的请求。集成测试同样使用的是 MockMvc,但是如果像单元测试一样加上 @WebMvcTest 就不太可以,因为 Service 代码没有 mock 掉,就...

2022-06-16 13:00:21 1481

原创 如何删除 git 仓库中的 .idea 文件?

有时候新创建应用还没有添加 .gitignore 文件或者 .gitignore 内容设置的不正确,就导致 .idea 文件目录上传到了仓库(也可能是其他文件)。可以使用以下方式删除仓库中的 .idea 文件。1. 删除项目重新 push(不推荐)仓库里面的应用删除掉本地应用中的 .git 文件删除掉先添加 .gitignore 文件,然后 push 代码到仓库这种方式比...

2022-06-03 08:30:45 4470

原创 467. 环绕字符串中唯一的子字符串

题目题目链接:https://leetcode.cn/problems/unique-substrings-in-wraparound-string/[1]题解很明显这是一个动态规划题假设有一个连续字符串 abcd,则他的非空子串的数量为 abc + 4,也等于 ab + 3 + 4。最终就会转换为求以每个字母结尾的最大连续字符串的长度和。维护一个 26 长度的数组 i...

2022-05-31 09:23:09 281

原创 965.单值二叉树

题目题目链接:https://leetcode.cn/problems/univalued-binary-tree/题解直接使用深度优先搜索即可,对二叉树进行递归遍历。classSolution{publicbooleanisUnivalTree(TreeNoderoot){if(root==null){...

2022-05-25 08:00:25 135

转载 JetBrains IDE 新 UI 预览

JetBrains 内测的 Fleet 大家都应该不陌生,我都已经准备好替换掉 VSCode 了。Fleet 官网:https://www.jetbrains.com/fleet/不过,没有预约到 Fleet 也没关系,现在可以预约 IDE 的新 UI。预约地址:https://blog.jetbrains.com/idea/2022/05/take-part-in-th...

2022-05-24 07:30:25 1033

转载 952.验证外星语词典

题目题解只需要每两个字段比较一下是否字典序即可classSolution{publicbooleanisAlienSorted(String[]words,Stringorder){for(inti=0;i<words.length-1;i++){if(!isAlien...

2022-05-19 09:30:38 135

转载 46.全排列

题目题解数组的全排列,其实就是当前数字和剩余数字的全排列汇总结果。以示例中的[1,2,3]举例,可以进行拆分为以下三个的结果集。1+[2,3]2+[1,3]3+[1,2]然后子集又可以再次进行拆分,只需要进行递归即可。递归终止条件是什么?很显然,当数组只有一个时,就意味着不会再有其他的排列情况了,直接放入结果集即可。classSolution{...

2022-05-18 09:30:52 284

原创 使用 awk 命令统计文本

2022-04-19 11:25:15.008,b4d13bfca8fe4b93a85e65a88520d945,LogScheduler#printLog,10ms,Y,xxxxxxxx2022-04-19 12:01:15.002,4d10d093dce8491c8ae3c1bff6dbd7c5,LogScheduler#printLog,999ms,N,xxxxx...

2022-04-20 08:30:00 1296

原创 Dubbo 源码阅读环境搭建

在了解 Dubbo 的概念以及基础架构之后,可以考虑自己搭个 Demo,运行一下,基本知道是怎么回事。当然很多小伙伴都有在开发中使用的经验,就没必要再搭建一个 Demo 了,在源码里官方也提供了 Demo,这里直接构建源码阅读环境。环境准备GitMavenIDEAZooKeeper版本基本上影响不大,这里简单说一下我的版本:软件版本Git2.34.1Maven3.8.4I...

2022-04-18 10:02:12 262

原创 Google 搜索屏蔽「小 X 知识网」

最近使用 Google 的体验越来越差,全都是各种垃圾站点,或者爬虫网站,完全影响了体验。比如我搜索一个 MethodInterceptor 使用。全是什么xx客栈、xxITSxx、xx编程资料、xx宝库、小 X 知识网 等等,一堆爬虫网站,其实这个也没什么,重点是里面的信息要么不全,要么排版混乱,举报又没什么用。那有没有一种方法,可以屏蔽掉这些垃圾站点?有的:用百度。...

2022-04-17 08:00:00 660

原创 从单机定时到多层分发

在工作中基本上都会使用定时任务,常用的有 Spring 定时框架、Quartz、elastic-job、xxl-job 等。这里说不上框架的好坏,只有适合自己的才是最好的,本文仅从个人角度上谈一谈对定时任务的看法。1单机定时单机定时我这里分为纯单机版、 固定 IP 版、分布式锁版、单机调度版,下面从这四个角度来谈一谈他们的实现方式以及当时所在的背景。纯单机版顾名思义,就是...

2022-04-09 17:03:48 160

原创 yuque-hexo:语雀写文,自动部署 Hexo 博客

熟悉我的小伙伴应该知道,我喜欢使用 Markdown 来工作、学习笔记,主要是简洁方便。并且我是一个坚定地“原生 Markdown 支持者”,什么“所见即所得”都是异端,所以对于 Typora、Notion、Bear、语雀等等一些软件都是略有尝试,但是我始终使用的是 VS Code + Markdown All in One + Markdown Table Marker...

2022-03-25 08:00:00 4356

原创 Dubbo 概念及架构

相信开发人员对 Dubbo 都不会陌生,工作中对服务间的调用也常常使用 Dubbo 进行 RPC 调用。在开发中一般都是对方提供一个 API 接口,我方引入依赖,加上注解,然后就可以进行通...

2022-01-13 18:30:00 201

转载 747. 至少是其他数字两倍的最大数

题目题解只要通过遍历获得最大和第二大的数即可。classSolution{publicintdominantIndex(int[]nums){i...

2022-01-13 18:30:00 114

转载 334. 递增的三元子序列

题目题解i、j、k 可以不连续,所以不能够使用滑动窗口 ,空间复杂度为 表示只能遍历一次假设 first 和 second 是有序的,且开始 first < second,依次遍历...

2022-01-12 16:16:12 106

转载 9. 回文数

题目题解小于 0 肯定不满足条件大于 0 且尾数为 0,则不满足条件题解一:直接转换成字符串,然后 reverse 比较一下。但是题目中有写:进阶:你能不将整数转为字符串来解决这个问题吗?...

2022-01-11 19:30:00 119

转载 27. 移除元素

题目题解必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成所以只能修改原数组。题解一:直接对满足 nums[i] == val 的值进行依次覆盖即可。publicintre...

2022-01-10 19:30:00 76

转载 1. 两数之和

题目题解暴力枚举直接遍历出所有的可能性,一一比较。classSolution{publicint[]twoSum(int[]nums,inttarget){...

2022-01-07 19:30:00 65

原创 并发场景加锁优化小技巧

在 JDK 中有很多锁,包括 synchronized、ReentrantLock、ReentrantReadWriteLock、锁的使用场景也分很多种,下面看一下对加锁优化的小技巧。

2021-12-29 14:45:25 356

原创 依赖 jar 没有传递,导致找不到类文件而启动失败了

Caused by: java.lang.NoClassDefFoundError:xxx

2021-12-14 15:05:32 1059

原创 ZooKeeper 分布式锁 Curator 源码 05:分布式读写锁和联锁

Curator 同样支持分布式读写锁 和联锁,只需要使用 InterProcessReadWriteLock 即可,来一起看看它的源码以及实现方式。

2021-12-13 17:42:53 1862

原创 从 Java 锁到分布式锁

前言在并发编程中常用到 synchronized 以及 ReentrantLock 锁,在业务开发过程中也可能会用到分布式锁,分布式锁常用框架的就是基于 Redis 实现的分布式锁框架 R...

2021-11-18 08:53:35 250

IDEA输入法不跟随

搜狗输入法, IDEA, 输入框不跟随, 将文件下载, 解压, 并替换IDEA安装目录的 jre64即可. 替换前请注意备份原jre64.

2018-05-22

空空如也

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

TA关注的人

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