- 博客(189)
- 收藏
- 关注
原创 一文彻底弄懂MySQL的字符集和排序规则
字符集就是多个字符的集合,比如诗集里面就包含了诗,文集里面就包含了不同的文章,而不同的字符集里面就包含了不同的字符,也就能够支持存储不同类型的数据。MySQL常用的字符集如下:GBK:支持中文,但是不是国际通用字符集UTF-8:支持中英文混合场景,是国际通用字符集latin1:MySQL默认字符集utf8mb4:完全兼容UTF-8,用四个字节存储更多的字符如果只做国内业务,为了性能考虑可以选择GBK;但哪个公司没有一个国际化的梦想,为了将来考虑,选择utf8mb4。
2024-03-19 22:22:54
1484
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
1352
1
原创 微服务负载均衡器Ribbon实战
目前主流的负载均衡方式有两种:集中式负载均衡,在客户端和服务端中间建立一个独立的代理来做负载均衡,硬件比如F5;软件比如Nginx。根据客户自己的情况做负载均衡,Ribbon 就属于这一种。Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也可以实现我们自己的
2022-08-06 22:29:53
557
原创 微服务负载均衡器LoadBalancer实战
使用webClient在等待响应的同时不会阻塞正在执行的线程 ;这种异步编程的方式避免了线程阻塞,线程处理完一个请求紧接着可以处理下一个,能够提高系统的吞吐量;而restTemplate 这种方式是阻塞的,会一直占用当前线程资源,直到http返回响应。如果等待的请求发生了堆积,应用程序将创建大量线程,直至耗尽线程池和所有可用内存。同时伴随着频繁的CPU上下文切换,可能导致性能下降。但是作为上述两种方式的调用者(消费者)而言,其最终获得http响应结果的耗时并未减少。比如浏览器访问上述ProductCon
2022-08-02 20:45:58
1208
原创 Alibaba微服务组件Nacos注册中心
1、Nacos可以快速实现动态 服务发现、服务配置、服务元数据及流量管理等功能。2、可以采用prometheus+grafana监控Nacos。
2022-07-31 21:46:07
388
1
原创 一条SQL在MySQL中是如何执行的
1、MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等核心功能;存储引擎层负责数据的存储和读取。2、连接器负责管理连接和权限校验。3、查询缓存每次SQL查询时会先去缓存里面查询,缓存里面key为SQL,value为结果集;如果SQL能匹配上,可以直接返回结果,省去额外的复杂操作;如果无法匹配上,则会继续执行后面的操作,将结果存入缓存中;httpshttps。...
2022-07-30 16:36:28
256
原创 多线程基础
多线程基础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
187
原创 多线程和串行化比较
多线程一定比串行化快码?答案是否定的,在任务量不大的时候串行化比多线程更快,当任务量大时多线程的优势才能显示出来。例子,分别定义一个多线程方法和串行化方法来测试执行同一个任务花费的时间。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
378
原创 Java集合框架及基本接口
Collection接口及迭代器泛型方法的使用集合基本接口和实现ListArrayListLinkedListListIterator接口和Iterable接口的区别SetHashSetTreeSetQueueArrayDeque和LinkedListPriorityQueueMapTreeMapHashTable和ConcurrentHashMapLinkedHashMap
2022-01-12 17:50:52
1952
原创 接口和抽象类的区别
接口和抽象类的存在是为了提高代码的复用性,如果有相同的特征可以通过接口和抽象类剥离出来。接口就好比一个个不同功能的工具,如果有一个类需要多个不同的工具组合成一个工具箱,那这个类可以同时实现多个类,将每个接口中的方法都实现来组成一个有多个不同功能的工具箱类。抽象类就好比现在有一个半成品的工具箱,里面有工具箱的箱子,各种工具零件,但还没组装完成,也没有完整工具箱的功能。需要有子类来继承这个抽象类并实现里面的方法去把工具箱组装好。接口中的方法是不能实现的,而抽象类中可以有已实现的方法。子类可以实现多个接口
2021-12-21 22:43:57
215
原创 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
2252
原创 spring boot自动装配原理详解
如何将自动配置类加载到Spring容器中?springboot的启动类有一个@SpringBootApplication注解 ,这个注解是spring boot自动装配原理的关键。@SpringBootApplication注解是一个复合注解,里面包含一个@EnableAutoConfiguration注解。@EnableAutoConfiguration的定义如下:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Do
2021-12-14 23:34:02
792
原创 gitee提交代码常见操作和错误处理
如何同步本地项目到gitee1、先与gitee建立的远程仓库关联git remote add origin git@gitee.com: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
1165
转载 谈谈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
327
原创 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
1111
原创 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
458
原创 内存列表对日期类型数据排序
最近碰到一些业务需求,第三方接口返回一堆数据没有进行任何的处理,但前端显示需要按创建日期倒序排序,需要能在内存中进行排序。有两种方式: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
390
原创 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
540
原创 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
733
原创 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
25291
原创 Linux常用操作
1、查看日志tail -f "20210824.log"实时查看20210824.log的日志。2、返回上一层、下一层cd test进入下一层目录cd ..返回上一层目录3、查看当前目录所有文件夹和文件ll4、删除文件夹及文件rm -rf 20210824删除20210824文件夹及所有文件...
2021-08-24 21:05:01
96
原创 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
2497
原创 org.eclipse.swt.SWTError: No more handles的解决
解决方案找到目录 eclipse\workspace.metadata.plugins\org.eclipse.e4.workbench把这个目录下的所有文件删除。
2021-08-22 15:59:53
1263
原创 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
231
原创 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
328
原创 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
8356
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人