自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rmkloveme

一只探索中的程序猿

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

原创 读写锁ReadWriteLock实战

当某个线程持有写锁时,其他线程无法获取读锁或写锁,从而确保了独占性。这种机制在读操作远多于写操作的场景下可以显著提高并发性能。读操作不会修改共享资源,因此可以同时进行,提高了并发性能。允许多个读线程同时访问共享资源,但写操作是排他的。读锁在没有写锁的情况下可以被多个线程持有。写锁是独占的,一次只能被一个线程持有。写锁用于对共享资源进行修改或更新的操作。多个线程可以同时获得读锁。

2024-08-06 18:37:59 277

原创 聊聊数据库索引

索引是对数据库表中一列或多列的值进行排序的一种结构。一个非常恰当的比喻就是书的目录页与书的正文内容之间的关系,为了方便查找书中的内容,通过对内容建立索引是对数据库表中一列或多列的值进行排序的一种结构。索引形成目录。索引是一个文件,它是要占据物理空间的。1 主键索引: 数据列不允许重复,不允许为NULL.一个表只能有一个主键。2 唯一索引: 数据列不允许重复,允许为NULL值,一个表允许多个列创建唯一索引。可以通过 ALTER TABLE table name ADD UNIQUE (column);

2024-05-15 21:43:45 821

原创 RedisTemplate实现令牌桶限流

Redisson可以实现很多东西,在Redis的基础上,Redisson做了超多的封装,不仅可以用来实现分布式锁,还可以帮助我们实现令牌桶限流。Ratelimter主要作用就是可以限制调用接口的次数。主要原理就是调用接口之前,需要拥有指定个令牌,限流器每秒会产生X个令牌放入令牌桶,调用接口需要去令牌桶里面拿令牌。如果令牌被其它请求拿完了,那么自然而然,当前请求就调用不到指定的接口。RateLimter实现限流。

2024-04-28 18:30:13 826 1

原创 聊聊限流算法

常见的限流算法有计数限流,固定窗口限流,滑动窗口限流,漏桶算法限流,令牌桶算法限流。漏桶算法是限流算法的一种,其原理是将待处理数据统一放在一个桶中,然后根据匀速从桶中拿出数据处理。redis 时间片 流控redis时间timeout redis时间窗口限流。

2024-04-24 14:56:12 452 1

原创 一致性hash

普通的hash算法 (hashcode % size ),如果size发生变化,几乎所有的历史数据都需要重hash、移动,代价非常大,常见的java中的hashmap就是如此。那如果在hash表扩容或者收缩的时候size能够保持不变,即历史数据在hash表中的位置不变,这样就解决了hash表阔缩时的大量数据移动问题。一致性hash可以理解,就是hash函数(hashcode%size)的size保持不变,从而保证了hash函数的前后一致性。一致性hash算法。

2024-04-24 01:34:07 4799

原创 Redis集群部署

借鉴:Redis集群部署

2024-04-24 00:32:15 225

原创 easyexcel注解大全

借鉴:easyexcel注解

2021-09-16 18:04:11 2149

原创 easyExcel导入导出execl文件处理参考方案

easyExcel一对多模板导出合并【好用】EasyExcel实现自定义合并策略easyexcel导出自定义表头

2021-07-01 09:22:16 892

原创 使用Git 将本地代码提交到远程分支

一、步骤:1、首先建立本地分支,名称和远程分支一样;比如develop2、把远程某个分支上的内容都拉取到本地git pull origin devlop(远程分支名称)3、提交本地分支代码到远程分支3.1 将代码提交到暂存区git add .3.2 添加提交信息git commit -m "提交的信息"3.3 提交本地分支代码到远程分支(注意:该命令应该在本地分支下执行)git push origin develop(远程分支名称/和本地分支名称一样)

2021-04-21 15:05:11 19812 3

原创 HTTP请求时connectionRequestTimeout 、connectionTimeout、socketTimeout三个超时时间的含义

