自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 复制并修改内容然后粘贴到 Excel

监听剪贴板修改内容粘贴到 Excel 不同单元格

2024-02-24 22:23:47 260

原创 SpringBoot 使用 @PropertySource 加载自定义 yml 文件

LIXI.FUN - SpringBoot 使用 @PropertySource 加载自定义 yml 文件 本身 仅 支持 格式的文件,后缀可以不为 ,但是内容格式得按照 的格式来。例如:my.properties如果想要 读取 格式的文件需要自定义 使用方式YamlPropertySourceFactory.java 的代码内容:...

2022-07-08 18:55:06 994 2

原创 SpringBoot 根据不同操作系统创建不同 Bean

LIXI.FUN - SpringBoot 根据不同操作系统创建不同 Bean在给小伙伴解决一些问题的时候,遇到的这个问题,在 jna 中,windows 和 linux 需要加载的动态链接库的路径不一样。于是乎,配置文件修改为:DynamicLibConfigBase.javaLinuxDynamicLibConfig.javaWindowsDynamicLibConfig.javaWindowsConditon.javaLinuxCondition.java在调用的时候,只要注入 类型

2022-07-08 18:54:01 633

原创 windows 创建存储池,不支持该请求 0x00000032

LIXI.FUN - windows 创建存储池,不支持该请求 0x00000032近期组了一台 NAS,在 windows 中建立存储池的时候有问题了 解决方法,用管理员身份运行 PowerShell 输入以下命令,先查看物理磁盘状态出现结果查看 字段如果为 则为无法添加到存储池。重置硬盘状态对需要加入 Pool 的每一块硬盘都执行上面的命令,再次查看 的状态,如果为 则可以进行新建存储池的操作,如果还不行,则需要重启,这时应该就可以了。...

2022-07-08 12:22:22 5287 2

原创 PVE 安装和编译 RTL8811 无线网卡

LIXI.FUN - PVE 安装和编译 RTL8811 无线网卡禁用 enterprise 的源增加 非订阅用户 的源这一步关乎能否下载 ,在编译无线网卡的标准教程中使用的是 而在 中是使用 修改 内容为安装编译需要的软件下载驱动源码编译安装无线网连接wifi名称密码配置适用于 加密的无线网络,用手机可以查看需要连接的无线网络是否是这种类型加密。可以查看下是否成功生成增加 interface 配置编辑 内容为其中的 如果确认驱动安装好了的话,可以使用 进行查看。重启网络

2022-06-24 21:17:27 3384 1

原创 Windows cmd alias

LIXI.FUN - Windows cmd alias举个例子 一遍一遍的在 cmd 中输入,可太麻烦了,不如用 代替吧,就像 linux 中的 似的。接上一篇 重装 windows 之后的环境变量和个人配置 中提到的 即是这个的实现。按照我的习惯在 中新建文件夹 ,将 添加到 中,在 下新建 其中内容为保存完毕后,在项目目录下启动 即可使用 了。一些我比较常用的 aliasgrep.batls.batpwd.batps.batkill.bat

2022-06-19 18:41:23 345

原创 重装 windows 之后的环境变量和个人配置

LIXI.FUN - 重装 windows 之后的环境变量和个人配置重装 Windows 安装了开发用的软件以后,需要添加环境变量,恢复自己常用的各项开发软件的插件,配置之类的,常规操作就是,一个一个去添加,软件的插件就是打开软件然后再一个一个安装,重复性操作总是让人不那么爽的,下面是我重装系统的一些 tips。我的习惯是把开发用的软件都安装在一个目录,小的固态就是放 ,如果大固态硬盘, 也是固态就放到 目录,下面以 的为例。用户软件配置Jetbrains IDE如果用户配置文件已经丢失了,那么还

2022-06-19 18:04:44 1738 2

原创 Java 中的 null instanceof Object 是什么呢?

