自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Wik-

每个人都要拥有自己的火焰,从别人那里借来的火是不完整的。

  • 博客(35)
  • 收藏
  • 关注

原创 Go 语言 struct 使用 tags

在 Go 语言中,struct 是一种常见的数据类型,它可以用来表示复杂的数据结构。在 struct 中,我们可以定义多个字段,每个字段可以有不同的类型和名称。除了这些基本信息之外,Go 还提供了 struct tags,它可以用来指定 struct 中每个字段的元信息。在本文中,我们将探讨为什么 Go 语言中需要使用 struct tags,以及 struct tags 的使用场景和优势。

2023-03-13 11:24:46 532

原创 react项目打包编译

最近有个项目需要用到react做一个前端界面,在网上搜索了一些关于react相关的知识,感觉比较多、而且零散。我虽然是一个后端开发工程师,但之前接触过一些界面开发,比如:jsp、ajax、html、css的还是了解一些,但是遇到这个react,感觉有点懵比。写法上和之前的完全不同,而且看了一写示例后发现,现在的前端开发和后端有点类似了,需要编译、打包…好了,废话不多说,进入今天的正题。

2023-03-08 11:10:52 491

原创 helm-模版中的List、loop、map使用方法

helm-模版中的List、loop、map使用方法。

2023-03-08 10:39:24 395

原创 CSDN文本MD编辑器教程

CSDN富文本处理方式

2023-03-06 10:47:13 223

原创 MySQL(MariaDB)运算符 != 和 <> 以及 = 和 <=> 的区别

MySQL(MariaDB) 中!= 的区别

2023-03-06 10:15:14 758

原创 golang小技巧和易错点

1. fallthrough关键字2. 简式变量声明仅能在函数内部使用

2022-12-07 11:00:34 179

原创 基于GORM实现软删除用法

DeleteAt基于原生 GORM,model 中添加 gorm.DeleteAt 字段,从而自动获取 Soft-Delete 的能力。原生GORM,当我们调用 Delete 时, 指定的记录并不会从数据库中物理删除,而是会将 gorm.DeleteAt 字段的值设置为当前时间,在一般情况下,调用查询方法时不会被返回。内部适配:原来的 Delete 调用会被转换为一次 Update,自动处理了 delete_at 字段的更新逻辑。查询的时候,如果发现 model 中包含 gorm.DeleteAt

2022-12-07 09:05:04 2405

原创 Windows下搭建GO开发环境

windows下搭建Go语言开发环境

2022-06-10 18:38:19 2255

原创 Spring Boot 使用 ServletFileUpload上传文件失败,upload.parseRequest(request)为空

1、Spring Boot 使用 ServletFileUpload上传文件失败,upload.parseRequest(request)为空2、将表单中的数据变成二进制数据进行上传,用request是无法直接获取到相应表单的值的

2022-03-11 20:14:50 1879

原创 mysql 替换函数replace()

