自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苦也不苦

一技在手,天下我有

  • 博客(88)
  • 资源 (4)
  • 收藏
  • 关注

原创 和面试官对线HashMap

文章目录前言:有点长先点赞收藏呗,你的点赞就是我最大的动力一、HashMap的底层数据结构二、链表节点是怎么插入的三、什么时候扩容四、为什么默认初始化长度为16五、为什么要求是2的指数幂六、 为啥不直接使用hashCode七、 HashMap扩容的原因八、 jdk 7 与 jdk 8的比较九、为什么jdk.17的hashMap扩容存在死循环点赞收藏转发谢谢,关注公众号回复 hashmap,获取源码讲解原图pos写在最后,感谢点赞关注收藏转发前言:有点长先点赞收藏呗,你的点赞就是我最大的动力Hash

2021-01-08 16:14:41 1969 2

原创 基于docker、tomcat搭建图片(文件)服务器

文章目录一、安装Tomcat二、测试Tomcat运行三、验证是否启动四、创建Dockerfile(首字母要大写)五、准备 server.xml六、将server.xml Dockerfile 上传到linux服务器七、执行docker build 编译八、查看生成的镜像文件九、执行启动Tomcat写在最后,感谢点赞关注收藏转发一、安装Tomcatdocker search Tomcatdocker pull Tomcat:8.0本人指定拉取Tomcat 8.0,如下二、测试Tomcat运行

2021-01-05 16:48:20 533

原创 Dockerfile实战构建镜像

文章目录一、安装Tomcat二、测试Tomcat运行三、验证是否启动四、创建Dockerfile(首字母要大写)五、准备 server.xml六、将server.xml Dockerfile 上传到linux服务器七、执行docker build 编译八、查看生成的镜像文件九、执行启动Tomcat写在最后,感谢点赞关注收藏转发一、安装Tomcatdocker search Tomcatdocker pull Tomcat:8.0本人指定拉取Tomcat 8.0,如下二、测试Tomcat运行

2021-01-05 16:45:41 259

原创 掌握这14招,让面试官眼前一亮

文章目录Java基础14招,招招精通一、第一招:进程和线程的区别?二、第二招:你对synchronized关键字有了解吗加分项3.第三招:我看你介绍snychronized 说到了对象头,那么对象头都有哪些内容4. 第四招:ReentrantLock原理和synchronized有什么区别?5 那么CAS呢6 cas的缺点:aba问题,自旋问题7. HashMap用过吧?8.既然hashMap不安全,那么如何解决呢9. volatile原理知道吗10. 什么是 jmm(内存模型),可千万别说jvm内存结构1

2021-01-04 21:43:38 395

原创 Spring启动流程源码分析

系列文章目录Spring对于程序员说来说都不陌生,掌握它是对我们来说用处很大的,后面好多的框架都是基于spring扩展的,而且在你了解源码后,利于你处理二次开发的能力,所以掌握它是很重要的。直接进入主题吧。Spring的启动过程实际上就是Ioc容器初始化以及载入Bean的过程;本文主要是学习记录下Ioc容器的初始化,新手上路,如有错误,请指正!文章目录系列文章目录前言refresh()方法:初始化IOC容器1.prepareRefresh() :创建IOC容器前的预处理操作2. obtainFres

2020-12-18 16:59:39 273

原创 Spring5源码编译附带源码下载

idea编译Spring5.2.x源码踩了一天的坑,请大家必须用5.2.x的版本,因为高版本 5.3 对jdk有要求,jdk8已经不行了,需求13。而且5.2.x想编译成功得注意 gradle 的版本,如果版本跟源码的要求不一致,则会编译失败。后面会一一介绍。文章目录idea编译Spring5.2.x源码前言一、grade下载准备二、grade安装1.grade直接解压2.配置环境变量3. 配置国内镜像三,下载 spring 5.2.x源码 并解压,用idea open打开 ,打开前有个注意事项,大

2020-12-08 23:37:34 752 9

原创 SpringBoot整合银联无跳转支付附源码

