自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022年面试个人真题

面试总结:简历上写的一定要会,如果你项目中写到了哪个技术,这个技术的原理,底层实现一定要先百度一波背下来。5年左右工作经验 不是问你这个技术怎么用,而是问底层实现。线上遇到哪些问题是怎么解决的,要准备,没有也要编一个出来,要编个高大上一点的。 redis如果只用到String类型的set,get , 也要编一个别的数据结构的用在项目上。redis, mq , spring cloud/springcloudalibab 这三个一定要会。面试问的最多的两个问题:你在工作中遇到的最困难的事,怎么解...

2022-05-12 13:43:05 715

原创 git 合并指定commit到另一个分支

git 合并指定commit到另一个分支

2023-09-13 10:40:02 1459

原创 多对括号{},保留成对{},单个“{“ 或 “}“就过滤

多对括号{},保留成对{},单个"{" 或 "}"就过滤

2023-08-03 14:45:53 145

原创 两个中文内容中抽取不同文字为变量

两个中文内容中抽取不同文字为变量

2023-07-28 16:40:17 145

原创 微信公众号登录

微信公众号登录java代码

2023-07-17 15:04:22 637

原创 java多层循环跳出所有循环

java多层循环跳出所有循环

2023-02-23 16:21:43 282 1

原创 git 删除某一条提交记录

git 删除某一条提交记录

2023-02-22 14:20:58 5108

原创 两个实体类字段不同实现赋值 (MapStruct)

两个实体类字段不同实现赋值

2022-12-17 14:05:40 1532

原创 使用aop拦截自定义注解

使用aop拦截自定义注解校验访问权限

2022-12-01 17:54:46 2412

原创 微服务之间调用get请求(未加@SpringQueryMap注解)

微服务之间调用get请求

2022-11-14 15:44:16 315

原创 java生成随机数的三种写法

java生成随机数的三种写法

2022-11-05 21:52:50 2109

原创 @ModelAttribute注解的使用

@ModelAttribute注解的使用

2022-10-19 11:42:41 208

原创 mysql 删除某一字段重复数据只保留一条

mysql 删除某一字段重复数据,保留id最大那一条

2022-10-10 11:26:15 835

原创 用Calendar代替SimpleDateFormat

用Calendar代替SimpleDateFormat

2022-09-08 11:57:49 167

原创 stream final 生成序号

steam流解决final值,但需要生成序号

2022-08-29 18:02:55 417

原创 idea git commit插件及注释模板修改

git commit template

2022-08-29 13:57:13 2481

原创 mysql唯一索引无重复值报错重复

mysql唯一索引 报错重复值(实际无重复)

2022-07-19 15:23:16 986 1

原创 记一次用微服务把自己坑死的案例

spring cloud feign调用报404

2022-07-05 16:34:35 280

原创 http 工具类

http工具类 亲测可用

2022-06-16 09:02:21 618

原创 vue 导出word带图片

vue 导出word 带图片

2022-06-10 15:17:44 1900 6

原创 equals和==的区别

问题1. new Student 对象两个.年龄和姓名都一样。问equase对象是否相等答:不重写的话是不相等的,因为equase底层是==Student student1=new Student();student1.setCode("1111");student1.setName("名字1");//2080166188System.out.println("student1的hashCode==="+student1.hashCode());Student student2=new

2022-05-12 18:22:36 335

原创 redis cluster集群搭建

​redis cluster集群:这种结构很容易 添加 或者 删除 节点。如果 增加 一个节点 6,就需要从节点 1 ~ 5 获得部分 槽 分配到节点 6 上。如果想 移除 节点 1,需要将节点 1 中的 槽 移到节点 2 ~ 5 上,然后将 没有任何槽 的节点 1 从集群中 移除 即可。由于从一个节点将 哈希槽 移动到另一个节点并不会 停止服务,所以无论 添加删除 或者 改变 某个节点的 哈希槽的数量 都不会造成 集群不可用 的状态.搭建:1.先下载gcc:gcc是linux系统下面用来将代码编译

2022-03-06 15:34:20 3388

原创 redis实践学习