Java 中的 null instanceof Object 是什么呢?在 JDK 的 HashMap 源码中有这么一个方法:static Class<?> comparableClassFor(Object x) { // 在这一行,它并没有判断 x == null 的情况,直接 instanceof 了 // 这样是可行的么? if (x instanceof Comparable) { Class<?> c; Type[] ts, a

2022-03-08 16:46:23 3430

原创 函数调用方信息

LIXIFUN - 函数调用方信息日志框架打印的信息,前面出现的类名,方法名,在配置文件里可以进行配置,那它是从哪里拿到的信息呢?抽出来一个题目,实现一个函数,打印调用方的信息,类名,方法名等。例如:public class Caller { public static void main(String[] args) { printCallerInfo(); } private static void printCallerInfo() {

2021-12-03 15:19:43 357

原创 Path.endswith() 的是 Path 不是文件名后缀

LIXIFUN - Path.endswith() 的是 Path 不是文件名后缀假设有这样一个需求,删除某一个目录下的 “.json” 结尾的,修改时间在 x 分钟之前的文件。public class Solution { public static void main(String[] args) { delete(Path.of("/home/lixifun/log"), ".json", 30, TimeUnit.MINUTES); } private

2021-12-02 12:50:31 1004

原创 maven 配置了 mirror 导致的 repo 依赖下载失败

maven 配置了 mirror 导致的 repo 依赖下载失败问题出现在配置 geoserver-manager 的时候,按照文档进行配置后,无法下载依赖。<dependencies> <dependency> <groupId>it.geosolutions</groupId> <artifactId>geoserver-manager</artifactId> <v

2021-10-16 23:07:23 1281

原创 为什么经典快排先从右往左找

【为什么经典快排先从右往左找】教科书的经典做法,总是选择 lo 作为基准点,lo 在 [lo, hi] 区间的左边,当跳出大的 while i < j 的时候,交换 arr[x] 和 arr[lo] 的值,让基准点落在左右的分界点上,因为 arr[x] 要交换到左边,那就要求 arr[x] < arr[lo],在这种情况下,只能选择,先从右往左找,具体原因,下面分析。先从右往左找def qsort(arr, lo, hi): if lo >= hi: re

2021-08-28 00:44:35 195

原创 key 字节数组长度引起的 aes-128 256 选择

【key 字节数组长度引起的 aes-128 256 选择】对接 C++ 某加解密接口// 定义了 KEY 是一个长度为 32 的字符串#define KEY "01234567890123456789012345678901"// 其中调用了EVP_aes_128_cfb128()AES is based on a design principle known as a substitution–permutation network, and is efficient in both

2021-08-25 09:50:46 795

原创 不要随意改 sql_mode

【不要随意改 sql_mode】select id, min(create_time), create_byfrom t_resultgroup by id;初见这条 sql,认为不能运行,create_by 字段既没有在 group by 中,也没有聚合函数作用,怎么就能运行呢?直到看到了运行的图。。。在自己机器上试,就不能运行,看报错SQL错误[1005]: Expression #3 of SELECT list is not in GROUP

2021-08-25 09:50:22 94

原创 数据分页分析

【数据分页】比较朴素的做法前端发送请求分页的必要数据{ pageNum: 1, pageSize: 10,}后端接收这几个参数public class Param { // 其他参数 // ... private Integer pageNum; private Integer pageSize;}这里有什么问题呢?对 每个 需要分页操作的参数,需要有 pageNum pageSize 这些参数;对 每个 需要分页的操作,需要在 s

2021-08-25 09:50:12 150

原创 Docker 用作编码环境

【Docker 用作编码环境】Debug your app, not your environment.示例docker run -it \ --rm \ -v `pwd`:/app \ -w /app \ -p 80:80 \ node:14.15.4 \ sh -c "npm install && npm run dev" 参数说明命令含义-it启动一个伪终端以交互模式运行容器–rm即用即抛,

2021-08-25 09:49:46 315

原创 浏览器文件下载

【浏览器文件下载】主要原理前端<!-- 其中的 download 提示浏览器下载而不是打开 --><a href="http://xxxx.com/yyy.txt" downlod="yyy.txt"></a>后端后端的设置主要是为了当浏览不支持 download 属性的时候的兼容性。res.setContentType("application/octet-stream");res.addHeaders("Content-Disposition", "

2021-08-25 09:49:33 100

原创 Java 里的线程池

【Java 里的线程池】线程池池化思想在线程中的实际应用,具体到 Java 中就是类别说明ExecutorService定义线程池行为的接口ThreadPoolExecutor具体的实现类Executors用于创建线程池的工具类为什么使用线程池?降消耗 - 减少因大量创建和销毁重量级资源耗费的系统资源;加限制 - 合理的线程池参数设置可以限制应用所能申请的资源,避免系统资源耗尽。同样适用于其他各种连接池。常用线程池线程池队列类型适

2021-08-25 09:49:22 66

原创 大小写敏感引起的 hexo 中 tags 缺失

【大小写敏感引起的 hexo 中 tags 缺失】在这篇文章发出来之前,用 Hexo 在本地预览 /tags/java 是这个样子的而在线上是这个样子的注意标红的地方,线上的 tags 缺失了,只有一篇,tag 是 Java,本地预览时 tags 文章齐全,tag 是 java最终锁定到 对 ioc 的理解 的 tags,其中的 Java 是大写的,在预览的时候,大小写没有表现出来差异,在生成的时候,有差异了。修改 tag 大小写一致后问题消失。...

2021-08-25 09:49:08 176

原创 lambda 表达式引用的本地变量

【lambda 表达式引用的本地变量】Bad Example从 lambda 表达式引用的本地变量必须是 final 变量或实际上的 final 变量。int i = 0;// compile-time error// Variable used in lambda expression should be final or effectively final// 从 lambda 表达式引用的本地变量必须是最终变量或实际上的最终变量foos.forEach(e -> i++);

2021-08-25 09:48:59 1180

原创 Spring 七种事务传播行为

【Spring 七种事务传播行为】1. Transactional 注解package org.springframework.transaction.annotation;public @interface Transactional { /** * 设置事务传播行为 * 默认是 Propagation#REQUIRED */ Propagation propagation() default Propagation.REQUIRED;}2. 七种事务传播行为事务传播行为

2021-08-24 11:15:33 136

原创 数据库隔离级别

【数据库隔离级别】不涉及具体数据库实现不涉及具体数据库实现不涉及具体数据库实现1. 数据库事务里的锁1.1 写锁(排它锁)执行到 写 操作的 sql 语句时加写锁写数据事务结束 释放写锁这里很关键的一点是在 事务结束 才释放写锁注意: 被写锁锁定的数据,不可以被施加读锁,但不是不可以读,在不施加读锁的隔离级别中,就可以不加读锁,直接读数据。1.2 读锁(共享锁)执行到 读 操作的 sql 语句时加读锁读数据根据不同的隔离级别,释放锁的时机不同隔离级别释

2021-08-24 11:13:51 61

原创 自定义协议中魔数的作用

【自定义协议中魔数的作用】快速 识别字节流是否是程序能够处理的,能处理才进行后面的 耗时 业务操作,如果不能处理,尽快执行失败,断开连接等操作。

2021-08-24 11:12:55 758

原创 java-nio-zero-copy

【零拷贝在 Java 中的具体 API】这里不再赘述 零拷贝 定义的相关内容,感兴趣可以查看 维基百科 - 零拷贝 。Java 原生在 Java 中,零拷贝具体的 API 指的是java.nio.channels FileChannel#transferTo(long position, long count, WritableByteChannel target); FileChannel#transferFrom(ReadableByteChannel src, long po

2021-08-24 11:11:19 81

原创 @Configuration 和 @Bean 注解

【@Configuration 和 @Bean 注解】主要关注一点,@Configruation 注解中的 proxyBeanMethods 属性默认为 true,也就是说在此 Config 类中调用被 @Bean 注解的方法,每次返回的都是同一个 bean 实例。@Component 则没有这种特性。详情可以参考 spring-configuration-bean-annotation-test 中的测试代码,自己运行下。...

2021-08-24 11:09:59 153

原创 SpringBoot 的 AOP 中 JDK Proxy 和 CGLib

【SpringBoot 的 AOP 中 JDK Proxy 和 CGLib】以下内容搭配 SpringAopDebug 食用更佳基础Spring AOP 的底层就是通过使用 JDK 或者 CGLib 动态代理来实现为目标 Bean 织入横切逻辑的。JDK 的动态代理,允许开发者在运行期创建接口的代理实例,限制也是只能为接口创建代理实例。CGLib 采用字节码技术,可以为一个类创建子类,在子类中采用方法拦截所有父类的调用来织入横切逻辑。Spring 默认为有接口实现类用 JDK 代理,无接口实现

2021-08-24 11:06:16 413

原创 字段对字段的 Get/Set

【字段对字段的 Get/Set】开发中,肯定遇到过前人留下的,某个类,需要对另外一个类,一个字段一个字段的 get/set就像下面的这样/* 有意写的比较繁琐,来突出 xx 效果,但其实今天见了更繁琐的 */b.setF_1(a.getF1() == null ? 1 : a.getF1().shortValue());b.setF2(a.getF2() == null || "".equals(a.getF2().trim()) ? "f2" : a.getF2().trim());b.set

2021-08-24 11:04:39 172

原创 多 module Spring-Boot 项目 repackage 问题

【多 module Spring-Boot 项目 repackage 问题】某项目拆分通用工具类出来为单个 Module 时出现的问题,以下为模拟项目报错[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile (default-testCompile) on project module-b: Compilation failure[ER

2021-08-24 11:01:12 2654

原创 魔改 toString 的模板生成 jna struct 的 order

【魔改 toString 的模板生成 jna struct 的 order】开发 jna 的时候,传 struct 给动态链接库,需要继承 com.sun.jna.Structure 重写 getFieldOrder() 方法,返回子类的 field 的书写顺序的 List。略一观察就可以发现,跟 toString() 干的事儿很是相像,只不过现在是只需要字段名,而不需要字段值。就给 idea 生成 toString() 的地方加个 template(ps:字段少,手动也没啥,字段多起来,不自动化,靠

2021-08-24 10:59:26 158

原创 与操作代替取模操作

【与操作代替取模操作】m mod akm \bmod a^{k}mmodak 就是 mmm 在 aaa 进制下的低 kkk 位。十进制a=10a = 10a=10十进制15 mod 10=51\textcolor{red}{5} \bmod 10 = \textcolor{red}{5}15mod10=5150 mod 100=501\textcolor{red}{50} \bmod 100 = \textcolor{red}{50}150mod100=50十进制对

2021-08-24 10:45:11 372

原创 TopK 的一种实现

【TopK】直接上代码/** * 如果需要更灵活的实现,比如传入 Compartor<? super E> 来进行初始化 * 就需要在构造的时候,把比较器传入 PriorityQueue 的构造器 */public class TopK<E extends Comparable<E>> { private final int k; private final transient ReentrantLock lock = new Reentra

2021-08-23 12:15:18 51

原创 用 byte int 存储周和月的数据

【用 byte int 存储周和月的数据】数据类型位数可存储byte8一周 7 天的数据int32一个月 31 天的数据可以用来存储类似于,周签到,月签到这种形式的数据,一个位表示一天的签到与否。...

2021-08-23 12:14:02 120 2

原创 在 IDE 里能运行,JAR 包不能?

【在 IDE 里能运行,JAR 包不能?】在 IDE 里能正常运行的程序,打完包以后不能运行了?可能需要考虑一下,下面的原因。在默认情况下,Java 类的反射对象并未包含方法入参的名称,在 Java 8.0 中可以通过 javac -parameters 生成方法入参的元数据信息。看一下 idea 中的配置可以看到在 idea 中,默认是有 -parameters 参数的,也就是在 idea 中进行开发调试的时候,Java 类的反射对象是包含着方法入参的名称的,而在用 maven 打包的时候没

2021-08-23 12:11:03 4519

原创 idea live-template 的使用

【idea live-template 的使用】在 idea 中有很多快捷输入快捷输入代表morepsvmpublic static void main(String[] args) {}-soutSystem.out.println()对象.sout 会自动把对象放到 (对象) 里forifor (int i = x; i < y; i++) {}对象.fori 对用下标对对象进行循环遍历………如果自己想要自定义输入某些东西的时候应该

2021-08-23 11:32:37 167

原创 ThreadLocal 常用方式之一

【ThreadLocal 常用方式之一】AOP 拦截了 JWT 解出来的用户信息如何在 Controller - Service 之间传递?使用 ThreadLocal 保存线程内的共享变量。以下为演示代码,去除了具体的解析过程和异常处理信息。@Slf4j@Aspect@Componentpublic class JWTAspect { @Pointcut("execution(* com.nevertrouble.xxx.controller.*.*(..))") pub

2021-08-23 11:14:49 189

原创 Java 里 null 的 hash code 是多少?

【Java 里 null 的 hash code 是多少?】Object o = null;// Exception in thread "main" java.lang.NullPointerException// System.out.println(o.hashCode());点进去看 hashCode() 方法的实现/** * @return a hash code value for this object. * @see java.lang.Object#equal

2021-08-23 11:13:57 1266

原创 ArrayBlockingQueue 方法里锁赋值给一个本地 final 变量

【ArrayBlockingQueue 方法里锁赋值给一个本地 final 变量】public class ArrayBlockingQueue<E> { /** Main lock guarding all access */ final ReentrantLock lock; public E take() throws InterruptedException { // 就是下面这行,为什么要把 this.lock 赋值给一个本地 final

2021-08-23 11:13:11 68

原创 所谓服务挂掉

【所谓服务挂掉】不知道有没有人跟我有一样的疑问"大量请求涌入为什么会把服务搞挂掉?"有线程池的存在,不是限制了进程能占用的系统资源么?为什么会挂掉呢?所以问题就出在,这个挂掉,具体指的是什么意思么?进程的崩溃吗?答:这里的“挂掉”一般情况下来说,说的还真不是进程挂掉。以一个单体的 springboot 构建的 hello-world 的 web 程序来进行举例。min = 200max = 200queue-size = Integer.MAX_VALUE如果一下子涌入上千万个请求,假

2021-08-23 11:12:06 1566

原创 为什么 Redis 这么快?

【为什么 Redis 这么快?】如果百度得到的答案,扯到了因为单线程,没有多线程的上下文切换锁之类的所以快的,还有 epoll 之类的,不用看了又是一篇复制粘贴的文章,因为 epoll 首要解决的问题就不是快,具体可以看 IO 多路复用解决的啥问题,ps: 现在,最新版的 redis (6.x) 开始用多线程来处理 IO 了。Redis 快的主要原因:纯内存操作数据结构简单高效benchmark 里的每秒增删改查的数字大,是因为单次操作耗时少,这个叫快,而数据量大,叫多。...

2021-08-23 11:11:01 47

原创 IO 多路复用解决的啥问题

【IO 多路复用解决的啥问题】首先抛出一个问题:C10K 问题是个什么问题?从整个系统的服务能力来看 C10K 首先是一个关于连接,尤其是长连接的问题,只是高并发的一个前置条件,即一个进程支持大量连接的问题,接入连接之后的是否能够提供服务是另一个问题了。IO 多路复用,解决的也就是这个前置条件,关于一个进程维持大量连接这件事儿。对于近几年从业的小伙伴来说,不知道会不会有我一样的疑问,为什么说 BIO 的时候,就提到一个连接一个线程,他们就不会用线程池吗?首先要分两种线程:I/O 线程 和 工作线

2021-08-23 11:09:35 570

空空如也

空空如也

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

TA关注的人

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