- 博客(281)
- 资源 (26)
- 收藏
- 关注
原创 Spring Boot外部配置加载顺序
如果需要自定义验证逻辑,可以通过创建一个名为的 Bean 来实现。这个 Bean 方法应该声明为静态方法,以便在 Spring Boot 启动时进行早期创建,避免因实例化顺序问题而引起的验证失败。@Bean这里的方法返回了一个,它是 Spring 提供的用于 JSR-303 验证的工厂类。类级别注解,用于将配置属性绑定到结构化对象。示例:字段、方法或构造函数参数级别的注解,用于注入单个属性。示例:@Component。
2024-07-20 21:07:12
1007
原创 Vmware虚拟机Centos7固定IP地址
1、点击编辑-虚拟网络编辑器 2、点击更改设置、修改虚拟网络配置器并确认保存(见图) 这个子网IP和子网掩码的前三位需要一样 网关的前三位需要和子网ip一致。 3、打开设置“网络和Internet”,点击“更改适配器选项”,点击适配器VMnet8,修改IP和DNS相关配置 4、进入虚拟机,设置固定IP地址 root用户登录,打开网卡配置文件: vi /etc/sysconfig/network-scri
2024-04-11 20:00:37
351
原创 超分辨率指标计算:Python代码用于评估图像质量,PSNR、SSIM、LPIPS和NIQE
这个Python脚本主要用于评估图像质量,它比较了一组高清(HD)图像和对应的生成图像,并计算了四种不同的图像质量指标:PSNR、SSIM、LPIPS和NIQE。
2023-10-03 12:58:00
3653
4
原创 360度无死角超详细解读Java中的final关键字的全部用法
没有在声明时初始化final变量的称为空白final变量(blank final variable),它们必须在构造器中初始化,或者调用this()初始化;没有在声明时初始化final变量的称为空白final变量(blank final variable),它们必须在构造器中初始化,或者调用this()初始化;但是,如果一个匿名内部类对象在方法调用结束后仍然被使用,且该对象需要访问方法中的局部变量,这时就会出现问题。不能应用于接口、抽象类、抽象方法,因为接口中的方法都是抽象方法。限制源于生命周期的考虑。
2023-07-13 13:15:41
478
原创 Linux如何杀死kill -9杀不掉的进程
在Linux中,我们经常使用kill或者kill -9来杀死特定的进程,但是有些时候,这些方法可能无法终止某些进程。本文将详细解释为什么会出现这种情况,以及如何处理这种问题。
2023-07-12 16:41:53
9833
原创 /proc/[PID]/status中的内容
/proc/[PID]/status 是一个特殊的文件,其中包含了关于指定进程(PID)的详细信息。这个文件是由Linux内核动态生成的,包含了进程的各种状态信息。值得注意的是,这个文件的确切内容可能会因为Linux内核版本或特定的系统设置而有所不同。 以下是其中一些重要字段的说明: Name:进程的名称。这通常是进程的可执行文件名。 Umask:该进程的文件模式创建掩码,用于决定新文件的权限设置。 State:进程的当前状态。 R(running):进程正在运行,或在运行队列中等待运行。
2023-07-12 16:40:39
2070
原创 Linux中每个进程的状态(stat)
在Linux中,每个进程都有一个状态,这个状态表示进程目前所处的生命周期阶段。你可以通过ps命令来查看进程的状态。 以下是在ps命令输出中可能出现的进程状态代码,以及它们的含义: R (Running): 进程正在运行,或在运行队列中等待。 S (Interruptible Sleep): 进程处于休眠状态,等待某些条件的满足。比如说,进程可能正在等待用户输入,或者等待硬件的操作完成。这种状态下的进程会在有需要的时候被唤醒。 D (Uninterruptible Sleep)
2023-07-12 16:37:25
966
原创 十二式条件代码语句简化太极拳——后六式
特例模式的核心思想是创建一个特殊的对象,这个对象能够表达对一种特殊情况的共用行为的处理。通过使用这个特殊的对象,你可以用一个函数调用取代大部分特例检查逻辑,从而简化代码。
2023-07-11 13:31:11
208
原创 十二式条件代码语句简化太极拳——前六式
然后我们对映射表进行初始化。最后,在需要执行操作的地方,我们从映射表中获取并执行相应的操作,避免了复杂的条件语句。"策略模式 + 工厂方法"这种优化方式的思路主要是将不同的逻辑行为抽象出来,放在不同的策略实现类中,并通过工厂方法获取对应的实例,以此来消除复杂的条件语句。在优化后的代码中,我们使用了 Map 和函数式接口来管理和执行不同的行为,大大减少了条件语句的使用,使代码更简洁,更易读。在优化后的代码中,我们根据角色定义了不同的策略实现,然后通过工厂方法获取相应的实现,执行相应的操作,消除了条件语句。
2023-06-24 00:20:51
498
原创 使用Postman模拟文件上传和下载
Postman是一款强大的HTTP请求模拟工具,它可以帮我们在没有前端界面的情况下模拟发送HTTP请求,非常适合API开发和测试。在本篇文章中,我将向你展示如何使用Postman进行文件的上传和下载。
2023-06-22 15:08:43
17155
2
原创 Could not autowire. No beans of ‘xx‘ type found异常
在Spring中,你可以通过在类上使用@Component(或其派生注解,如@Service、@Repository、@Controller等)来声明一个Bean。如果你正在使用Java配置,并且你的Bean在不同的配置类中,你可能需要确保所有需要的配置类都被加载了。你可以在一个配置类中使用@Import来导入其他配置类,或者在你的主应用类上使用@ComponentScan来扫描所有的配置类。如果你正在使用XML配置,你可能没有在XML文件中声明你的Bean,或者你的XML配置文件没有被正确加载。
2023-06-22 14:54:56
1739
原创 装饰器模式不能只会背诵八股文,还得能在实际中应用啊
所以,虽然在这个过程中我们创建了新的对象,但是这些新的对象内部都持有了对原始对象的引用,而且在调用它们的 getCost 和 getIngredients 方法时,它们会首先调用被装饰对象(也就是原始的 Coffee 对象)对应的方法,然后再添加上它们自己的额外行为(添加牛奶或糖以及增加价格)。这样就实现了装饰器模式,能够在不改变原始对象的基础上,动态地为其添加新的功能。"运行时动态地向对象添加更多的功能",意味着在程序运行期间,我们可以在不改变原有类结构的情况下,增强对象的某些行为或者添加一些新的行为。
2023-06-15 22:07:00
247
原创 浅谈:如何基于依赖导致原则重构代码
依赖倒置具体是什么,已经在之前的文章中说过了;但或许是因为非科班写代码时间不太长,也可能平时无意中用到了这个原则自己却不知道,今天简单谈谈如何基于依赖导致原则重构代码,会有具体的例子和方法哦!使用接口作为依赖关系的抽象层。
2023-06-01 21:40:43
302
原创 MoreSuppliers类
MoreSuppliers类是一个Java工具类,它提供了一些增强的Supplier函数,使得Supplier执行的结果可以被缓存,真正的调用只执行一次。
2023-05-31 19:19:11
782
原创 @Autowired 和 @Resource的区别只知道注入方式不同?那可不行,其性能上也有差距!
代码的逻辑:这段代码来自Spring框架的AbstractBeanFactory类中的isFactoryBean方法。这个方法的主要作用是判断指定名称的bean是否是一个FactoryBean。工作原理:获取bean名称:首先,通过transformedBeanName(name)方法获取真正的bean名称。这个方法会去掉名称前面的&字符(如果有的话),因为在Spring中,&字符表示获取FactoryBean本身,而不是FactoryBean创建的对象。
2023-05-28 19:13:11
3143
原创 Collections.emptyMap()与new HashMap有什么区别?表格对比+源码
最近心情都比较复杂,ε=(´ο`*))),大概是时间节点到了吧,加上对未来的不确定性,状态一直都不好;看好多大佬都找到了暑期实习,我还是在这里苟且,一是感觉这个氛围还不错(刨除互联网的大环境之外,大环境是没办法的,没人想这样),二是感觉大家都比较友善,看看能不能转正了,希望8月下旬之前有消息,这大概是最后的DDL了;以及记录一些日常🤔,准备明天学校の组会请假,一个月请假一次的频率其实还可以感觉,最近状态很糟糕,确实不想回去开组会了ε=(´ο`*)));实验室模型或许可以用蒸馏改进一下?
2023-05-24 23:52:32
1330
原创 Object的toString方法与Arrays.toString()的异同
Object类是Java中所有类的父类。Object的toString()方法和Arrays的toString()方法都是用来获取对象的字符串表示的,但是Object的toString()方法通常需要在子类中重写,以提供有意义的输出,而Arrays的toString()方法则是用来获取数组内容的字符串表示的。这个方法对于打印数组非常有用,因为如果你直接调用数组的toString()方法(这实际上是调用Object的toString()方法),你将得到的是数组的内存地址,而不是数组的内容。
2023-05-22 20:49:49
295
原创 面向对象七大(五大)基本原则
假设你有一个 Computer 类,这个类有一个 start 方法,这个方法需要访问 PowerSupply 类的 getVoltage 方法来检查电压是否正常,然后访问 Cpu 类的 run 方法来启动 CPU。为了遵循这个原则,你可以将 fly 方法移出 Bird 类,创建一个 FlyingBird 类继承自 Bird 类并包含 fly 方法,然后让需要飞的鸟类继承自 FlyingBird 类;如果我们想创建一个能飞的鸟,应该将Fly类作为Bird类的一个成员,而不是让Bird类继承Fly类。
2023-05-19 21:29:57
810
原创 Java 11 sort DualPivotQuicksort 源码中的sort详解
static void sort(int[] a, int left, int right, int[] work, int workBase, int workLen)判断排序阈值: 如果待排序数组的长度小于设定的阈值QUICKSORT_THRESHOLD,则直接使用快速排序算法进行排序。 private static final int QUICKSORT_THRESHOLD = 286; 检查数组的有序性: 通过遍历数组,检查数组是否已经是部分有序的。这里的有序是指数组中存在多
2023-05-18 10:38:45
417
原创 @RestControllerAdvice注解
RestControllerAdvice注解是一个用于定义全局RESTful异常处理类的类级别注解。通过使用@RestControllerAdvice和@ExceptionHandler注解,你可以实现在整个应用程序范围内统一处理RESTful风格的异常。它自动将异常处理方法的返回值转换为HTTP响应的主体,使得代码更加简洁、可读和可维护。
2023-05-03 15:12:29
4295
原创 @ControllerAdvice 注解原理
@ControllerAdvice` 的工作原理在 Spring Boot 应用程序启动时涉及到多个组件和步骤;在启动过程中,`ControllerAdviceBeanPostProcessor` 会扫描带有 `@ControllerAdvice` 注解的类,`ExceptionHandlerMethodResolver` 会扫描这些类中的异常处理方法并将它们注册到全局异常处理器映射表中。
2023-05-03 15:07:43
1537
原创 spring-framework的StopWatch类详解,每个方法带有具体的例子
org.apache.commons.lang3.time.StopWatch 是 Apache Commons Lang 库中的一个工具类,用于测量代码执行时间。这个类提供了一系列便捷的方法,可以帮助我们轻松地对 Java 代码中的耗时操作进行计时。
2023-04-27 19:50:12
3242
原创 MySQL查看索引语句:SHOW INDEX 详细讲解
SHOW INDEX语句是MySQL中用于查看表索引信息的语句。它提供了有关表中索引的详细信息,包括索引名称、索引类型、关联的列等。
2023-04-26 15:58:41
9521
1
原创 Linux中vim为什么直接可以操作jar包
今天上线遇到了令人迷惑的问题,大佬排查的时候用vim直接查看了jar包,感觉很神奇,所以查了查资料;学无止境!!
2023-04-25 18:13:47
2379
原创 被CR代码时:何时应该使用enum类型,如何正确使用enum类型,常量与枚举类型之间如何选择?
每次被CR代码,都有点提心吊胆,因为感觉自己好多时候,都不太能把握到底应该如何书写,好在大家(俊哥、宽哥等)悉心指导下,似乎步入正轨;之前被指出,代码中不应该出现类似1、2、3这样的数字,应该定义成常量,但我理解错了,我把本应该定义成枚举类型的东西,依然定义成了常量,具体如下:是要求前端传入过来的一个用来标记的变量:configType1 代表费率调增代表账期调整,如果不定义成为枚举类型,你不仅需要单独校验,并且语义还不明确,但如果你指定定义成为枚举类型,枚举类型本身会在编译时检查;
2023-04-03 18:25:31
642
原创 SpringBoot处理异常的相关注解 - @ControllerAdvice注解
本文详细叙述了@ControllerAdvice注解的基本概念、用途、基本使用、属性、@ControllerAdvice 与其他注解联合使用?异常处理方法 @ExceptionHandler、绑定数据方法 @InitBinder、模型数据方法 @ModelAttribute 、@RestControllerAdvice注解 与 @ControllerAdvice注解的区别?@ControllerAdvice和@ExceptionHandler结合使用、等问题
2023-03-25 21:42:50
1029
原创 Kafka 如何保证消息不丢失:Kafka 在什么情况下会出现消息丢失及解决方案?kafka中的消息是否会丢失和重复消费?【重点】【面试问过】【字节飞书面试】【快手面试】
立足于生产者、消息存储、消费者,这三个角度,详细的分析了Kafka 如何保证消息不丢失:Kafka 在什么情况下会出现消息丢失及解决方案?kafka中的消息是否会丢失和重复消费?【重点】【面试问过】【字节飞书面试】【快手面试】
2023-03-06 20:42:20
822
原创 ChatGPT似乎有的时候并不能搞懂Java的动态分派,你懂了吗?
ChatGPT似乎有的时候并不能搞懂Java的动态分派,你懂了吗?本文从ChatGPT错误分析动态分派的例子出发,详细讲解了有关Java分派的概念、静态分派、动态分派、单分派与多分派;并且详细讲解了书中的五个例子,以及一道用友公司的笔试题最后对ChatGPT出现对程序员职业进行了一定的思考
2023-02-26 23:45:33
3778
原创 实习这么久,你知道Maven是如何从代码仓库中找到需要的依赖吗?
实习这么久,你知道Maven是如何从代码仓库中找到需要的依赖吗?Maven四连问!Maven是如何找到代码仓库里需要的依赖的?如何根据坐标在本地仓库中寻找所需要的依赖?如何根据坐标在远程仓库中寻找所需要的依赖?Maven 如何使用 HTTP 或 HTTPS 协议从远程仓库中获取依赖项,请详细解释其原理
2023-02-16 10:41:43
3567
原创 信息摘要算法——MessageDigest类用法
java.security.MessageDigest类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA-1或SHA-256 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。MessageDigest 对象调用getInstance初始化,使用update方法处理数据。任何时候都可以调用reset方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用digest方法之一完成哈希计算。对于给定数量的更新数据,digest方法只能被调用一次。
2023-02-10 16:30:55
862
原创 我的创作纪念日
其实本来从大一上学期后半段(2017)就开始谢谢零星的博客,只不过当时是自己用hexo搭建了一个小网站,还整了个域名:jiayoudangdang.top,虽然这个早就过期;后来发现了CSDN,因为CSDN平台比较方便,所以索性不自己搭建博客,改用CSDN记录学习上的点滴;在今天与CSDN相遇的5周年里,趁着午休时间写一篇碎碎念来纪念我已经逝去的青春;(文采有限,大家勿喷)
2023-02-09 14:00:17
579
原创 ES查询常用语法
ES查询常用语法目录1. ElasticSearch之查询返回结果各字段含义2. match 查询3. term查询4. terms 查询5. range 范围6. 布尔查询6.1 filter加快查询效率的原因7. boosting query(提高查询)8. dis_max(最佳匹配查询)9. 分页10. 聚合查询【内含实际的demo】
2023-01-02 13:26:58
14068
5
原创 程序验证Jackson反序列化的规则、Jackson序列化与反序列化关键方法程序详细分析
程序验证Jackson反序列化的规则没有无参构造时:如果有参构造的参数全,或者更多(就是有不存在的值),这样还能正常运行如果参数不全则直接异常无参构造和有参构造方法都有的时候先走无参构造;无参构造需要set/get方法来完成序列化和反序列化Jackson序列化与反序列化关键方法程序详细分析
2022-11-11 22:37:02
3928
3
原创 初次使用Ubuntu18.04遇到的问题——笔记5 (Ubuntu 18.04 下安装安装NVIDIA显卡驱动+CUDA-10.1+cudnn-7)
Ubuntu 18.04 下安装安装NVIDIA显卡驱动+CUDA-10.1+cudnn-7
2022-10-23 14:22:46
1976
1
原创 初次使用Ubuntu18.04遇到的问题——笔记4 (Ubuntu18.04+Anaconda+Pycharm+Pytorch)
Ubuntu18.04+Anaconda+Pycharm+Pytorch安装方法
2022-10-22 18:07:28
984
原创 初次使用Ubuntu18.04遇到的问题——笔记3(Ubuntu18.04链接外接显示器、Ubuntu 18.04实现实时显示网速)
初次使用Ubuntu18.04遇到的问题——笔记3(Ubuntu18.04链接外接显示器、Ubuntu 18.04实现实时显示网速)
2022-10-15 19:15:18
690
原创 初次使用Ubuntu18.04遇到的问题——笔记2(Ubuntu18.04 缺失字体如何手动添加字体+Ubuntu18.04 右键怎么添加新建空白文本文件+Ubuntu18.04 如何创建文件夹的快)
初次使用Ubuntu18.04遇到的问题——笔记2(Ubuntu18.04 缺失字体如何手动添加字体+Ubuntu18.04 右键怎么添加新建空白文本文件+Ubuntu18.04 如何创建文件夹的快)
2022-10-14 21:37:48
850
原创 初次使用Ubuntu18.04遇到的问题——笔记1(删除软件+Ubuntu换源+Ubuntu安装好用截图工具+Ubuntu安装wps+win+Linux双系统的电脑Linux挂载硬盘时无法写入问题)
win+Linux双系统的电脑上,Linux挂载硬盘时无法写入的问题
2022-10-11 21:12:03
1293
PyDev插件PyDev 7.7.0.,内附离线安装教程,亲测有效!让迷茫的配环境不再迷茫!
2021-01-10
高频实验报告.doc
2021-01-02
现代通信新技术实验报告-zx.doc
2021-01-02
现代通信新技术实验报告.doc
2021-01-02
Ubuntu虚拟机NS2网络仿真集成环境,更是配好了其他各种仿真环境
2020-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人