自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小柚的博客

唯有热爱!

  • 博客(68)
  • 资源 (8)
  • 问答 (2)
  • 收藏
  • 关注

原创 YOLOv8基础必需运用【目标检测、分割、姿势估计、跟踪和分类任务】

YOLOv8是Ultralytics的最新版本YOLO。作为最先进的 SOTA 模型,YOLOv8 建立在以前版本成功的基础上,引入了新功能和改进,以增强性能、灵活性和效率。YOLOv8 支持全方位的视觉 AI 任务,包括检测、分割、姿势估计、跟踪和分类。这种多功能性使用户能够在不同的应用程序和域中利用YOLOv8的功能。模型中只需要设定不同的训练模型,就可以得到不同的检测结果。

2024-03-03 12:26:01 1398

原创 ROS编译时报错Project ‘cv_bridge‘ specifies ‘/usr/include/opencv‘ as an include dir, which is not found.

我的路径如下:在​​​/usr/include/opencv4/opencv2​​​路径下。解决办法:在根目录下搜索OPENCV的安装路径。

2024-07-28 12:50:22 172

原创 训练过程中train-test-val数据集的区别

train是训练集,val是训练过程中的测试集,是为了让你在边训练边看到训练的结果,及时判断学习状态。你可以通过观察validation的loss和train的loss定下你需要的模型。如果跑caffe自带的训练demo,你会用到train_val.prototxt,这里面的val其实就是validation。而因为validation的数据集和training没有交集,所以这部分数据对最终训练出的模型没有贡献。比如训练0-10000次迭代过程中,train和validation的loss都是不断降低,

2024-03-25 15:53:27 962

原创 opencv-批量调整图片的曝光率

图为处理前后的结果,图片效果大为改善,处理后的图片颜色更加均匀和丰富。

2024-03-24 21:52:34 470

原创 深度学习知识【CSPNet网络详解】

在神经网络推理过程中计算量过高的问题是由于网络优化中的梯度信息重复导致的。CSPNet通过将梯度的变化从头到尾地集成到特征图中,在减少了计算量的同时可以保证准确率。CSPNet不仅仅是一个网络,更是一个处理思想,可以和ResNet、ResNext、DenseNet、EfficientNet等网络结合。

2024-03-23 01:39:42 801

原创 自动化专业英语词汇积累【第一期】

acceleration transducer 加速度传感器acceptance testing 验收检测accessibility 可及性accumulated error 积累误差AC-DC-AC frequency converter 交直交变频器AC electric drive 交流电子传动active attitude stabilization 主动姿态稳定adjoint operator 伴随算子admissible error 容许误差aggregate matri

2024-02-14 16:48:26 1065

原创 解决集群环境下的并发问题【分布式锁】

解决方案:解决方案就是在每个线程释放锁的时候,去判断一下当前这把锁是否属于自己,如果属于自己,则不进行锁的删除,假设还是上边的情况,线程1卡顿,锁自动释放,线程2进入到锁的内部执行逻辑,此时线程1反应过来,然后删除锁,但是线程1,一看当前这把锁不是属于自己,于是不进行删除锁逻辑,当线程2走到删除锁逻辑时,如果没有卡过自动释放锁的时间点,则判断当前这把锁是属于自己的,于是删除这把锁。需求:修改之前的分布式锁实现,满足:在获取锁时存入线程标示(可以用UUID表示)

2022-10-29 08:00:00 1278 2

原创 商场秒杀模块

场景分析二:随着我们商城规模越来越大,mysql的单表的容量不宜超过500W,数据量过大之后,我们要进行拆库拆表,但拆分表了之后,他们从逻辑上讲他们是同一张表,所以他们的id是不能一样的, 于是乎我们需要保证id的唯一性。比如时间是否充足,如果时间充足,则进一步判断库存是否足够,如果两者都满足,则扣减库存,创建订单,然后返回订单id,如果有一个条件不满足则直接结束。当用户开始进行下单,我们应当去查询优惠卷信息,查询到优惠卷信息,判断是否满足秒杀条件。

2022-10-28 08:00:00 288

原创 redis工具类

【代码】redis工具类。

2022-10-27 08:00:00 225

原创 redis实现商品查询缓存【解决常见问题】

当我们客户端访问不存在的数据时,先请求redis,但是此时redis中没有数据,此时会访问到数据库,但是数据库中也没有数据,这个数据穿透了缓存,直击数据库,我们都知道数据库能够承载的并发不如redis这么高,如果大量的请求同时过来访问这种不存在的数据,这些请求就都会访问到数据库,简单的解决方案就是哪怕这个数据在数据库中也不存在,我们也把这个数据存入到redis中去,这样,下次用户过来访问这个不存在的数据,那么在redis中也能找到这个数据就不会进入到缓存了。因为锁能实现互斥性。