connectionRequestTimout:指从连接池获取连接的timeoutconnetionTimeout:指客户端和服务器建立连接的timeout,就是http请求的三个阶段,一:建立连接;二:数据传送;三,断开连接。超时后会ConnectionTimeOutExceptionsocketTimeout:指客户端从服务器读取数据的timeout,超出后会抛出SocketTimeOutException实战示例:@Configuration@EnableConfiguration

2020-11-27 12:46:55 9205

原创 Java类的加载顺序

存在继承关系的类 加载机制及执行过程先说结果:1、父类静态代码块 exec...2、子类静态代码块 exec...3、父类代码块 exec...4、父类无参构造函数 exec...5、子类代码块 exec...6、子类无参构造函数 exec...验证:1、新建父类Personpackage com.rmk.toextends;public class Person { private String name; private int ...

2020-09-02 18:16:57 227

转载 【最新】解决Github网页上图片显示失败的问题

最近Github上图片显示不出来,奇怪啥原因,网上大概查了下。亲试有效:https://blog.youkuaiyun.com/qq_38232598/article/details/91346392

2020-08-29 00:49:39 555

原创 java转义问题【java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern】

详细错误如下:java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern at java.net.URLDecoder.decode(URLDecoder.java:187)我们知道中文的话,浏览器肯定会转码,但是转码后的格式一般都是%两个字符,也就是百分号后面,接英文字母或者数字!但是假设参数中原本就有百分号%的话,这时浏览器不会处理,接着再使用decode进行解码时,...

2020-05-12 12:25:41 1290

原创 Java IO流

Java IO 也称为IO流,IO = 流,它的核心就是对文件的操作,对于 字节 、字符类型的输入和输出流。IO是指对数据流的输入和输出,也称为IO流,IO流主要分为两大类,字节流和字符流。字节流可以处理任何类型的数据,如图片,视频等,字符流只能处理字符类型的数据。IO流的本质是数据传输,并且流是单向的。常用的字节流FileInputStream、FileOutputStream、ObjectInputStream、ObjectOutputStream。IO分阻塞型IO和非阻塞型IO(.

2020-05-09 16:33:58 1290

原创 git的add、commit、push的详细介绍

简单的代码提交流程git status 查看工作区代码相对于暂存区的差别 git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录 git commit -m ‘注释’ 将缓存区内容添加到本地仓库 git pull origin master先将远程仓库master中的信息同步到本地仓库master中 git push origin master 将本地版本库推送到远程服务器, origin是远程主机,master表示是远程服务器上的master分支和本地分支重名的

2020-05-09 01:34:32 6070

原创 git 文件添加、提交,文件撤销、删除,版本回退等

1.添加文件、提交文件1.1在learngit目录下创建一个readme.txt文件,并且输入内容。1.2添加文件到版本库learngit1.2.1使用git add 文件告诉Git把文件添加到暂存区1.2.2用命令git commit -m "文件说明"告诉Git把文件提交到仓库其中,-m后的“引号内容”为提交时的说明。2.修改文件,查看记录,提交文件2.1修改readme.txt的内容2.2修改完毕后,运行git status命令看看结果此时.

2020-05-08 22:27:49 1001

原创 Java Web 获取客户端真实IP

发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP。详细说明见链接:Java Web 获取客户端真实IP...

2020-04-24 15:36:54 360

原创 JAVA 文件转换为Base64字符串(互转)

序言:最近在做项目时,遇到的文件,将图片文件存储在数据库,通过Base64做中间转换。文件上传到---->数据库:先将文件上传的文件通过Base64转换为字符串,然后将对应Base64字符串存储到数据库。数据库获取---->到页面:从数据库获取对应Base64字符串,通过Base64转换为图片文件,输出到页面。实现:文件和Base64之间的相互转化工具类如下:...

2019-11-24 17:12:47 14545 2

原创 Map集合中的同一键值key重复赋值(Map.put()、Map.putAll())

前言:验证:对Map集合中的同一键值key重复赋值?结果:对Map集合中的同一键值key重复赋值会覆盖之前的结果。验证如下: /** * 验证:对Map集合中的同一键值key重复赋值? * 结果:对Map集合中的同一键值key重复赋值会覆盖之前的结果 */ Map<String, Object> map = new Hash...

2019-11-24 14:05:02 20667

原创 Navicat 连接MySQL 8.0.16 出现2059错误

一、错误使用Navicat Premium 连接MySQL时出现如下错误:二、原因mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。三、解决更改加密规则:mysql -uroot -ppassword #登录 use mysql; #选择数据库 #...

2019-11-21 09:09:31 247

原创 teamviewer检测为商业用途 5分钟后关闭解决方法

相信很多办公的人员都会喜欢使用远程的工具,目前在是市面上使用较多的远程工具有teamviewer,向日葵,还有QQ的远程。但是使用比较频繁的还是teamviewer,但是teamviewer使用比较频繁之后,就会有所限制,就会弹出检测为商业用途 5分钟后关闭的字样,这样很不方便。步骤一:关于如何解决“teamviewer检测为商业用途 5分钟后关闭“这样一个问题呢?相信很多网友都尝试过了,...

2019-08-08 16:13:11 30983 6

原创 React入门(三):React State(状态)

想了解更多—>上一篇文章:React简介(二):React组件的生命周期React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。以下实例创建一个名称扩展为 React.Componen...

2019-08-08 16:09:39 578

原创 Spring Boot(五):Spring Boot中使用JavaMailSender发送邮件

接上一篇文章:Spring Boot(四):Spring Boot中使用Swagger2构建强大的RESTful API文档相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用JavaMailSender发送邮件。...

2019-07-31 12:54:46 567

原创 Spring Boot(四):Spring Boot中使用Swagger2构建强大的RESTful API文档

接上一篇文章:Spring Boot(三):Spring Boot构建RESTful API与单元测试由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。...

2019-07-31 12:32:49 273

原创 Spring Boot(三):Spring Boot构建RESTful API与单元测试

接上一篇文章:Spring Boot(二):Spring Boot快速入门首先,回顾并详细说明一下在快速入门中使用的@Controller、@RestController、@RequestMapping注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。@Controller:修饰class,用来创建处理http请求的对象 @RestCont...

2019-07-31 12:18:20 296

原创 Spring Boot(二):Spring Boot快速入门

接上一篇文章:Spring Boot入门(一):Idea搭建Spring Boot项目简介在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!Spring Boot让我们的Spring应用变的更轻...

2019-07-31 11:57:57 287

原创 SpringBoot2.0+Mybatis中使用@Select、@Insert注解报红

大多是引入的依赖不对大多数人是引用了这个依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId></dependency>但是要使用这两...

2019-06-19 11:33:36 11660 4

原创 SpringBoot2.0: Caused by: java.lang.NoClassDefFoundError: redis/clients/jedis/JedisPoolConfig

学习SpringBoot2.0过程中,使用Redis时可能会遇到这个问题。主要原因是jar包的问题。配置文件pom.xml一般是这样的:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data...

2019-06-14 17:12:59 12322 2

原创 springboot2.0: NOAUTH Authentication required.

学习springboot过程中碰到这个问题,搞了好长时间才解决,记录一下,希望能给遇到此坑问题的你一个好的解决方法。先来看报错信息如下:org.springframework.dao.InvalidDataAccessApiUsageException: NOAUTH Authentication required.; nested exception is redis.clients....

2019-06-14 15:56:12 13217

原创 Spring Boot入门(一):Idea搭建Spring Boot项目

一、Idea搭建Spring Boot项目具体步骤如下:1、第一步:新建项目File——New——Project,新建项目。2、选择Spring Initializer、JDKjdk版本1.8即可,联网环境下选默认 https://start.spring.io3、编译Metadata信息注意:Artfact值只能为小写!!4、Web信息和Spring B...

2019-04-28 19:12:11 501

原创 Chrome快捷键大全

一、Chrome快捷键大全Ctrl+N 打开新窗口。Ctrl+Shift+N 无痕模式打开新窗口。Ctrl+T 打开新标签页。Ctrl+W关闭当前标签页。Ctrl+Shift+T打开上次关闭的标签页。Ctrl + F4 关闭chrome浏览器Ctrl+Tab 或 Ctrl+PgDown 切换到下一个标签页。Ctrl+Shift+Tab 或 Ctrl+PgUp 切...

2019-04-26 16:44:09 1199

原创 React入门(二):React组件的生命周期

想了解更多—> 上一篇文章:React入门(一):第一个React应用程序序言:一、组件的生命周期 二、过程和说明 三、实战举例一、组件的生命周期 componentWillMount componentDidMount componentWillUnmount componentWillUpdate componentDidU...

2019-03-26 17:05:52 357

原创 React入门(一):第一个React应用程序

前言:1、React首次提出在2014的f8大会(facebook组织的年度技术峰会)上。正文:本文只是新手入门了解React的基础的基础,针对此前对React完全不了解的人,无需本地搭建React环境,即可看到React源码的庐山真面目。可以创建一个html文件直接粘贴我的代码在浏览器上看到效果。如下:头文件中导入的三个是React所必须的文件。<!DOCTY...

2019-03-01 17:15:22 526

原创 td 固定宽度 内容过长 超出隐藏显示小数点,鼠标放上去显示

table添加一个样式:table-layout:fixed;table要给个宽度,可以是固定值,可以是百分比。white-space: nowrap;text-overflow: ellipsis;overflow: hidden;实例:jsp页面:&lt;table id="tab"&gt;        &lt;td id='name' title='$...

2018-12-20 14:15:51 2849

原创 微信小程序全局配置文件app.json中window:backgroundColor“不生效”

那些年我们一起踩过的坑~今天说一下微信小程序全局配置文件app.json中window的backgroundColor属性,设置之后发现没效果。查了资料发现原来这个backgroundColor属性不是指页面窗口的背景颜色,而是下拉当前页面后出现的刷新页面的窗口背景色。真正的设置窗口背景颜色可以在app.wxss里面添加page标签设置背景色,具体如下所示:page{    ...

2018-12-06 11:36:26 12707

原创 Python爬虫(三):python抓取网页中的图片到本地

接上一篇文章:Python爬虫(二):爬虫获取数据保存到文件简介:python3抓取网页中的图片到本地的过程如下:1、抓取网页2、获取图片地址3、抓取图片内容并保存到本地实例:抓取 豆瓣电影top250 中的电影图片,并保存到本地 代码:import urllib.requestimport reurl = 'https://movie.doub...

2018-11-28 16:25:28 24017 16

原创 java删除文件、删除目录及目录下的文件

一、简介本文包含以下内容删除文件,可以是文件或文件夹(适用于 不知道是文件还是目录,都可以直接删除) 删除单个文件 删除目录及目录下的文件二、代码import java.io.File;public class FileUtils { /** * 删除文件,可以是文件或文件夹 * @param fileName:要删除的文件名 * @return 删除成功返...

2018-11-26 15:06:47 7264

原创 Java工具类StringUtils中trim、trimToEmpty、trimToNull方法详解

1. trim方法源码详解public static String trim(String str){      return str == null ? null : str.trim();}源码解析:输入参数为null时返回null,否则去除掉字符串两边的空格或者制表符(tab键,一个tab键代表两个空格);2. trimToEmpty方法源码详解public s...

2018-11-26 14:51:55 1733

原创 python3实现猜数字游戏

需求目标:需求:猜数字游戏1: 开始游戏产生一个1~100随机数2: 用户输入,游戏根据输入值提示大或者小3: 用户根据提示继续输入,知道猜中为止4: 如果用户输入错误,程序可以处理异常。代码如下:# coding=utf-8import randomnum = random.randint(0, 100)while True: try: ...

2018-11-23 13:09:05 2967

原创 python3之NameError: name 'raw_input' is not defined

原因:python3中用 input()输入函数 代替 python2中的raw_input()所以改为 将raw_input改为input就可以了详细说明:python2中raw_input() 用来获取控制台的输入。raw_input() 将所有输入作为字符串看待,返回字符串类型。注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,...

2018-11-23 11:19:01 1786

空空如也

空空如也

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

TA关注的人

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