系列文章目录项目需要接入新的支付渠道:银联无跳转支付,花了点时间接入成功,这里发布一个踩坑记录吧,把过程中的问题都会给大家分享下QAQ最终会将所有源代码以及用到的资料文档,都会上传git上面文章目录系列文章目录前言一、官网二、使用步骤1.下载官方提供的代码2.目录说明【一定要对着项目结构认真看这段内容】3. 配置项目启动相关参数4. 依赖jar5.tomcat启动项目6.支付7.银联自己的项目代码简单介绍8.整合后的SpringBoot项目自定义starter初始化项目9.springboot项目启

2020-11-19 17:16:13 1357 29

原创 史上最全的Https讲解

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言Https是什么?什么是SSL重要的相关概念1.对称加密2.非对称加密3.消息摘要4. 数字签名5.数字证书总结前言在平时工作和日常生活中, “https=安全”这样的观点在大多数人的思维中根深蒂固,甚至很多人根本不认为自己会被攻击。那这个观点到底对不对呢?那么请带的这

2020-10-31 18:19:32 3132 2

原创 RPC 调用和 HTTP 调用

文章目录前言网络七层模型RPC架构说道远程调用,得了解下*异步同步*同步调用与异步调用HTTP总结前言这边简单的介绍了下RPC的概念相关,对RPC想更深入的认识的可以看我之前写的博客【自定义RPC 有源码】传送门:自定义RPC源码实现网络七层模型在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型第一层:应用层。定义了用于在网络中进行通信和传输数据的接口;第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等;第三层:会话层。管理用户的会话,控制用

2020-10-26 20:41:16 812 2

原创 阿里面试:说一说RocketMQ

RocketMQ路由中心NameServer最近在研究消息中间件,看了好多资料,个人建议大家应该好好学一下,推荐看阿里推出的RocketMQ,好处不用说了,阿里出品,必输精品。在这里为啥推荐呢?主要是因为消息中间件无论你是做啥项目,做什么业务,消息中间件的身影随处可见。解耦,异步,削峰流量限制,等等一系列的好处。而且最主要的是这是国内开源的交由apache组织的顶级国内开源项目,源代码是java所写,这里就不介绍Rocket相比其他中间件的优劣势。放在以后,以后Rocketmq我会作为一个栏目持续更新。当

2020-10-20 22:36:13 463 2

原创 自定义RPC代码实现(附带源码下载地址)

RPC简介RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务源码下载地址https://gitee.com/hu_yu_fan/data.git要想先理解远程调用,那么首先必不可少的就是理解本地调用本地调用我们当初的单体应用项目所有的请求就是本地调用。例如:将一个学生信息进行修改,首先前台http请求后端接口,调用当前项目所提供的功能规范进行传参,最后实现调用修改功能远程调用在上诉的过程中,本地http请求当前项目提高的学生修改功.

2020-09-25 14:33:32 489

原创 史上最全的Tomcat源码分析(有源码下载地址)

前言tomcat源码 https://github.com/huyufan1995/tomcat.gitTomcat 8 的源码解读,需要大家对tomcat有一定了解,剩下的就是理解就好,个人认为源码里面 mybatis 和 tomcat 就简单理解而言还是算简单的。 tomcat8 大量用了模板设计模式。tomcat8去掉了Bio的默认实现。请大家认真观看下图:脑子有个映像,下面会详细讲解每个Tomcat都只有一个Server,表示整个服务环境。一个Server中可以有多个Service。S

2020-09-18 10:02:39 19575 1

原创 Mybatis源码分析之二级缓存续

续写Mybatis二级缓存上周由于临时有约,导致文章没写完,那么今天抽时间将这篇文章完善。废话不多说开整,如果想回顾上一篇文章内容 ---------->传送门:Mybatis二级缓存-1已经讲了一级缓存产生的过程,那么我们是不是得了解下,它是如何失效的呢?毕竟不能长时间存在那么我们得看下更新,删除相关操作了,执行新增或更新或删除操作,一级缓存就会被清除。MyBatis处理新增或删除的时候,最终都是调用update方法,也就是说新增或者删除操作在MyBatis眼里都是一个更新操作。让我们来看

2020-08-17 18:25:13 247

原创 Mybatis源码分析之二级缓存