2022-10-26 08:00:00 1047

原创 Redis代替session实现短信登录

通过以上讲解,我们可以得知 每个用户其实对应都是去找tomcat线程池中的一个线程来完成工作的, 使用完成后再进行回收,既然每个请求都是独立的,所以在每个用户去访问我们的工程时,我们可以使用threadlocal来做到线程隔离,每个线程操作自己的一份数据。

2022-10-25 08:00:00 117

原创 实现哈工大操作系统实验二【操作系统的引导】

对于上面的 Minix 可执行文件,其 a_magic[0]=0x01,a_magic[1]=0x03,a_flags=0x10(可执行文件),a_cpu=0x04(表示 Intel i8086/8088,如果是 0x17 则表示 Sun 公司的 SPARC),所以 bootsect 文件的头几个字节应该是 01 03 10 04。6 char(1 字节)+ 1 short(2 字节) + 6 long(4 字节)= 32,正好是 32 个字节,去掉这 32 个字节后就可以放入引导扇区了。

2022-10-12 08:00:00 432

原创 作业2、练习3以及作业3的开源代码实现

作业三需要将1.bmp图片下载至代码文件目录才行。

2022-10-12 08:00:00 91

原创 c语言实现登录注册功能

使用strcmp对两个字符数组进行校验,可实现登录账号的正常性验证,若没有注册则提示先注册,若已经注册了,则对账号密码进行验证。需要创建四个字符串(字符数组)来存放用户数据(变量分别为code1,code2,pwd1,pwd2)利用c语言在控制台实现一个登录注册系统,要求有验证效果,对账号和密码的进行正确性校验。

2022-09-26 23:39:24 2506 3

原创 安装RabbitMQ【普通安装+Docker安装(首选)】

RabbitMQ是使用Erlang语言编写的,所以在安装RabbitMQ前需要先安装Erlang环境。路径: http://ip地址:15672 ,用户名: guest ,密码: guest。路径:http://ip地址:15672, 用户名:guest ,密码:guest。此时会提示guest账户只允许本地使用,我们可以配置允许使用guest远程访问。guest账户默认只允许本地使用,我们可以创建新账户远程访问RabbitMQ。④通过管控台访问rabbitmq。

2022-09-19 22:14:07 938

原创 JVM调优常用工具及命令

jmap -dump:format=b,file=heap.hprof PID:在出现内存溢出异常时,将堆内存的信息下载到文件中。运行后会产生heap.hprof文件,普通软件打开会乱码,用上面的wat打开即可,就可以追踪到造成异常的原因。运行 GCViewer:输入命令 java -jar gcviewer-1.36-SNAPSHOT.jar。就会出现一下窗口,打开生成的gc.log文件(查看决定性能的两个因素:吞吐量和暂停时间)jmap -heap PID:查看堆存储快照。

2022-09-17 08:00:00 816

原创 Nginx配置多虚拟主机

文件路径:C:\Windows\System32\drivers\etc\hosts。两个域名指向同一个nginx服务器,用户访问不同的域名时显示不同的内容。请求8888端口则访问html8888目录下的index.html。请求9999端口则访问html9999目录下的index.html。Nginx对提供8888与9999两个端口的监听服务。

2022-09-16 08:00:00 840

原创 Nginx配置指令

用于配置运行Nginx服务器用户的指令是user语法格式:如果希望所有用户都可以启动Nginx进程,有两种办法:将次指令注释:或者把用户(和用户组)设置为nobody;worker process是Nginx服务器实现并发处理的关键所在。理论来说worker_process的值越大,可以支持的并发处理也越多。语法格式:number 指定nginx进程最多可以产生的worker_process数。auto ,设置此值,Nginx进程将自动检测。在默认的配置文件中,Number=1.启动Ngin

2022-09-11 23:43:58 1295

原创 Nginx的安装及启动【编译安装+Docker拉取安装(开发时首选)】

更改Nginx服务器的配置和加入新模块后,如果希望当前的Nginx服务应用新的配置或使新模块生效,就需要重启Nginx服务。当然我们可以先关闭Nginx服务,然后使用新的Nginx配置文件重启服务。进入到 Nginx 解压包目录/opt/apps/Nginx-1.20.1 目录中,查看 Nginx 的目录。平缓停止是指允许Nginx服务将当前正在处理的网络请求处理完成,但不再接收新的请求,之后关闭连接,停止工作。Nginx所有配置文件的目录,极其重要。Nginx命令的目录,如Nginx的启动命令。

2022-09-11 17:45:02 1409

原创 JVM高性能调优宝典【包含VisualVM工具下载安装教程】持续更新优化

