自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (1)
  • 收藏
  • 关注

原创 docker终于成功安装rocketmq

有个docker安装rocketmq的丧心病狂的错误教程 被抄的群魔乱舞,但是根本!用不了!就是找不到broker!不过终于找到一个可行的教程了。https://blog.csdn.net/ming19951224/article/details/109063041我为什么要用docker安装rocketmq?因为是在给公司的mac电脑安,要是自己的windows就没这么多事了。。。当然mac安rocketmq也很简单啦,但是我说jdk11版本。。。他不是很支持。。。当然也不是我自己没事闲的非要

2022-03-08 15:32:23 279 1

原创 实现让枚举的一个属性/参数可以是任何类型--枚举和Supplier接口的妙用

背景提要(不感兴趣直接跳过):最近负责给项目做路由迁移,因为发生过域名被运营商突然停用以至于????不对的惨痛事故,公司决定,代码里但凡用到的????都接入路由平台统一管理,如果到时候某个域名被运营上停用,路由平台那边的人可以一键把失效域名a改为b。同时每个大公司,都有配置中心,类似zk的东西(为什么说类似是因为一般都包了一层),这个配置的作用就是,不同的环境和泳道可能对于某个 东西 需要不同的值。通过配置中心 来实现对开发人员可见 统一管理。这样如果需要改值,直接改配置中心,不用重新部署代码了。(

2021-11-12 17:14:37 887

原创 流处理之reduce累加属性值

废话少说,上代码。 public static void main(String[] args) { Long[] nums = {1L,2L,3L,4L}; List<Long> ints = Arrays.asList(nums); System.out.println(ints.stream().reduce(0L,(o1, o2) -> o1 + o2)); }解释一下代码里面那个0L哈,这个用处就是告诉reduc

2021-11-01 16:34:59 418 1

原创 按照特定的字符串顺序排序list

现在写的需求是这样要返回优惠券 但是要按照特定的券顺序来 对应券的一个属性 是字符串。也就是说 如何把字符串list 按照特定 的字符串内容 的顺序来排序。网上这个东西有点不好找,不过也搞出来了,记录一下。希望可以帮到和我有同样需求的人。代码:代码优化空间其实很大,不过我就不优化了哈懂得都懂。看懂核心就行。核心就是利用一个已有顺序的字符串list,用它的indexof返回元素的坐标值。比较坐标值即可拿到自定义顺序。 public static void main(String[]

2021-11-01 00:19:21 2385

原创 [大厂实习记录3]如何优雅的实现需求-->“记录某些更改操作的具体更改信息发给mq“

记一次需求好久没写日志了,不是没活,是没时间写,需求都很赶,且都有后续优化,但日志也很有必要写,经验是宝贵但,记忆是不可靠的。必须要把经验记录下来。需求大概是 需要在执行“某些”操作(这些操作有个特点就是执行后会造成更改数据库的结果)之后记录下来,需要记录更改了什么。然后把这些记录生产成消息发给mq去消费。对于这次需求的实现,我是这样思考的。1.需要记录这个操作更改了什么,那一定是有执行前和执行后的比较对象的。那如何优雅的比较同一个类的两个不同实例呢?首先,那肯定是比较属性,但不能人工代码一个个

2021-10-14 21:33:00 116

原创 using filesort优化

1.容易产生using fielsort的场景select * from table where xx = xx and order by yy = yy伪代码举个例子,where和order by 的索引经常无法兼顾,如果按照where来确定索引,那么在order by 时,就必然会引起using filesort。2.那怎么解决呢?1.我们可以在业务层面解决,例如在自己的代码里面对从数据库取出来的数据进行排序,而不是将这些都交给数据库来做。2.使用mysql索引,将排序的内容放到索引里,借助

2021-10-01 14:31:46 788

原创 [大厂实习记2]接上篇,Mysql单列索引失效问题

上篇说到了,要弄一个联合索引,我决定先挨个字段看一下哪个索引字段筛选度最高,我好把它放前面。然后,令人惊喜的知识增加了!我设置了一个查询条件,要求大于索引字段a(时间戳,非字符串存储)explain select * from 表 where 时间戳 > 1600000000结果:key字段为空根本没用上索引。好家伙,只查了一个索引字段啊,而且没有什么计算的表达式啊,查询条件也都是相同类型也不是字符串啊,怎么单列索引失效了??老办法,先查博客看看有没有答案。在这里,总结一下会导

2021-09-29 15:06:52 236

原创 [大厂实习记1】关于多个单列索引和联合索引哪个更快

今天,mentor让查一个接口的select语句为什么那么慢。于是就去看了,这个接口用了很多单列索引和in。以及模糊搜索,但是因为需求也没办法写成 like “xx%”这种形式,所以目前就从单值索引和in下手。我第一反应就是explain语句去看一下走没走索引,是不是走全表了,什么查询类型。大方向没错,就是中间出了点小插曲,索引命名xx_xx真的很像联合索引。。。结果是单列索引。。嗯。。我就有个疑问,多个单列索引和联合索引(目前没有联合索引)效率差多少?于是踏上了求知之旅,到底答案是什么

2021-09-28 21:55:18 480

原创 微服务雪崩/微服务熔断/微服务降级区别(简单总结版)

微服务雪崩/微服务熔断/微服务降级区别微服务雪崩微服务熔断微服务降级微服务雪崩1.调用链是链式结构,A调用B调用C如果因为服务C崩溃也造成A和B扛不住压力,就是服务雪崩,和数据库中的正好相反哈,这里雪崩指的是造成压力都打在上面服务,而指的是都打在数据库上。微服务熔断1.当下游的服务因为某种原因突然变得不可用或响应过慢,上游服务为了保证自己整体服务的可用性,不再继续调用目标服务,直接返回,快速释放资源。如果目标服务情况好转则恢复调用。微服务降级1.当下游的服务因为某种原因响应过慢,下游服务主动

2021-09-01 10:33:03 224

原创 自定义线程池代码+详解

首先明白线程池工作原理。当线程池提交一个任务时,首先会判断核心线程数是否已满,没满就直接new一个核心线程去执行任务。如果满了,就尝试加到任务队列里。首先判断任务队列是否满了,没满就直接加,满了就去查看是否可以直接new一个非核心线程去执行任务。先看线程池内线程数是否已达到最大,如果没达到,那就直接new一个非核心线程去执行任务,如果达到了那就根据饱和策略来拒绝任务。工作原理就是这样,现在我们来尝试自定义线程,我们需要四样东西。首先是测试类,没什么可说的。重点的三样是:任务类worker执

2021-05-19 19:18:11 269

原创 Spring事务7种传播行为速记方法

上图关于spring事务完整的知识点可以看我的上一篇博客。Spring事务知识清单

2021-05-14 20:03:34 261

原创 Spring事务面试知识清单(内含七种事务隔离级别的快速记忆方法)

Spring事务五种隔离级别(其实是四种,但是有一种默认的也要单独记)七种事务传播行为事务管理的三种接口编程式事务(比如用xml)声明式事务(用注解)五种隔离级别(其实是四种,但是有一种默认的也要单独记)首先复习一下事务的四个特性ACID:ACID特性:原子性(操作不可分割),一致性,隔离性(多个事务并发时不会导致数据不一致),持久性(对数据的修改是永久的)脏读:一个事务读取到另一事务未提交的更新数据不可重复读:一个事务期间两次读到同一个数据不一致幻读:读取的数据的行数有问题可重复读:当使用

2021-05-14 20:00:38 399

原创 为什么你代码没写错却报java.time.format.DateTimeParseException: Text ‘2020-10-2‘ could not be parsed at index 8

我,一个从大一开始学习java,大学第一个假期学到servlet写web,下学期就开始调接口打比赛的,大二在校跟老师参加项目拿到软著的小辣鸡,自认为是算作大学期间才接触web的那批人里学的比较快的。但这个bug,真的让我觉得真是越是简单的东西越是坑。日期类这个东西,如果正儿八经的接过项目的人都应该碰见过接触过用过。但你真的,了解它吗?事情是这样的,我在手写一个springmvc框架,写到接收注入自定义方法的参数的日期类型这里:可以看到,我分别定义了对“年月日”这种参数类型,接收参数的格式

2021-04-13 14:26:27 11728 2

转载 @Scope(“prototype“),Spring中的bean设为多例

@Scope(“prototype”)spring中bean的scope属性,有如下5种类型:singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例prototype表示每次获得bean都会生成一个新的对象request表示在一次http请求内有效(只适用于web应用)session表示在一个用户会话内有效(只适用于web应用)globalSession表示在全局会话内有效(只适用于web应用)在多数情况,我们只会使用singleton和pr

2021-02-24 00:21:26 935

原创 写给小白的java反射教程,demo简单思路清晰

反射,简单来说,就是java给我们的一种了解类的方式。当你不清楚一个类的源码是什么,都有什么域,就可以用反射来获取信息。首先,只知道一个类叫Student,有个Public属性,叫name,让你来通过反射修改属性值。首先 获取name这个属性域Student student = new Student("名字",".."); Class cl = student.getClass(); Field f = cl.getDeclaredField("name");

2021-02-20 14:41:42 115

原创 JVM调优1:动手搞一次StackOverFlowError,看看java栈里可以放多少个栈帧

首先,什么都不多设置,在没有改变任何原有参数的情况下,JVM的java栈里可以放多少栈帧呢?见代码,我们用main函数递归自己,加一个计数器就可以了~首先,main函数怎么调用自己呢~ 这样就好了public static void main(String[] args) { main(args); }然后加一个计数器 public static int count=1; public static void main(String[] args) {

2021-02-03 15:03:54 267

原创 当你单机环境下用spring配置连接池时密码为空导致认证失败

这里应该放一个报错界面的,但是我没截图,就大概说一下。500内部服务错误,根本原因,你在配置redis时密码为空,但是,服务器与redis建立了安全连接,却没有输入有意义的密码。你应该是这样的组合。解决方法有两个,第一,还是用这个配置:方法1 或者,redis连接池的构造函数有好几种,你换一种,比如我只是测试一下,不需要配置的特别完善 <bean id="jedisPool" class="redis.clients.jedis.JedisPool"> &l

2021-01-19 18:58:22 436

原创 用thymeleaf模板里面写表单来给后台传参,手把手教路径问题

好家伙 不看不知道一看吓一跳 网上写的都是什么鬼,用js解析出后台路径然后把字符串给thymeleaf是什么鬼?而且那篇文章好多人转啊,好家伙,如果是前端我还理解,不是的话,emmm。。。话不多说,thymeleaf自己就可以解析出路径!很强大的!首先对于引入了thyme leaf的页面<!DOCTYPE HTML><html xmlns:th="http://www.thymeleaf.org"><head> <title>hello&

2021-01-14 11:41:30 1745 1

原创 SSM整合thymeleaf手把手教程

首先pom文件里引入 <!-- (使用Thymeleaf模板引擎)--> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf</artifactId> <version>3.0.2.RELEASE</version> </dependency> <dependency>

2021-01-14 11:00:57 782

原创 当你在本地git仓库与远程仓库交互时输错了密码

输错了密码是非常坑爹的,他不会再给你重新输入的机会,当你再次交互时就会发现,直接跳过了让你输入密码的步骤,直接用的缓存的错密码~这个时候我们就需要——————这条命令救命git config --system --unset credential.helper在git里面输入或者cmd里敲命令。...

2021-01-11 20:32:48 172

转载 MYSQL建库utf-8mb4的相关排序规则

MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。最新的 UTF-8 规范只使用一到四个字节,最大能编码21位,正好能够表示所有的 17个 Unicode 平面。 mysql支持的utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。(emoji, 字符排序:utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。 utf8_general_cs区分大小写.

2021-01-11 20:22:48 737

原创 HTTP的八种请求以及GET和POST请求的总结

HTTP请求一共有八种见图:常见的GET请求总结:1.直接在浏览器里写地址2.window.location.href (其实同上)3.from表单提交(默认)4.ajax(默认)GET请求特点:参数会在地址栏里显示,容易模拟,容易被攻击浏览器一般会限制其大小为4KB。GET很适合传递轻量型的数据,详情见RESTFUL API设计,里面请求东西建议用GET请求。POST请求总结:1.可以通过ajax(需要设置为post,默认不是)2.表单(设置为POST)3.自行用工具模拟POS

2021-01-11 15:06:32 517

原创 各种锁机制的底层实现---synchronized的偏向锁轻量级锁重量级锁

学习自这篇文章https://github.com/farmerjohngit/myblog/issues/12以下是我自己总结的笔记,方便复习,发出来也希望可以和大家一起交流。JDK版本是8.Java中提供了两种实现同步的基础语义:synchronized方法和synchronized块, 我们来看个demo:public class SyncTest { public void syncBlock(){ synchronized (this){

2020-12-31 21:29:31 358

原创 String类equals()源码逐行解析

上源码基本类型没有equals方法,因为equals方法的是Object的方法,基本类型没有继承这个类。基本类型用“==”比较的是值。而对于类来说,比较的地址,即是不是在同一个地址的同一对象。在Obect类中,equals方法内部比较用的是。但很多类都重写了这个方法,使其比较的是内容。来看String如何重写的:注释写在代码块里了。//先看是否为同一地址的同一对象public boolean equals(Object anObject) { if (this == anObject)

2020-12-21 20:11:46 114

原创 你该知道的JAVA泛型编译期间的类型擦除

1.Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,正确理解泛型概念的首要前提是理解类型擦除。比如这个例子public class Test { public static void main(String[] args) { ArrayList<String> list1 = new ArrayList<String>(); list1.add("abc"); ArrayList<

2020-12-21 19:58:57 343

原创 transient关键字以及为什么要用transient

1.transient关键字将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会被序列化。例子(源自网络),给一个属性添加关键字transient2.那transient有什么用有些时候像银行卡号这些字段是不希望在网络上传输的,transient的作用就是把这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化,意思是transient修饰的age字段,他的生命周期仅仅在内存中,不会被写到磁盘中。真是非常有用!静态变量能被序列化吗?没被transien

2020-12-21 19:30:11 524

原创 MYSQL中的锁必知必会

Mysql中的三种锁:行级锁 表级锁 页面锁首先来看Mysql中四大存储引擎的锁机制MYISAM和Memory只采用了一种锁那就是表级锁BDB存储引擎支持表级锁和页级锁,默认是页级锁。InnoDB存储引擎支持表级锁和行级锁,默认是行级锁。速记:四大引擎都支持表级锁,有两个只有一种锁,剩下的都有两种锁且组合不相同,且默认的都不是表级锁,记住InnoDB默认是行级锁,自然而然剩下的BDB就能快速背出是行级锁。下面详细来说这三大锁机制。行级锁:行级锁是 MySQL 中锁定粒度最细的一

2020-12-21 18:49:57 142

原创 关于Runnable这个函数式接口

1.JAVA1.8的新特性:函数式接口其特点为:绝对不能简单理解为只有一个方法的接口(❌),网上有很多博客都对此非常不严谨。其特点为:只包含一个**抽象方法**但是可以有多个非抽象方法的接口函数式接口可以被隐式转换为 lambda 表达式可以使用使用@FunctionalInterface注解检查它是否是函数式接口,同时javadoc也会有相关说明。函数式接口并不一定要写这个注解。java.lang.Runnable是1.8之前就有的函数式接口。而在JDK1.8 新增了函数式接口

2020-11-30 14:51:51 1893

原创 Integer与int详解

如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱。所以我对它们进行了总结,希望对大家有帮助。首先看代码:package com.test;/** * * @author 刘玲 * */public class

2020-09-11 16:16:31 330

原创 为什么cpu不是redis的性能瓶颈

关于"CPU不是redis性能瓶颈"这句话,我一开始不太理解,网上一搜也都是大家都这么说,但是没有具体为什么。然后找了些相关的关于redis为什么这么快的资料看了看,自己总结了一些答案。我不理解这句话的点在于,我觉得cpu对他影响还是挺大的,所有请求到了服务器上处理这步都是cpu啊。然后我总结了以下几点:1.redis在内存里,省下来cpu从硬盘里取数据拿到内存的时间。2.redis是单线程,省下来cpu切换线程恢复线程的时间。3.redis是单线程的,所以服务器是单核还是多核cpu对他没什么影响

2020-09-03 20:49:48 1692 3

原创 云服务器入门使用

云服务器使用(Linux)1. 安装Java JDK yum install java-1.8.0-openjdk* -y2. Xshell 显示说明* 蓝色代表文件夹* 白色代表文件,不可执行文件* 红色代表压缩包* 浅蓝色是快捷方式/软链接* 经常用到的目录:etc安装配置地方 usr opt 3. 基本操作命令ls -a 显示当前目录所有文件cd / 相当于系统盘目录mkdir 创建文件夹rm -rf 'filename' 彻底删

2020-07-27 22:00:10 149

原创 你该知道的ajax的cache参数,缓存属性

1.ajax的缓存是什么Ajax在发送的数据成功后,会把请求的URL和返回的响应结果保存在缓存内,当下一次调用Ajax发送相同的请求时,它会直接从缓存中把数据取出来,这是为了提高页面的响应速度和用户体验。当前这要求两次请求URL完全相同,包括参数。这个时候,浏览器就不会与服务器交互。.用法:ajax的缓存读取只对 GET 请求方法有效,因为浏览器默认 POST 提交的请求必定有变化,所以不读缓存。$.ajax({ cache : false,

2020-07-27 21:58:39 1172

原创 JAVA的深拷贝与浅拷贝

都写图上了。

2020-05-25 23:53:23 104

原创 手动改IDEA代码颜色

网上也有主题美化包,但是我的Idea版本低,兼容idea2017版的主题包都不太好看,而且用了字特别小,也没办法改。网上改idea编辑器背景的教程很多,但是改代码颜色很少,接下来讲怎么改代码颜色先放一张默认的暗调背景 手动改完字体的样子打开IDEAfile->settings->editor->java得到如下界面之后按照如图所示勾选先点击下方的代码的不同词汇 想改谁的颜色就点谁比如类名的颜色 就点击类比如想改方法名的颜色 就点击方法名单击图标改色按个人喜

2020-05-25 22:24:53 6841 2

原创 Maven配置最详解(附例子)

这篇是我见过的Maven的各种配置最细的博客,基础配置,构建配置…全都分开讲,而且很细,几乎各种配置都照顾到了的地址

2020-05-22 17:44:19 136

原创 Maven开发必知必会:pom.xml整体基本结构总结

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion&

2020-05-22 00:09:08 172

原创 Maven开发使用必知必会:pom.xml文件依赖配置详解(一)

之前学maven的时候,没学太深,单纯知道maven的各种概念,配置仓库,然后pom.xml编写的那一套完全是按照教程来的简单版,自己开发时候这么写感觉没什么,直到后来有一次多人合作发现不行,你pom.xml这么写,别人不一定这么写啊,那别人的项目你接着写一旦maven出问题根本无从下手,看不懂呀,所以,我这个maven小菜鸡就又回来深入学习Maven,参考学习了很多博客以此编写这个Maven系列的博客来总结,也分享给和我一样之前没深入学习maven的人。上一个简单版本的<project xmln

2020-05-22 00:05:26 1351

原创 lombok插件离线安装

亲测可行添加链接描述还是那句话 安东西 一定一定一定注意版本 插件这种东西更要对应上版本

2020-02-19 16:43:53 690

原创 最新的Sourcetree安装教程

相信大家安装的时候都卡在一个登陆那一步了然后上网搜 发现大多数教程都只提到了增加一个json文件可是按照这种方法重启了也好好说卡在登陆界面实际上 这是因为:对于新版本 还要改一个config文件在此放上链接:新版本安装教程如何查看教程里面路径对应的 自己的本地路径呢?复制路径的后半部分 即不需要你替换自己本机的部分打开查找软件everything 就可以精确查找了最后:安装什么东...

2020-02-19 12:36:50 1180

原创 @Component注解的用法

一旦使用关于Spring的注解出现在类里,例如在实现类中用到了@Autowired注解,被注解的这个类是从Spring容器中取出来的,那调用的实现类也需要被Spring容器管理,加上@Component...

2020-02-12 05:39:49 1393

前端框架bootstrap

Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。 [1] Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 [2] 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。 [3]

2019-02-17

空空如也

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

TA关注的人

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