mysql 替换字符串的实现方法:mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,不再需要自己写函数去替换,用起来非常的方便。 mysql 替换函数replace()UPDATE table_name SET field_name = replace (field_name,‘from_str’,‘to_str’) WHERE field_name LIKE ‘%from_str%’update team_data set contimg=replace(contimg,

2022-03-04 14:46:59 1469

原创 Mybatis出错 缺无参构造函数 映射出错

Mybatis出错:Error instantiating class com.User with invalid types () or values ()出错位置:联表映射时,使用one=@One(***)无响应实体类省略属性...public Student() { }public Student(String studentNumber, String sname, String smajor, String sclass, Teacher teacherInfo, Topic

2022-02-10 14:08:45 736

原创 设备管理器中英特尔智音技术有黄色感叹号解决办法

1.打开设备管理器;2.在系统设备中,右键点击没有黄色叹号的那个英特尔智音技术音频控制器后选‘更新驱动程序’3.选‘浏览计算机上的驱动程序’4.选‘让我从计算机上的可用驱动程序列表中选取’5.然后列表中有两个,不要选这个"英特尔智音技术音频控制器",改选"High Definition Audio控制器"。驱动安装后,“英特尔智音技术OED”和“英特尔智音技术音频控制器”就都消失了。电脑音频图标就好了,也有声音了。...

2021-11-15 13:17:52 32735 8

原创 volatile关键字如何保证可见性和有序性

volatile关键字保证线程的可见性且提供了一定的有序性,但是我无法保证原子性。在JVM底层volatile是采用内存屏障实现的。

2021-10-25 19:48:54 346

原创 重载和重写的区别

重载:多个同名方法,根据不同传参,实现不同的逻辑。发生在同一个类中发生在编译期方法名必须相同,参数列表必须不同(个数不同,类型不同,顺序不同)访问修饰符和返回值类型可以不同构造方法可以被重载重写(覆盖):子类对父类的方法的重新编写,实现不同的逻辑。发生在子类中发生在运行期方法名和参数列表必须和父类方法一致返回值类型必须相同,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类构造方法不能被重写用final/static/private修饰的方法不能被重写...

2021-10-24 09:00:00 77

原创 wait()与sleep()的区别

1、wait()方法属于Object类,sleep()属于Thread类;2、wait()方法释放cpu给其他线程,自己让出资源进入等待池等待;sleep占用cpu,不让出资源;3、sleep()必须指定时间,wait()可以指定时间也可以不指定;sleep()时间到,线程处于临时阻塞或运行状态;4、wait()方法会释放持有的锁,不然其他线程不能进入同步方法或同步块,从而不能调用notify(),notifyAll()方法来唤醒线程,产生死锁,所以释放锁,可以执行其他线程,也可以唤醒自己,只是设置停

2021-10-20 19:18:45 613

原创 排序算法复杂度

排序方法时间复杂度(平均)时间复杂度(最好)时间复杂度(最坏)空间复杂度稳定性插入排序O(n2)O(n)O(n2)O(1)稳定希尔排序O(n1.3)O(n)O(n2)O(1)不稳定选择排序O(n2)O(n2)O(n2)O(1)不稳定堆排序O(nlog2n)O(nlog2n)O(nlog2n)O(1)冒泡排序O(n2)O(n)O(n2)O(1)快速排序O(nlog2n)O(nlog2n)O(n2)...

2021-10-04 15:31:12 68

原创 Synchronized和Lock的区别

类别SynchronizedLock存在层次锁的释放锁的获取锁状态锁类型性能

2021-09-19 16:57:32 67

原创 TCP和UDP的区别

TCPUDP是否连接面向连接面向无连接是否可靠可靠传输,使用流量控制和拥塞控制不可靠传输,不使用流量控制和拥塞控制连接对象个数只能一对一通信支持一对一,一对多,多对多交互通信传输方式面向字节流面向报文首部开销首部最小20字节,最大60字节首部开销小,仅8字节适用场景适用于要求可靠传输的应用(文件传输)适用于实时应用(IP电话、视频会议等)...

2021-09-13 12:51:51 75

原创 Spring AOP

AOP术语:1.通知(Advice):织入到目标类连接点上的一段程序代码2.连接点(JoinPoint):程序执行的某个特定位置3.切入点(Pointcut):筛选连接点4.切面(Aspect):封装切入点和通知的模块5.引入(introduction):向现有的类添加新方法属性6.目标(target):要被通知的对象7.代理(proxy):用于执行AOP的对象8.织入(weaving):把切面应用到目标对象来创建新的代理对象的过程  一、基于代理的AOP实现常用Advice接口

2021-08-26 19:07:13 105

原创 MyBatis中的一级缓存和二级缓存的区别

一级缓存 (session级别)1.同一个session;2.默认开启一级缓存失效的四种情况:1、sqlsession不同2、sqlsession相同,查询缓存中没有的数据3、sqlsession相同,但两次查询之间执行了增删改操作4、sqlsession相同,但手动清楚了一级缓存(缓存清空)清空缓存:openSession.clearCache();二级缓存 (sessionFactory级别)1.同一个sessionFactory (同一个映射文件)2.默认关闭,需要手动开启3.

2021-08-24 20:58:44 414

原创 CMD查看端口占用并关闭命令

1.查询端口netstat -ano | findstr “123456”TCP 127.0.0.1:1234 0.0.0.0:0 LISTENING 67892.查询端口名tasklist | findstr “6789”studio64.exe 6789 Console 3 1,385,024 K3.关闭端口taskkill /pid “6789” /F.

2021-08-24 16:29:18 442 1

原创 Spring中Bean的生命周期和作用域

一.作用域类别说明singleton在Spring IOC容器中,仅存在一个Bean实例,Bean以单例方式存在,所有对 bean 的请求,只要 id 与该 bean 定义相匹配,则只会返回bean的同一实例(默认)prototype每次请求都会创建一个新的 bean 实例,一个 bean 定义对应多个对象实例,每次调用getBean()时,相当于执行new XxxBean()request每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP req

2021-08-23 23:56:17 123

原创 Cookie和Session的联系与区别

一.联系Web应用程序是使用HTTP协议传输数据的,HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。Cookie和Session都是用来跟踪浏览器用户身份的会话方式。1.Cookie的工作原理(1)浏览器端第一次发送请求到服务器端(2)服务器端创建Cookie,该Cookie中包含用户的信息,然后将该Cookie发送到浏览器端(3)浏览器端再次访问服务器端时会携带服务器端创建的Cookie(4)服

2021-08-23 20:23:28 130

原创 JDK和CGLIB动态代理的区别

1、JDK和CGLIB动态代理的区别JDK代理使用的是反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。CGLIB代理使用字节码处理框架asm,对代理对象类的class文件加载进来,通过修改字节码生成子类。JDK创建代理对象效率较高,执行效率较低;CGLIB创建代理对象效率较低,执行效率高。JDK动态代理机制是委托机制,只能对实现接口的类生成代理,通过反射动态实现接口类;CGLIB则使用的继承机制,针对类实现代理,被代理类和代理类是继承关系,所以代理类

2021-08-21 18:07:37 11593

原创 Spring 常用的注解

Spring 常用的注解1.声明bean的注解@Component 常用来注解那些不易分类的组件@Repository 数据访问层使用,标记DAO组件@Service 业务逻辑层,用于标注业务组件@Controller 控制层使用,标记是Spring MVC controller 处理器,用来标注处理http请求2.注入bean的注解@Autowired 自动注入,完成属性方法的组装(Spring 提供的注解与@Qualifiter配合使用)@Qualifier 有多个Bean时指定一个Be

2021-08-18 23:53:41 274

原创 Word无法启动转换器RECOVR32.CNV解决方法

打开Word或者保存Word时总会出现“无法启动转换器RECOVR32.CNV”的报错窗口,解决方法如下:(1)win+R打开“运行”→输入“regedit”,进入注册表编辑器。(2)找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools Location把路径修改为带双引号的路径,例如:“C:\Program Files\Common Files\Microsoft Shared\TextConv”报错的原因是:路径中间有空格,所以需要路径两边加双

2021-05-07 12:40:04 1223 1

原创 Java中的字符串及其中的常用方法

字符串是由多个字符组成的一串数据String的特点:字符串是常量,一旦被创建就不能改变,这是因为字符串的值是存放在方法区的常量池里面,但是引用可以改变。字符串字面值"ab"也可以看成是一个字符串对象。内存图如下(例子)这样可以更好的理解字符串常量在程序运行过程中在内存中的存储情况。1.常见String类的获取功能public int length(): 获取字符串的长度。public char charAt(int index): 获取指定索引位置的字符public int indexOf

2021-03-01 22:42:06 2390

原创 Java中String,StringBuilder和StringBuffer的区别

这三个类的主要区别在两个方面:运算速度(运算性能或执行效率)和线程安全性。StringStringBuilderStringBuffer不可变可变可变线程不安全线程安全1、运算速度比较(通常情况下):StringBuilder > StringBuffer > StringString是final类不能被继承且为字符串常量,而StringBuilder和StringBuffer均为字符串变量。String对象一旦创建便不可更改,而后两者是可更改的,它

2021-02-21 19:35:13 5066

原创 HashMap

HashMap是Map接口的实现类。存储方式:采用KV键值对方式存储。基于哈希表设计:JDK1.7:底层存储结构基于数组+链表;JDK1.8:底层存储结构基于数组+链表+红黑树:当链表大于阈值(默认为8)且数组长度大于64时,将链表转化为红黑树,减少搜索时间。扩容机制:默认初始容量为16指定初始容量:创建时如果给定了初始容量,HashMap会将其扩容为2的幂次方作为哈希表的大小加载因子为0.75:当元素个数超过容量长度的0.75倍时,进行扩容扩容时,使用resize()方法扩容为原容量的2

2021-02-06 19:01:59 8717

原创 RIP协议距离向量算法——如何更新路由表

题目:假定网络中路由器B的路由表有以下项目:目的网络距离下一跳路由N17AN22CN68FN84EN94F现在B收到C发过来的路由信息目的网络距离N24N38N64N83N95求出路由器B更新后的路由表:答案:目的网络距离下一跳路由解释N17AC中没有N1的信息,不需要更新N25C下一跳相同,更新N39CB中没有N3

2021-01-28 19:16:15 12314 4

原创 Java面向对象的三大特征

Java面向对象的三大特征为:封装、继承和多态。1.封装Java中的封装是指一个类把自己内部的实现细节进行隐藏,只暴露对外的接口(setter和getter方法)。封装又分为属性的封装和方法的封装。把属性定义为私有的,它们通过setter和getter方法来对属性的值进行设定和获取。public class Person { private int id; private String name; private Person person; public int

2021-01-26 17:37:44 12595

原创 笔记本电脑查看电池损耗的方法

笔记本电脑查看电池损耗的方法用管理员权限打开"命令提示符",输入以下内容powercfg /batteryreport /output "C:\battery_report.html之后在就会生成电池报告:C:\battery_report.html在C盘根目录打开battery_report.html,就能看到电池的损耗情况了,如下图:...

2021-01-25 11:13:33 3016

原创 Java数组的定义及常用方法

数组:一组相同类型的数据集合,长度固定方式1:先声明数组(定义数组):尚未开辟内存空间再创建数组:在内存中,根据数组长度,开辟一块"连续"的内存空间,并完成初始化(默认值)数据类型默认值整数0浮点数0.0char空字符booleanfalseStringnullString[] array01;array01 = new String[10];方式2:声明+创建double[] array02 = new double[6];方

2021-01-23 16:14:24 12998

原创 部分程序或软件默认安装在C盘,没有自定义选项,如何安装到指定文件夹

部分程序或软件默认安装在C盘,没有自定义选项,如何安装到指定文件夹(此处用Xmind举例)1.问题描述2.解决原理3.解决步骤1.问题描述Xmind会默认安装在C盘,但我们为了解放C盘空间,会有在其他盘符统一管理安装程序的文件夹,那如何将Xmind安装在指定文件夹呢?2.解决原理修改windows系统默认的软件安装位置(一般有“ProgramFilesDir”和“ProgramFilesDir(x86)”)。3.解决步骤1.win+r,输入“regedit”打开注册表编辑器。2.在注册表中

2021-01-21 18:33:26 7330

原创 Java运算符

运算符1.赋值运算符赋值运算符就是为一个变量赋值的操作,例如:int a=3;boolean b=false;2.算数运算符我们经常用到算数运算符有+ - * / %,这里我们需要注意除法(1)int/int的结果还是int:int a=9;int b=2;System.out.println(a/b);//结果为4需要使用double来计算double a=7.0;double b=2.0;System.out.println(a/b);//结果为4.5(2)0不能

2021-01-20 19:02:35 12649 1

空空如也

空空如也

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

TA关注的人

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