如果要操作对象,必须通过引用来进行,如果一个对象没有任何引用与之关联,则说明该对象基本不太可能在其他地方被使用到,那么这个对象就成为可被回收的对象了,这种方法实现简单,效率较高,但是它无法解决循环引用问题,因此在java中并没有采用这种方式(pyhon使用的是引用计数法)

2022-09-10 17:43:26 1262

原创 项目部署教程

通过xshell远程控制实现安装Docker。(3)开启远程docker服务。(1)首先关闭虚拟机防火墙。(2)然后安装Docker。

2022-08-28 08:00:00 251

原创 java项目实现发送邮箱激活用户功能

配置邮箱第三方登录。我们在系统中使用邮箱发送邮件属于第三方登录,而市面上的邮箱默认是不能第三方登录的。我们需要登录邮箱,配置第三方登录。在用户注册时,通过发送一个邮件给用户,来激活用户,主要是用来看看该用户是否不为空用户。用密保手机向1069070069发送短信配置邮件客户端,发送完成后点击我已发送。①在yml中配置项目路径。②编写service类。

2022-08-27 08:00:00 1210

原创 前端用户注册—随机生成验证码图片

一般在后台生成验证码后,一方面将验证码保存到session中,另一方面将验证码做成一张图片,将图片传到前台。用户认出验证码后,输入验证码传到后台,如果正确即可判断操作者为真人。它是后台随机生成的一串字符串,但我们不能将该字符串直接传到前台,否则机器直接读到字符串,验证码将没有任何意义。@ServletComponentScan在使用原生的servlet的时候需要加,否则无法扫描到我们上面所写的servlet类。// 在方法后添加参数的原因是,如果不添加参数,img.src的属性不会改变,此时浏览器不会。

2022-08-26 08:00:00 372

原创 ajax异步读取数据进行显示

通过ajax进行异步请求,读取数据进行显示,避免。上面的js中get请求的是下面控制器的all方法。

2022-08-25 08:00:00 222

原创 SpringBoot配置事务、统一异常处理以及日志记录【项目实现】

此时我们可以在代码中使用Logger对象打印日志,但如果每个方法都添加日志打印的代码,需要维护大量代码,最好的方式是使用AOP技术,将所有的控制器方法作为切点,在方法执行完成后自动执行打印日志的代码。如果在事务内部执行过程中发生了异常,则事务整体会自动回滚。在后台代码运行的过程中,我们要对每一次操作进行日志记录,一方面通过日志可以发现代码的缺陷,另一方面可以追踪内部人员的操作记录。当代码抛出异常后,网页上展示的500错误码比较难看,我们可以对项目进行统一异常处理,跳转到用户体检较好的500页面。

2022-08-24 20:24:21 1486

原创 实现异步上传图片【前后端分离】

/ 上传成功后,图片地址放入产品表单的隐藏域中。// 上传成功后,图片回显到pImage上。

2022-08-24 18:07:45 518

原创 Security5实现鉴权访问【即有权限才能访问指定资源】前后端分离

全文中的/admin/all 权限皆是个人配置的,也可修改成其他的,该项是经过配置类进行配置,在springsecurity实现登录一文中进行了配置,看不懂的先考古,如果在配置类中遍历的表和本文不一样,即如果表里的字段值为1,那么代表1是你的权限,如果其他用户的该表字段值不为1则不得访问该资源。

2022-08-24 16:09:35 416

原创 使用Spring Security实现登录认证