最近一周都在研究mybatis源码,其实就mybatis源码相对于Spring框架源码来说,mybatis还是简单的,主要就是封装jdbc,然后应用各种设计模式优化整体架构:如 在mybatis中用到了以下的设计模式,构建者(创建sqlSession对象用到了)责任链(mybatis中主要特点之一就是大量的handler,他们就是通过责任链来增加,执行)装饰者(mybatis中主要就是 Executor 主要这些:单例执行器SimpleExecutor,批量执行器BatchExecutor,..

2020-08-15 18:56:35 1747

原创 吊炸天的SpringBoot自动装配原理剖析(附面试总结)

在SpringBoot中,不得不说的一个点就是自动装备,它是starter的基础,也是SpringBoot的核心,那么什么是自动装配呢?showTime自动装配在SpringBoot中是通过@EnableAutoConfiguration的注解来实现的,而这个注解的声明是在复合注解 @SpringBootApplication中开始正餐之前先给大家说下其他注解@SpringBootConfiguration 是一个声明当前类是boot启动类,是一个复合注解@Tar...

2020-06-11 21:55:03 5810

原创 吊炸天的mq面试总结

消息中间件总体优势:解耦,削峰,异步,但是由于引入了消息中间件,会带来 以下难点: 业务上复杂了,多引入了一个模块。消息的不稳定,消息多重消费,消息丢失。一致性,如果发送abcd,4个消息,但是abc收到了,但是d 收到了,但是消费失败,然后呢?消息中间件模块宕机了如何?如何补偿。这是引入了消息中间件带来的一系列问题。市场上比较活跃的 就是 activemq, rabbitmq, rocketmq,kafkaactivemq: 出现较早,典型的pub/sub 订阅消费,但是不适...

2020-05-13 10:15:27 753

原创 吊炸天SpringBoot接入支付宝支付【附关键代码】

下载电脑网站的官方demo:建议:新手第一次接入支付的还是下载看看,了解下,readme.txt好好看下,包括以后看第三方的此文件最好先浏览下,要不容易踩坑下面会有专门sdk接入指南下载:https://docs.open.alipay.com/270/106291/阿里源码主要Demopackage com.alipay.config;/* * *类名:Alip...

2020-04-24 17:40:45 3391

原创 吊炸天MyCat入门

MyCat中间件具体做什么的百度一下你就知道,本人只是记录下自己踩的坑建议:不懂的,可以先去看官网介绍,官网推出的文档:mycat权威指南 不错的。看人多看看,主要是理论知识点懂了就好,具体使用全是配置文件,因为具体的数据扩容算法都是别人写好的,我们只是copy,以下只是简单的使用。官网链接http://www.mycat.org.cn/前置条件本教程是在window...

2020-03-22 18:42:15 328

原创 Zookeeper分布式锁(集群环境)

引入第三方的sdk<dependencies> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </depe...

2019-12-10 12:19:20 178

原创 吊炸天Zookeeper集群搭建亲测可用

1.官网首页:https://zookeeper.apache.org/2.下载截图,如图5-5,5-6,5-7所示1.集群规划在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。2.解压安装(1)解压Zookeeper安装包到/opt/module/目录下[atguigu@hadoop102 software]$ tar -zxvf zo...

2019-12-10 12:02:07 167

原创 oauth2.0微信授权登陆(附带源码 SpringBoot)

github:https://github.com/huyufan1995/oauth_weixin.git重要放在开头说明:想深入研究微信相关:小程序后台,公众号等,建议看微信文档后了解下WXJAVA第三方的SDK 想要懂微信登陆原理最好看下oauth2.0协议。懂了之后看本人的文档+代码你会感觉!! 还有其中微信开发调试中用到的回调地址必须能够http访问,本...

2019-11-10 22:38:58 3347

原创 注解解决接口幂等性

import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;// 解决接口幂等性 支持网络延迟和表单重复提交@Target(valu...

2019-11-08 10:43:51 474

原创 参考HashMap底层源码手撸hashMap

package io.renren;public class ExtHashMap<K,V> implements ExtMap<K,V>{ Node<K,V>[] table = null; int size; //负载因子,扩容的时候才会用到,负载因子越低,冲突越小 float DEFAULT_LOAD_FACTOR ...

2019-10-14 19:13:56 169

原创 借鉴源码,手撸ArrayList底层

package io.renren;import java.util.Arrays;public class ExtArrayList { // list 底层 采用数组存放 private Object[] elementData; //默认容量大小 private static final int DEFAULT_CAPACITY = 10; ...

2019-10-10 15:26:58 127

原创 rabbitmq docker 集群部署

docker 部署rabbitmq 集群docker命令不做介绍了,按照一下命令顺序敲即可1.拉取mq的镜像,注意得选择management 版本的,会带有web浏览docker pull rabbitmq:3.6.15-management2.启动docker注意点:多个容器之间使用“–link”连接,此属性不能少;Erlang Cookie值必须相同,也就是RABBITMQ_...

2019-08-21 10:08:39 227

原创 docker整合elasticSearch集群搭建

必须懂docker的容器卷,以下用到的docker命令不做介绍,本人亲测搭建成功,可以一步一步按着操作来。如果想理解,先去学docker。首先 启动dockercentos7 下启动docker命令 systemctl 开头使用docker images 查看当前拥有的镜像版本,本人已经下好,如果没下不会有如下 es镜像docker pull elasticsearch:5...

2019-08-01 11:55:28 301

原创 屌炸天的SpringBoot2 +WxJava 整合微信

步骤:一、内网穿透申请二级域名(有服务器和域名者可略过)二、申请微信公众平台测试号(有已认证的微信服务号者可略过)三、搭建 Spring Boot 2.0 项目实现获取openId一、内网穿透:因为要直接用内网本机开发调试,微信网页授权在回调时要访问本机,所以直接做个内网穿透,可以直接在外网访问到本机,做法如下:购买前需要认证一下,不要用免费的,免费太麻烦。收费的也不贵9...

2019-07-05 10:55:57 9654 6

原创 SpringBoot+Quartz图形化(有源码)

在我们日常的开发中,很多时候,定时任务都不是写死的,都是写好代码,页面配置,定时器执行规则都是灵活的,是写到数据库中,从而实现定时任务的动态配置,下面就通过一个简单的示例,来实现这个功能。https://github.com/huyufan1995/Quartz.git本次demo是SpringBoot的,毕竟是19年了,废话不多说了。1.maven引入的依赖<depend...

2019-06-24 10:42:38 2051 1

原创 maven中添加bundle类型的依赖包前提

bundle是OSGI中的依赖单元,是一种特殊格式的jar,但我们同样可以在maven中使用bundle类型的依赖包,在maven中依赖bundle类型的包,需要加入处理bundle类型的插件,在pom.xml文件中添加如下的代码即可&lt;build&gt;&lt;plugins&gt;&lt;plugin&gt;&lt;groupId&gt;org.apache.felix&lt;/group...

2018-05-17 10:06:10 5138

原创 吊炸天maven 阿里云镜像

&lt;mirror&gt; &lt;id&gt;alimaven&lt;/id&gt; &lt;name&gt;aliyun maven&lt;/name&gt; &lt;url&gt;http://maven.aliyun.com/nexus/content/groups/public/&lt;/url&gt; &lt;mirrorOf&

2018-05-09 21:16:21 563

原创 策略模式PLUS

策略模式升级版

2022-07-12 14:36:07 269 1

原创 RocketMQ源码之Broker与NameServer

系列文章目录源码分析之Brokerhttps://yuanzhicun.blog.csdn.net/article/details/115671517Rocket源码分析之NameServer https://yuanzhicun.blog.csdn.net/article/details/115629349文章目录系列文章目录前言一、Broker启动二、向NameServer执行注册2.真正执行注册的方法三、 NameServer如何处理Broker的请求写在最后,感谢点赞关注收藏转发前

2021-04-14 16:19:30 737

原创 RocketMQ之Broker源码分析

前言之前文章已经分析了NameServer是如何启动的,今天主要是分析NameServer启动后,Broker是如何像他注册信息,发送心跳维护的。巩固之前文章的内容请看下图其实就是Name...

2021-04-14 10:07:12 381

原创 RocketMQ源码之Broker

系列文章目录 Rocket源码分析之NameServerhttps://yuanzhicun.blog.csdn.net/article/details/115629349文章目录系列文章目录前言一、Broker启动脚本二、BrokerStartup三、BrokerController的4个核心类四、创建BrokerController五、执行controller的初始化initialize()总结写在最后,感谢点赞关注收藏转发前言之前文章已经分析了NameServer是如何启动的,今天主要

2021-04-13 17:49:10 337

原创 RocketMQ之NameServer源码分析

前言很多人都说源码难,下不去手,买了书看也不行,看视频别人讲解也是很迷茫,那么源码到底难不难呢?难。但是如果你掌握了一个好的方法,看下去还是很轻松的。那么如何看呢?这里简单的说下:其实你要...

2021-04-13 11:50:02 166

原创 Rocket源码分析之NameServer

文章目录前言一、NameServer的启动?二、NamesrvStartup 入口类三、createNamesrvControllerNamesrvConfigNettyServerConfig四、start方法总结前言很多人都说源码难,下不去手,买了书看也不行,看视频别人讲解也是很迷茫,那么源码到底难不难呢?难。但是如果你掌握了一个好的方法,看下去还是很轻松的。那么如何看呢?这里简单的说下:其实你要带着问题去看源码?为什么这么说呢? 就拿我今天给大家分享的rocketmq的源码,了解rocket的

2021-04-13 11:40:08 241

原创 I/O多路复用看完她你就会了

文章目录前言一、传统Socket通信二、如何应对更多的请求三、采用多线程模型多线程模型的弊端:C10K四 、I/O多路复用五、 select/poll六、epoll总结写在最后,感谢点赞关注收藏转发前言最基础的 TCP 的 Socket 编程,它是阻塞 I/O 模型,基本上只能一对一通信,那为了服务更多的客户端,我们需要改进网络 I/O 模型。比较传统的方式是使用多进程/线程模型,每来一个客户端连接,就分配一个进程/线程,然后后续的读写都在对应的进程/线程,这种方式处理 100 个客户端没问题,但是

2021-04-09 17:25:30 282

原创 LRU原来如此简单

文章目录前言一、LRU是什么?二、LFU是什么?三、LRU和LFU的比较四、LFU代码实现(看懂LFU就自然懂了LRU了)1、LFU类2、Node类3、测试写在最后,感谢点赞关注收藏转发前言现在缓存技术在项目中随处可见,但是有一点,毕竟缓存这个东西还是稀有的,毕竟不像硬盘资源那么广,所以缓存如何高效的使用,不浪费,及时保存热点数据那可是很重要的了。接下来带你了解下大名鼎鼎的LRU以及LFU,以及用代码是如何实现的一、LRU是什么?LRU全称 “Least Recently Used”,最近最少使

2021-03-24 10:15:49 894

原创 LRU如此简单

前言现在缓存技术在项目中随处可见,但是有一点,毕竟缓存这个东西还是稀有的,毕竟不像硬盘资源那么广,所以缓存如何高效的使用,不浪费,及时保存热点数据那可是很重要的了。接下来带你了解下大名鼎鼎...

2021-03-24 10:14:53 439

原创 SpringCloud接入Seata分布式事务

前言不得不说,seata的分布式事务还是坑挺多的,而且网上好多的解决方案都停留在旧版本,而你用的新版本导致好多问题需要踩,本人用了一天接入成功,成功整理出了一一篇最新的阿里推荐的版本 1....

2021-03-04 11:35:56 1189 1

spring5.2源码

spring官方5.2源码spring官方5.2源码spring官方5.2源码spring官方5.2源码

2020-12-08

rocketmq-all-4.3.2-source-release.zip

rocketmq消息中间件, 提供官方 4.3.2源码,下载到idea maven编译即可

2020-10-21

jsonView.zip

谷歌jsonVIew.zip,开发者工具,解压后打开谷歌扩展,添加里面的webContent文件夹即可使用

2019-08-08

spring xml class属性提示

spring 配置文件中 bean 的class 属性 alt+/ 自动提示类的全路径(插件+教程)1分钟部署

2018-07-09

空空如也

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

TA关注的人

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