自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(189)
  • 收藏
  • 关注

原创 一文彻底弄懂MySQL的字符集和排序规则

字符集就是多个字符的集合,比如诗集里面就包含了诗,文集里面就包含了不同的文章,而不同的字符集里面就包含了不同的字符,也就能够支持存储不同类型的数据。MySQL常用的字符集如下:GBK:支持中文,但是不是国际通用字符集UTF-8:支持中英文混合场景,是国际通用字符集latin1:MySQL默认字符集utf8mb4:完全兼容UTF-8,用四个字节存储更多的字符如果只做国内业务,为了性能考虑可以选择GBK;但哪个公司没有一个国际化的梦想,为了将来考虑,选择utf8mb4。

2024-03-19 22:22:54 355

原创 git 如何让单个文件回退到指定的版本

2、记住需要回退版本的提交ID。1、进入到文件所在文件目录。3、回退到该文件指定的版本。

2022-11-24 12:06:01 6748 1

原创 Eclipse 报错: “Workspace in use or cannot be created, chose a different one.”

打开eclipse报错:“Workspace in use or cannot be created, chose a different one.” 意识是“正在使用或无法创建工作区,选择另一个”在删除 .lock文件得时候他会报说 ‘此文件已经被xxxxx占用’,就算你把eclipse关闭了也不行。此时最方便的方法就是关机重启,再删除.lock文件即可,简单无脑。解决办法: 找到你eclipse得工作区,打开 .metadata 文件夹把.lock 文件删除掉。

2022-10-27 14:19:51 1067 1

原创 微服务负载均衡器Ribbon实战

目前主流的负载均衡方式有两种:集中式负载均衡,在客户端和服务端中间建立一个独立的代理来做负载均衡,硬件比如F5;软件比如Nginx。根据客户自己的情况做负载均衡,Ribbon 就属于这一种。Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也可以实现我们自己的

2022-08-06 22:29:53 434

原创 Mysql索引优化实战

mysql索引优化

2022-08-05 18:00:46 185

原创 微服务负载均衡器LoadBalancer实战

使用webClient在等待响应的同时不会阻塞正在执行的线程 ;这种异步编程的方式避免了线程阻塞,线程处理完一个请求紧接着可以处理下一个,能够提高系统的吞吐量;而restTemplate 这种方式是阻塞的,会一直占用当前线程资源,直到http返回响应。如果等待的请求发生了堆积,应用程序将创建大量线程,直至耗尽线程池和所有可用内存。同时伴随着频繁的CPU上下文切换,可能导致性能下降。但是作为上述两种方式的调用者(消费者)而言,其最终获得http响应结果的耗时并未减少。比如浏览器访问上述ProductCon

2022-08-02 20:45:58 1047

原创 Alibaba微服务组件Nacos注册中心

1、Nacos可以快速实现动态 服务发现、服务配置、服务元数据及流量管理等功能。2、可以采用prometheus+grafana监控Nacos。

2022-07-31 21:46:07 343 1

原创 一条SQL在MySQL中是如何执行的

1、MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等核心功能;存储引擎层负责数据的存储和读取。2、连接器负责管理连接和权限校验。3、查询缓存每次SQL查询时会先去缓存里面查询,缓存里面key为SQL,value为结果集;如果SQL能匹配上,可以直接返回结果,省去额外的复杂操作;如果无法匹配上,则会继续执行后面的操作,将结果存入缓存中;httpshttps。...

2022-07-30 16:36:28 208

原创 索引最佳实践

索引优化

2022-07-24 23:12:46 90

原创 Explain详解

Explain详解

2022-07-24 18:50:55 877

原创 深入理解Mysql索引底层数据结构与算法

深入理解Mysql索引底层数据结构与算法

2022-07-24 15:18:26 236

原创 volatile关键字及其作用

volatile关键字及其作用

2022-07-22 16:48:33 1316

原创 多线程基础