/ 自定义认证逻辑 @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {// 1.认证 Admin admin = adminService . findByAdminName(username);throw new UsernameNotFoundException("用户不存在");} if(!

2022-08-23 18:27:50 246

原创 sessionStorage保存临时数据【实现侧边栏的不折叠】

在实现侧边栏时,每次请求都会导致侧边栏收起, 想要实现浏览器记住点击的内容,在点击其他菜单前,该内容处于被选中状态。

2022-08-23 15:44:54 217

原创 java性能优化七个方向

性能优化根据优化的类别,分为业务优化和技术优化。业务优化产生的效果也是非常大的,但它属于产品和管理的范畴。同作为程序员,在平常工作中,我们面对的优化方式,主要是通过一系列的技术手段,来完成对既定的优化目标。这一系列的技术手段,我大体归纳为如图以下 7 类:可以看到,优化方式集中在对计算资源和存储资源的规划上。优化方法中有多种用空间换时间的方式,但只照顾计算速度,而不考虑复杂性和空间问题,也是不可取的。我们要做的,就是在照顾性能的前提下,达到资源利用的最优状态。接下来,我简要介绍一下这7个优化方向。

2022-08-23 04:54:04 164

原创 mybatis-plus插件实现分页

在编写Controller层之前需要在启动类扫描mapper接口,注册。controler层代码。// 点击页码执行的方法。// 最多显示多少页。

2022-08-23 04:01:55 269

原创 application.yml常见配置

【代码】application.yml常见配置。

2022-08-23 00:16:06 413

原创 剑指offer刷题【链表篇】

以下是本篇文章正文内容,难度从难到易,反向训练法,如果基础较差可从后面做起,更加容易理解。

2022-08-11 01:45:00 166

原创 后端上岸大厂剑指offer刷题第四天(查找算法)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录❤️第一题:在排序数组中查找数字 I✨题目描述:💕第一种方法:二分查找思路分析:代码实现:💕第二种方法:暴力枚举❤️第二题:0~n-1中缺失的数字✨题目描述:思路分析:代码实现:❤️第一题:在排序数组中查找数字 Ioffer直达✨题目描述:💕第一种方法:二分查找思路分析:本题主要是采用二分查找来解决,通过两次二分查找寻找出左右边界,找出左右边界之后,该数的个数就是边界里面个数的多少(right - left -1).

2022-06-01 08:00:00 106

原创 后端上岸大厂刷题第三天(字符串)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录第一题:替换空格题目描述:思路分析:代码实现:java版本第二题:左旋转字符串题目描述:方法一:API思路分析:代码实现:方法二:暴力枚举思路分析:代码实现:第一题:替换空格题目描述:思路分析:下面的方法思路很简单,就是简单的暴力解法。代码实现:java版本class Solution { public String replaceSpace(String s) { char[] arrs.

2022-05-31 08:00:00 99

原创 后端秋招上岸大厂刷题第二天(链表)高频

最困难的事情就是认识自己。–希腊文章目录一、从尾到头打印链表问题描述方法一:原地翻转思路分析代码实现方法二:辅助栈二、反转链表问题描述:代码实现:运行截图三、复杂链表的复制题目描述:思路分析:代码实现:一、从尾到头打印链表问题描述方法一:原地翻转思路分析首先创建两个节点prev current,一个初始化为空,另一个是指向head,这两节点的作用为保存前一个节点和当前节点通过循环,改变节点的指向,改变指向的操作如下:首先创建一个节点来保存下一个节点,将当前节点的next指向前一个节.

2022-05-30 08:00:00 118

原创 后端秋招上岸字节刷题第一天(堆栈)多种语言实现

剑指offer精选题目,代码实现+思路分析

2022-05-29 08:00:00 121

原创 java斗地主案例(利用集合或数组储存牌/Colletions中的shuffle进行打乱)

package cn.itcase.day26.demo01.demo02.dapai;import java.util.ArrayList;import java.util.Collections;import java.util.Random;public class Demodapai { public static void main(String[] args) { ArrayList<String> poker = new ArrayList&lt

2022-03-13 06:00:00 557 4

原创 java斗地主中级案例(利用了HashMap 集合的key不可重复,而value不可重复的特点)

package cn.itcase.day27.demo01.demo02.demo03;import java.util.*;//最后每个人的牌是按顺序拍好的(任务)/*Java斗地主升级版* 1、利用HashMap来存储牌,打乱是打乱的是键,到时候获取键所对应的value值即可* 2、Collections 中的shuffle()方法来进行打乱* 3、用sort进行排序 */public class Doudizhu { public static void main(Stri

2022-03-13 06:00:00 645 2

原创 练习:模拟多窗口售票(解决线程安全问题)

当多个线程执行共享数据时,有可能出现线程安全问题;线程安全问题:1、共享数据重复出现2、出现的数据不在范围之内(比如售票是出现出售的票号为-1,0等等)解决安全问题的方法有三种:同步代码块:格式:synchronized(锁对象){可能出现问题的代码(访问共享数据的代码)}注意:1、锁对象可以是任意类对象2、保证多个线程的锁对象是同一个同步方法:public synchronized 返回值类型 方法名称(参数){}==public 返回值类型 方法名(){synchroniz

2022-03-13 06:00:00 715 2

gcviewer-1.36-SNAPSHOT

gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNAPSHOT gcviewer-1.36-SNA

2022-09-16

servlet.rar

1、学习文件 2、安装包 3、典型常用案例 4、视频

2022-03-12

mybatis学习资料

1、包含Mybatis的学习pdf 2、Mybatis的逆向工程文件 3、Mybatis的常用案例

2022-03-12

Mybatis必备资源包

Mybatis必备资源包

2022-01-31

Mybatis逆向工程

自动生成配置文件,和相对应的实体类

2022-01-26

stm32毕业设计_基于stm32的视觉检测设计——(附源码和文档)

stm32毕业设计_基于stm32的视觉检测设计——(附源码和文档)

2022-01-22

stm32项目—人群定位以及可适应的风扇调节风扇(配套程序和文档)

stm32项目—人群定位以及可适应的风扇调节风扇(配套程序和文档)

2022-01-22

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

TA关注的人

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