redis所有的key都是字符串。redis是用C语言实现的redis底层的数据结构和hashMap类似,用的数组+链表+红黑树解决哈希冲突,用的链表,用next指针指向下一个节点(头插法)1.高并发场景下对库存扣减,会出现重复扣减问题,用synchronized解决不了。如下代码synchronized (this){ int stock=Integer.parseInt(stringRedisTemplate.opsForValue().get("stock")); if(stock&g..

2022-03-05 13:20:43 844

原创 mysql高级篇

1.查看sql执行计划的关键字是:Explain2.Explain解析SQL重点:explain只认select关键字,每出现一次select,就生成一个id。所以如果有子查询或者union之类的,会生成多个id。sql执行计划-explain关键字转自:SQL执行计划详解explain - Study_Work - 博客园explain执行计划包含的信息其中最重要的字段为:id、type、key、rows、Extra各字段详解idselect查询的序列号,包含一组数.

2022-02-28 20:37:42 151

原创 spring cloud面试题

1. 什么是 spring cloud?spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。2. spring cloud 断路器的作用是什么?在分布式架构中,断路器模式的作用也是类似的,当某个服务发生故障比如网络故障或者代码异常之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一

2022-02-26 21:52:05 320

原创 spring cloud config和springcloudBus消息总线

首先下载rabbitMQconfig是配置中心,多个配置中心用bus全局广播(通知其它的配置中心该配置文件已更新)这里使用第二种,利用消息总线触发一个服务端3344是服务端,yml配置文件:server: port: 3344spring: application: name: cloud-config-center #注册进Eureka服务器的微服务名 cloud: config: server: git: ur

2022-02-26 19:54:42 1292

原创 设计模式整理

开放封闭原则(Open Close Principle)原则思想:尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化描述:一个软件产品在生命周期内,都会发生变化,既然变化是一个既定的事实,我们就应该在设计的时候尽量适应这些变化,以提高项目的稳定性和灵活性。优点:单一原则告诉我们,每个类都有自己负责的职责,里氏替换原则不能破坏继承关系的体系。里氏代换原则(Liskov Substitution Principle)原则思想:使用的基类可以在任何地方使用继承的子类,完美的替换基类。

2022-02-26 17:43:57 116

原创 spring cloud(学习)--Hystrix

1.服务雪崩2、Hystrix介绍Hystrix 是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix 能够保证在一个依赖出问题的 情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。 “断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应 (FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务.

2022-02-26 15:44:39 305

原创 redis面试题

缓存雪崩、缓存穿透、缓存击穿缓存雪崩是指缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。解决方案:●缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。●给每一个缓存数据增加相应的缓存标记.记录缓存是否失效,如果缓存标记失效, 则更新数据缓存。●缓存预热●互斥锁缓存穿透是指缓存和数据库中都没有的数据,导致所有的请求都落到数据库上,造成数据库短时间内承受大量请求而崩掉。解决方案:●接口层增加校验,如用户鉴权校验,id做...

2022-02-24 21:47:04 483

原创 spring cloud 学习--(consul)

consul是近几年比较流行的服务发现工具,工作中用到,简单了解一下。consul的三个主要应用场景:服务发现、服务隔离、服务配置。consul与Eureka的区别Consul强一致性(CP)  服务注册相比Eureka会稍慢一些。因为Consul的raft协议要求必须过半数的节点都写入成功才认为注册成功  Leader挂掉时,重新选举期间整个consul不可用。保证了强一致性但牺牲了可用性。Eureka保证高可用和最终一致性(AP)  服务注册相对要快,因为不需要等注册信息replica

2022-02-22 11:48:38 507

原创 spring cloud学习(二)-- feign

Feign能干什么 (服务接口绑定器)Feign旨在使编写Java Http客户端变得更容易。前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feign在此基础上做了进一步封装,由他来帮助我们定义和实现依赖服务接口的定义。在Feign的实现下,我们只需创建一个接口.

2022-02-21 17:55:16 351

原创 linux命令

nslookupnslookup 这个命令在 有 ip 地址时,可以用这个命令来显示主机名,可以找到给定域名的所有 ip 地址。而你必须连接到互联网才能使用这个命令。你也可以使用 nslookup 从 ip 获得主机名或从主机名获得 ip。traceroute一个方便的工具。可用来查看数据包在提交到远程系统或者网站时候所经过的路由器的 IP 地址、跳数和响应时间。同样你必须链接到互联网才能使用这个命令。telnet通过 telnet 协议连接目标主机,如果 telnet 连接可以在任一端口上完成

2022-02-16 14:08:34 63

原创 Threadlocal

每一个Thread对象均含有一个ThreadLoca1Map类型的成员变量threadLocals,它存储本线程中所有ThreadLocal对象及其对应的值Threadlocal内存泄漏内存泄漏为程序在申请内存后,无法释放已申请的内存空间,不再会被使用的对象或者变量占用的内存不能被回收,就是内存泄露。强引用:使用最普遍的引用(new),一个对象具有强引用,不会被垃圾回收器回收。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不回收这种对象。如果想取消强引...

2022-02-15 16:56:12 257

原创 WebSocket实现原理

 websocket同http和https一样,属于tcp基础上的应用层的协议;需要三次握手四次挥手的过程一般来说,我们使用的http协议只能由客户端发起请求,而服务端无法直接主动进行数据推送,这就导致了如果服务端有持续的变化(如聊天室)而客户端获取起来较为复杂(如实时性和服务端压力等)。因此,websocket协议便应运而生  对于websocket协议来说,客户端和服务端都可以主动推送消息,其中消息内容可以时文本也可以是二进制数据。而且没有同源策略的限制,也不存在跨域问题  websocket协议

2022-02-14 22:27:15 1276

原创 TCP三次握手四次挥手和TCP/UDP区别

TCP/UDP区别TCP 是面向连接的可靠传输,UDP 是面向无连接的不可靠传输TCP 是面向字节流的,UDP 是基于数据报的TCP 保证数据正确性,UDP 可能丢包TCP 保证数据顺序, UDP 不保证TCP 三次握手:第一次握手:主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B,向主机B 请求建立连接,通过这个数据段, 主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我。第二次握手:主机B 收到主机A的请求后,用一个带有确认应答(..

2022-02-14 22:07:54 951

原创 RabbitMQ面试题

1.为什么要使用消息队列:其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?1.解耦A系统发送数据到BCD系统,通过接口调用,如果有一天D系统不调用了,而又添加一个E系统,那A系统还要改调用代码,用MQ后,A系统只要把数据发送到MQ里,哪个系统需要就去消息MQ2.异步A系统接收一个请求,需要在自己本地写库,还需要在BCD三个系统写库,时间比较长,用了MQ后,只要在A系统里写库并把结果响应给用户,在把数据发送到MQ里就好。3.削峰假如A系统高...

2022-02-14 09:28:47 5505

原创 spring面试题

1.Spring 启动过程(原理)WEB项目启动时候,加载web.xml,spring会在web.xml中配置启动监听器和启动参数web容器启动加载spring容器顺序:1.执行web.xml中的contextLoaderListener监听器2.初始化ContextLoaderListener中的contextInitialized方法调用父类的initWebApplicationContextinitWebApplicationContext方法在initWebApplicationContex..

2022-02-12 19:57:36 386

原创 springboot面试题汇总

1.spring boot最先扫描包是哪个? 答:默认扫描 启动类所在的包及其子包,会扫描@ComponentScan配置的包2.spring boot 启动流程? 答:入口类上会有一个@SpringBootApplication注解,SpringBootConfiguration注解里面继承了Configuration,最重要的是@EnableAutoConfiguration 注解,这个@EnableAutoConfiguration 注解也是一个组合注解,其自身定义关键信息如下:pa...

2022-02-12 14:56:28 557 1

原创 BeanFactory和FactoryBean的区别

他们两个都是个工厂,但FactoryBean本质上还是一个Bean,也归BeanFactory管理BeanFactory是Spring容器的顶层接口,FactoryBean更类似于用户自定义的工厂接口。BeanFactory:以Factory结尾,表示它是一个工厂类(接口),它负责生产和管理bean的一个工厂。在Spring中,BeanFactory是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。BeanFactory只是个接口,并不是IOC容器的具.

2022-02-11 16:38:33 613

原创 jdk代理和cglib代理实现原理

JDK代理:接口:public interface BuyTicket { /** * 买票 */ void buyTicket();}被代理的类:public class CommonPerson implements BuyTicket { @Override public void buyTicket() { System.out.println("买到票了!"); }}代理类:核心类Invocati

2022-02-11 14:50:52 106

空空如也

空空如也

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

TA关注的人

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