- 博客(39)
- 收藏
- 关注
原创 @RestControllerAdvice注解的基本使用
RestControllerAdvice 是一个强大的注解,它可以极大地简化 Spring 应用程序的异常处理和数据绑定逻辑,使得代码更加简洁、可维护和一致,尤其是在开发 RESTful 服务时,它提供了一种优雅的方式来处理各种异常情况,并确保客户端收到有意义的错误信息。
2025-01-15 14:34:45
1487
原创 实现nacos配置修改后无需重启服务--使用@RefreshScope注解
RefreshScope是 Spring Cloud 中的一个注解,主要用于实现配置的动态刷新。在微服务架构中,配置文件的更改能够即时生效,而不需要重启服务,这个注解在其中起到了关键的作用。
2025-01-13 16:36:45
1509
原创 javascript 和 typescript区别
JavaScript 可以直接在浏览器和 Node.js 环境中运行。几乎所有的现代浏览器都内置了 JavaScript 解释器,这使得它在前端开发中具有无可替代的地位。在服务器端,Node.js 的出现也让 JavaScript 能够用于构建高性能的网络应用。
2025-01-02 15:24:24
1077
原创 【java】@PostConstruct用法:服务启动后自动执行
当 Spring Boot 服务启动时,一旦MyBean这个 Bean 被创建并且其依赖(如果有的话)被注入,init方法就会自动执行,控制台会输出This method is called after the bean is instantiated and dependencies are injected.。
2024-12-31 16:15:09
316
原创 private static final Logger log = LoggerFactory.getLogger()和@Slf4j的区别
Slf4j注解提供了一种更简洁的方式来获取日志记录器,而传统的private static final Logger log = LoggerFactory.getLogger()方式则更加灵活,在某些复杂的日志配置场景或者无法使用 Lombok 的情况下仍然是一种有效的方式。在doSomething方法中,通过log.info()方法记录了方法开始和结束的信息。这里可以看到,没有手动声明Logger对象,但是通过@Slf4j注解,同样可以使用log对象来记录日志。
2024-12-31 09:44:02
1250
原创 【JAVA】多线程实现的四种方式及使用场景
注意,不能直接调用run方法来启动线程。如果直接调用run方法,就相当于在当前线程中执行run方法中的代码,而不是开启一个新的线程。
2024-12-24 15:37:13
1453
原创 【java】e.printStackTrace()与log.error(e.getMessage)区别及使用场景
是 Java 中用于打印异常栈追踪信息的方法。它会将异常的类型、消息以及异常发生时的方法调用栈信息输出到标准错误流(通常是控制台)。是在日志记录框架(如 Log4j、Logback 等)中使用的语句,用于将异常的消息部分记录到日志文件(或其他日志输出目标)中,并且日志级别为 ERROR。
2024-12-20 17:20:22
1039
原创 本地redis连接不上;org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Red
开启进程守护 yes代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。一、在redis.windows.conf配置文件中修改。
2024-05-13 16:11:23
443
1
原创 学习日记4.22-4.26
2022.4.22链表刷题:面试题 02.07. 链表相交142. 环形链表 II(还没刷完)哈希表刷题:242. 有效的字母异位词 数组349. 两个数组的交集 HashSet202. 快乐数 HashSet1. 两数之和 HashMap454. 四数相加 II HashMap1和454都是用目标数与某数相减的值代入HashMap中。理论知识:哈希表理论基础总结:一般来说哈希表都是用来快速判断一个元素是否出现集合里。对于哈希表,要知道哈希函数和哈希碰撞在哈希表中
2022-04-22 22:40:16
914
原创 java基本规则
哈希表:Map<Node, Node> hm = new HashMap<Node, Node>();hm.containsKey(); # 是否存在该键hm.get(); # 获取键对应的值hm.put(); # 存放键值对栈:Stack<Integer> A, B;队列:Queue<TreeNode> queue = new LinkedList<>(){{add(root)}};qu
2022-04-12 20:23:10
719
原创 java资料(附链接)
《王道操作系统》学习笔记总目录+思维导图第 1 章 计算机系统概述1.1 操作系统的基本概念1.2 操作系统的发展和分类1.3 操作系统的运行机制和体系结构第 2 章 进程管理2.1 进程与线程2.2 处理机的调度2.3 进程的同步与互斥2.4 死锁第 3 章 内存管理3.1 内存管理的概念3.2 虚拟内存管理第 4 章 文件管理4.1 文件系统4.2 磁盘组织与管理第 5 章 I/O管理5.1 I/O管理概述5.2 I/O核心子系统...
2022-04-11 14:59:42
794
原创 剑指offer day4 - 查找(数组中重复的数字、)
目录前言一、题1 数组中重复的数字1 题目2 分析(官方题解)①思路分析 :②复杂性分析3 代码4 注意事项前言一、题1 数组中重复的数字1 题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 32 分析(官方题解)①思路分析 :由于只需要找出数组中任
2022-03-11 15:54:54
466
原创 算法1--动态规划
目录1思路:2代码:3复杂度分析:4注意事项:1思路:定义 dp[i] 为考虑前 i 个元素,以第 i 个数字结尾的最长上升子序列的长度,注意 nums[i] 必须被选取。我们从小到大计算 dp 数组的值,在计算dp[i] 之前,我们已经计算出 dp[0…i−1] 的值,则状态转移方程为:dp[i] = max(dp[j])+1,其中 0≤j<i 且num[j] < num[i]----即考虑往 dp[0…i−1] 中最长的上升子序列后面再加一个 nums[i]。由于 dp[j]
2022-03-10 20:57:48
100
原创 剑指offer day3 - 字符串 (替换空格、左旋转字符串)
目录前言一、题1 替换空格1 题目2 分析(官方题解)①思路分析:②复杂性分析3 代码4 注意事项前言字符串String// 创建stringString s = new String(array,0,size);// 函数1:返回第i位置的字符char c = s.charAt(i);一、题1 替换空格1 题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”2 分析
2022-03-07 09:52:03
104
转载 转载——np.where()[0] 和 np.where()[1]
import numpy as np a = np.arange(12).reshape(3,4)print('a:', a)print('np.where(a > 5):', np.where(a > 5))print('a[np.where(a > 5)]:', a[np.where(a > 5)])print('np.where(a > 5)[0]:', np.where(a > 5)[0])print('np.where(a > 5)[1]:'
2020-12-30 17:14:09
528
1
转载 【转载】——np.where()[0] 和 np.where()[1]
import numpy as np a = np.arange(12).reshape(3,4)print('a:', a)print('np.where(a > 5):', np.where(a > 5))print('a[np.where(a > 5)]:', a[np.where(a > 5)])print('np.where(a > 5)[0]:', np.where(a &...
2020-12-30 17:11:51
1019
2
原创 解决Error: Assertion failed (chunk.m_size <= 0xFFFF)和Set OPENCV_ENABLE_NONFREE CMake option问题
解决低版本opencv无法读取大容量视频和高版本opencv无法使用SIFT、SURF算法的问题。解决了Error: Assertion failed (chunk.m_size <= 0xFFFF) 问题和Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function ‘cv::xfeatures2d::SIFT::create’ 问题解决办法:高版本的opencv 搭配 低版本的opencv-co
2020-12-15 22:24:44
1070
2
转载 转载:I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this Ten
遇到了这个问题,意思是你的 CPU 支持AVX AVX2 (可以加速CPU计算),但你安装的 TensorFlow 版本不支持解决:1. 如果是初学者 或者 没有太大计算速度的需求,在开头加上这两行忽略这个提示即可import osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'说明:os.environ["TF_CPP_MIN_LOG_LEVEL"] = '1' # 默认,显示所有信息 os.environ["TF_CPP_MIN_LOG_LEVEL"] =
2020-08-17 15:36:57
204
转载 转载:解决The Session graph is empty.TensorFlow2.0
因为本人刚从源头接触TensorFlow,所以会有许多各位大佬看起来是常识的东西不太懂,而这种认知差有时候比问题本身还让人难受。我想各位刚接触的同学跟我一定也有相...
2020-08-17 11:05:19
460
原创 解决ImportError: Could not find the DLL(s) ‘msvcp140_1.dll‘问题
刚安装好tensorflow安装包去试试import tensorflow as ft时,出现错误。错误原因:ImportError: Could not find the DLL(s) ‘msvcp140_1.dll’. TensorFlow requires that these DLLs be installed in a directory that is named in your %PATH% environment variable.解决办法:1、打开这个网站https://supp
2020-08-12 16:29:09
5763
1
转载 解决plt.imshow不显示图像的问题
plt.imshow()不显示图像?解决方法:在后面加一句:plt.show()原理:plt.imshow()函数负责对图像进行处理,并显示其格式,而plt....
2020-08-01 17:06:06
2153
2
转载 优快云怎么转载别人的博客(详细)
参考博客原址 http://blog.youkuaiyun.com/bolu1234/article/details/51867099转载优快云博客步骤:1、优快云博客页面右键,点击【检查】...
2020-05-01 00:29:58
291
原创 在虚拟机上安装ubuntu教程(二)--附在VirtualBox的ubuntu系统上添加iso镜像文件方法
现在,我们安装好虚拟机Virtualb Box啦~不会安装虚拟机Virtual Box的可以看我上一篇博客点这即可看上一篇博客(加输送门)接下来,我们在虚拟机上安装ubuntu系统。(一) 首先,我们需要下载ubuntu的iso镜像文件,ubuntu-18.04.1.desktop-amd64.iso(这是桌面版的)。我们可以直接进它的官网下载www.ubuntu-china.cn,...
2020-05-01 00:02:15
2124
3
原创 安装虚拟机VirtualBox(一)
因为以后的学习可能用到ubuntu系统,所以最近下了个虚拟机先玩玩,我用的VirtualBox。现在开始安装虚拟机~小声bb:步骤基本看图片就会了(一)首先我们进入VirtualBox官网,点Download。下载用红框标起来的两个文件!(二)点击Virtualbox的exe文件。...
2020-04-30 23:59:18
422
原创 halcon学习_模板匹配
模板匹配中有基于点、基于灰度值、基于描述符、基于相关性、基于形状、基于组件的方法。基于相关性的模板匹配1、 demo - 模板匹配(基于相关性) - find_ncc_model_exposure2、 相关性适用于光照不均、明暗变化的场合(优点),但背景不能太复杂(缺点)。当光照变化大时,用相关性好,不要用基于灰度的。3、 可以通过调节参数改变匹配效果。且金字塔层数越多,搜索越快;反之...
2020-04-06 19:48:38
5423
原创 halcon学习之单相机标定和手眼标定
理解摄像机标定看了一篇讲得非常好的关于摄像机标定的文章,加深了我对摄像机标定的理解摄像机标定文章的传输门这是我边看文章边写的公式(3)和(4)代入(5)得到的公式意思就是世界坐标 乘 相机的内外餐参数 得到 像素坐标而标定的过程就是要求出相机的内外参手眼标定1、 手眼标定要掌握:视觉算法、运动控制算法、手眼标定算法2、 手眼标定中涉及的坐标系:机械手基础坐标系、机械手末端工具...
2020-04-04 16:42:18
3110
2
原创 halcon学习_超人启蒙班10-20课
第十四、十五课 颜色识别1、 HSV:H色度、S饱和度、V亮度2、 学习机器视觉要掌握这些内容。3、 HSV弱点:受光照影响非常大!4、 不同的H值对于不同的颜色。5、 demo - 应用范围 - 颜色检测 - color_simple:核心函数:decompose3 (Image, Red, Green, Blue)trans_from_rgb (Red, Green, Bl...
2020-04-02 20:21:44
530
原创 2020.3.10使用vscode改程序总结(dnn_blob\blob_from_images.py)
1、放文件的路径,一定一定不要出现中文!2、许多提示xx文件打不开,一般是路径错了,特别是不在默认文件夹下打开的文件,代码里直接放的文件统统都要改成路径。3、提示 无法将“python”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。https://blog.youkuaiyun.com/qq_41650733/article/details/87902873按照这个链接里的步骤去做。4、...
2020-03-11 00:18:51
320
转载 numpy中的ravel()、flatten()、squeeze()的用法与区别
numpy中的ravel()、flatten()、squeeze()都有将多维数组转换为一维数组的功能,区别:ravel():如果没有必要,不会产生源数据的副本flatten():返回源数据的副本squeeze():只能对维数为1的维度降维另外,reshape(-1)也可以“拉平”多维数组...
2020-03-09 22:09:59
306
原创 计算机视觉-光流估计(附python代码)
光流估计光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”,根据各个像素点的速度矢量特征,可以对图像进行动态分析,例如目标跟踪。- 亮度恒定:同一点随着时间的变化,其亮度不会发生改变。- 小运动:随着时间的变化不会引起位置的剧烈变化,只有小运动情况下才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数。- 空间一致:一个场景上邻近的点投影到图像上也是邻近点,且...
2020-03-09 16:35:58
3334
1
原创 计算机视觉-背景建模(附python代码)
背景建模帧差法由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧图像进行差分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。帧差法非常简单,但是会引入噪音和空洞问题混合高斯模型在进行前景检测前,先对背景进行训练,对图像中每个背景采用一个混合高斯模型进行模拟,每个背景的混合高斯的个数...
2020-03-09 15:25:54
2004
1
转载 认识OpenCV使用摄像头捕获视频时使用的函数
import numpy as npimport cv2capture = cv2.VideoCapture(0)while True: ret, frame = capture.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame', gray) if cv2.waitKey(1) &...
2020-03-08 18:04:44
590
原创 anaconda安装opencv(whl文件)
我用pip install 和conda install的方法都安装不上去,都失败了,找了很多原因都没办法解决。没办法,只能尝试一下用第三方包whl文件安装下,因为原来没有用过这个方法,也不知道难不难,小心的去试了一下,没想到非常的容易!而且清华大学opencv python库里的whl文件下载速度非常快(几十秒),比我之前在别的地方找的whl文件快多了。没安装上opencv或其他库的小伙伴,...
2020-03-07 23:21:39
7235
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人