多线程基础1.使用常见命令分析线程的信息cmd中输入jps+jstack -l 线程id2)使用jmc.exe命令找到对应线程->MBean服务器3)使用jvisualvm.exe命令找到对应线程->线程推荐使用第二种方式。package multiThreadProgram.threadStates;public class StatesTest { public static void main(String[] args) { for (in

2022-05-04 00:11:35 150

原创 多线程和串行化比较

多线程一定比串行化快码?答案是否定的,在任务量不大的时候串行化比多线程更快,当任务量大时多线程的优势才能显示出来。例子,分别定义一个多线程方法和串行化方法来测试执行同一个任务花费的时间。package com.teasir.concurrent;public class ConcurrencyTest { private final static long count = 100000000; public static void main(String[] args) thro

2022-01-14 00:38:26 312

原创 Java集合框架及基本接口

Collection接口及迭代器泛型方法的使用集合基本接口和实现ListArrayListLinkedListListIterator接口和Iterable接口的区别SetHashSetTreeSetQueueArrayDeque和LinkedListPriorityQueueMapTreeMapHashTable和ConcurrentHashMapLinkedHashMap

2022-01-12 17:50:52 1489

原创 数据库事务和隔离级别详解

事务、原子性、隔离性、一致性、持久性、隔离级别、mysql、Oracle。

2021-12-22 22:45:53 737

原创 接口和抽象类的区别

接口和抽象类的存在是为了提高代码的复用性,如果有相同的特征可以通过接口和抽象类剥离出来。接口就好比一个个不同功能的工具,如果有一个类需要多个不同的工具组合成一个工具箱,那这个类可以同时实现多个类,将每个接口中的方法都实现来组成一个有多个不同功能的工具箱类。抽象类就好比现在有一个半成品的工具箱,里面有工具箱的箱子,各种工具零件,但还没组装完成,也没有完整工具箱的功能。需要有子类来继承这个抽象类并实现里面的方法去把工具箱组装好。接口中的方法是不能实现的,而抽象类中可以有已实现的方法。子类可以实现多个接口

2021-12-21 22:43:57 182

原创 Java三大特性之封装、继承、多态

Java三大特征、封装、继承、多态、父类引用指向子类。

2021-12-20 22:08:20 478

原创 spring动态代理之cglib动态代理

jdk动态代理、静态代理、代理、cglib动态代理、springAop原理。

2021-12-20 20:36:10 1312

原创 java动态代理之jdk动态代理详解

java、srping动态代理、jdk动态代理、反射、代理、反编译、源码解析、反编译工具、事务。

2021-12-18 22:22:02 587

原创 Java静态代理详解

spring、代理、静态代理。

2021-12-18 16:50:03 863

原创 spring IOC和DI详解

spring、IOC、DI、Java反射。

2021-12-16 22:36:13 442

原创 Java反射机制详解

Java反射、类的加载机制、获得Class对象、编译期、运行期。

2021-12-16 22:05:35 1056

原创 Java正则表达式匹配及常见错误处理

Java有一个方法可以实现正则表达式的匹配,如下:Pattern.matches(regex,str)其中regex为匹配的规则,str为待匹配的字符串。/** * @description:正则表达式匹配查找测试 * @author: teasir * @create: 2021/12/16 **/public class PatternTest { public static void main(String[] args) { List<String&g

2021-12-16 16:37:38 1964

原创 spring boot自动装配原理详解

如何将自动配置类加载到Spring容器中?springboot的启动类有一个@SpringBootApplication注解 ,这个注解是spring boot自动装配原理的关键。@SpringBootApplication注解是一个复合注解,里面包含一个@EnableAutoConfiguration注解。@EnableAutoConfiguration的定义如下:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Do

2021-12-14 23:34:02 728

原创 gitee提交代码常见操作和错误处理

如何同步本地项目到gitee1、先与gitee建立的远程仓库关联git remote add origin [email protected]:tea-Sir/easy-rabbitMQ.git(对应的远程仓库地址)2、提交所有文件到暂存区git add -A3、提交文件到本地分支git commit -m “提交源文件”4、提交文件到gitee远程分支git push origin master常见错误1、fatal: unable to auto-detect email address (

2021-12-11 22:49:36 1027

转载 谈谈synchronized与ReentrantLock的区别

工作与面试中经常会遇到Java常见的加锁方法,本文着重介绍synchronized与ReentrantLock的区别。① 底层实现上来说,synchronized 是JVM原生的锁实现方式,是Java关键字,通过monitor对象头中设置标记来完成(monitorenter与monitorexit),对象只有在同步块或同步方法中才能调用wait/notify方法,ReentrantLock 是从jdk1.5以来(java.util.concurrent.locks.Lock)提供的API层面的锁。syn

2021-11-25 22:56:58 282

原创 Java日期转字符串、字符串转日期

11-18日期转字符串、字符串转日期SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);try {//1、日期转字符串Calendar calendar = Calendar.getInstance();Date date = calendar.getTime();String dateStringParse = sdf.format(date);System.out.println(dateStringPar

2021-11-24 10:21:45 1040

原创 java对于中文的各种操作判断

package com.test;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test {@org.junit.Testpublic void test(){String fileName = “test,中文”;System.out.println(filterChinese(fileName));}/** * 判断字符串中是否包含中文 * @param str * 待校验字符

2021-10-11 19:29:06 416

原创 内存列表对日期类型数据排序

最近碰到一些业务需求,第三方接口返回一堆数据没有进行任何的处理,但前端显示需要按创建日期倒序排序,需要能在内存中进行排序。有两种方式:1、对String类型日期数据排序 List<UserDateSort2> list = new ArrayList<>(); list.add(new UserDateSort2("张三", "1987-05-23 12:34:07")); list.add(new UserDateSort2("李

2021-10-08 09:26:19 328

原创 Java实现相似查询

业务场景:需要在内存中对数据进行相似查询处理。 public static void main(String[] args){ String content = "I am noob " + "from runoob.com."; String pattern = ".*runoob.*"; boolean isMatch = Pattern.matches(pattern, content); Syste

2021-09-16 16:11:12 438

原创 DECIMAL(16,4)的长度含义

DECIMAL(16,4) 总共能存16位数字,末尾4位是小数(小数点不算在长度内)

2021-09-06 19:42:12 1417

原创 Java内存分页工具类

有些业务场景无法直接从数据库进行分页,需要我们通过内存进行分页,下面的工具类利用subList() 方法实现。import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.List;/** * 类名称:RAMPager * 类描述:内存分页工具 * 创建人:WeJan * 创建时间:2019年07月22日 13:43 * Version: 1.1 */pub

2021-09-03 11:22:00 669

原创 Java删除字符串中的指定字符

Java删除字符串中的指定字符有以下两种方法:1.替换函数,替换成空白String test = (“chaojimali”);test = test.replace(“chaoji”,"");2.截取函数,删除字符String test = (“chaojimali”);test = test.substring(5,12);...

2021-09-02 09:25:25 25112

原创 Linux常用操作

1、查看日志tail -f "20210824.log"实时查看20210824.log的日志。2、返回上一层、下一层cd test进入下一层目录cd ..返回上一层目录3、查看当前目录所有文件夹和文件ll4、删除文件夹及文件rm -rf 20210824删除20210824文件夹及所有文件...

2021-08-24 21:05:01 55

原创 mysql怎么将String截取并转化为Date

业务场景:数据库存有一个"2021-08-23 14:43:36.722"类型的字符串,需要将该字符串转化为"2021-08-23"的Date类型。1、从左开始截取字符串left(str, length)  说明:left(被截取字段,截取长度)  eg.“2021-08-23 14:43:36.722”>“2021-08-23”2、将String类型转化为Date使用的函数:STR_TO_DATE(str,format)说明 str:字符形式的日期 format:格式

2021-08-23 16:20:35 2381

原创 org.eclipse.swt.SWTError: No more handles的解决

解决方案找到目录 eclipse\workspace.metadata.plugins\org.eclipse.e4.workbench把这个目录下的所有文件删除。

2021-08-22 15:59:53 951

原创 spring系列(一)之ioc

1.ioc概述ioc中文名叫控制反转,实际上是指一个对象控制权的反转。使用spring后可以将对象的创建、初始化、销毁都交给spring容器管理,要使用该对象时直接从spring容器中获取,不用重新去创建,可以有效降低对象之间的耦合。2.ioc初见2.1.创建一个maven项目,添加ioc依赖。<dependency> <groupId>org.springframework</groupId> <artif

2021-08-21 19:24:22 175

原创 String、Date、Calendar之间的相互转化

public static void main(String[] args) throws ParseException { //String转化为Date String string = "2016-10-24 21:59:06"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date df=sdf.parse(string); .

2021-08-20 16:24:56 240

原创 Eclipse断点不起作用原因

具体现象:Debug模式下进行断点调试,发现action文件的断点可以起作用,impl实现层文件的断点不起作用;仔细查看断点符号正常的断点显示的是一个对号和一个小圆点,不起作用的没有对号;网上解决方案:1、设置了Skip All Breakpoints,设置后断点符号会变成反斜杠和小圆点;这种原因不勾选这个选项即可;2、找到window→preferences→Run/Debug→勾选Skepticalbreak points during a ‘Run to Line’ operation,勾选

2021-08-14 15:53:38 7286 1

空空如也

空空如也

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

TA关注的人

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