自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老汉健身的博客

主要是一些个人总结的笔记和分享

原创 【NoSQL】聊一聊Redis的持久化机制和缓存淘汰策略

前言:Redis的持久化机制和缓存淘汰策略在各大厂面试题中经常有出现,除此之外在一些场景下,了解Reids的持久化机制和缓存淘汰策略可以帮助我们更好的设计技术方案,以及解决一些实际问题,所以本篇再深入聊一聊这些不常用的知识点,以此温故知新. 1.Redis的持久化机制 1.1Redis有哪些持...

2020-04-02 19:55:40

阅读数 17

评论数 0

原创 【高级部署】-Kubernetes K8S理论篇
原力计划

前言:2019年已经过去了,在2019年阿里号称双11全面上云,为什么要上云?这你得问马云,开个玩笑... 因为k8s的加持,让云发挥了更大价值,k8s的提供的弹性伸缩,使得云资源得到充分利用,目前全球三大云全部都支持k8s,加上k8s本身就是谷歌的亲儿子,在这样的背景下,k8s越来越流行,作为...

2020-03-16 15:26:42

阅读数 81

评论数 0

转载 【学习路线】-成为顶尖Java工程师必须要看的十一本书!

学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:1. 能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料2. 对着书上的代码自己敲的时候方便 “看完书之后再次提升自我的最好途径是看一些相关的好博...

2020-03-12 10:44:20

阅读数 55

评论数 0

原创 【大数据】Elastic Search入门,看这一篇就够了!

前言:Elastics Search(以后全部简称es)入门看这一篇就够了?是的,看这一篇就可以学习到es从入门到使用到生产的相关核心点,但Es家族庞大,如果深入学习或者去啃的话,没个一年半载是不可能的,所以仅这一篇也是在开玩笑了,光是Elastics Search + Logstash + Ki...

2020-03-11 17:09:02

阅读数 84

评论数 0

原创 【登录及鉴权】-盘点那些主流的开源登录及权限认证框架 (下)

前言:接上篇,上篇主要讲理论,下篇讲实战,结合代码演示SpringSecurity,Shiro,Oauth,jwt token以及单点登录等当下主流的登录及权限管理.在技术上我是个喜新厌旧的渣男,全篇以截至2020年2月最新的Springboot及其它包版本为例演示. 完整的项目我已上传至Git...

2020-02-24 20:18:00

阅读数 148

评论数 0

原创 【登录及鉴权】-盘点那些主流的开源登录及权限认证框架 (上)

登录和鉴权应该是一个完整的系统中几乎必不可少的部分,虽然现在已经有越来越多的框架帮我们简化了这部分工作量,大公司更是有自己专门的登录和权限控制系统,比如阿里的BUC和ACL,开发者仅需要通过简单的步骤便可接入功能完备的登录和权限控制系统,这部分通用能力下沉成为中间件,但没有开源,对小公司而言,登录...

2020-02-01 19:41:00

阅读数 98

评论数 0

原创 【代码质量】-借助JDK8提供的CompletableFuture写出优雅的代码

前言:要写一手优雅的代码,背后要经历很多的积累和沉淀,有点类似台上一分钟,台下十年功.要让代码变得优雅有很多种方式,使用JDK8提供的新特性便是其中一种,虽然相较于设计模式对代码质量提升有限,但仍值得去学习和使用.本篇仅介CompletableFuture. 早在JDK1.5中就提供了Fut...

2020-01-29 22:45:24

阅读数 43

评论数 0

原创 【代码质量】-如何避免写过多的if-else语句,从青铜到钻石级码农是如何重构的?

前言:开篇先放一张大神写的代码,反正我看到这张图第一反应就是佩服(画质有点渣,不过就算是4K蓝光我也看不懂里面的逻辑) 如果在开发中写出这样一段代码,那么恭喜你,拥有铁饭碗了,连技术总监都拿你没办法,你走了这代码谁来维护? 玩笑归玩笑,那么到底该如何避免在写代码中出现大量的if-else以...

2020-01-09 17:59:38

阅读数 764

评论数 3

原创 【Springboot】-Springboot事件的发布和监听和guava eventbus

1.简介 前面已经对观察者模式,监听者模式做了总结,但在实际开发中,直接使用这两种模式的情况相对较少,原因是直接采用这种模式虽然简单,但观察者和被观察者/监听者和被监听者 之间的依赖还是比较强,不够灵活。 在Spring统治的天下,Bean与Bean之间往往会涉及到通讯,以此来实现业务解耦,举...

2019-12-31 16:48:09

阅读数 193

评论数 0

原创 【大数据】5分钟快速快速搭建Solr企业级搜索引擎,附Java操作SDK实战搜索

前言:Solr是采用Java开发,基于Lucene的全文搜索服务器,性能强悍,使用简单,常被作为企业级应用的搜索服务器.Solr通过http协议和Json进行响应,所以用Solr搭建的搜素引擎可以跨语言使用,对企业应用而言非常友好. 如果你想学习非常详细的Solr教程,建议可以去W3C进行学习:...

2019-12-03 22:18:09

阅读数 122

评论数 0

原创 【大数据】Lucene全文搜索引擎入门篇(零基础小白也适用)

前言:Lucene是apache老爹开源的一款全文搜索引擎,虽然目前已被市面上一些更好用的搜索引擎逐步替代,但作为搜索引擎的鼻祖,仍然有必要学习一番,而且有了Lucene的基础之后,学习solr,elastichSearch也会更容易理解。 看完本篇,你将了解到Lucene是什么,Lucene的...

2019-11-19 14:31:18

阅读数 131

评论数 0

原创 【代码质量】-阿里巴巴java开发手册(代码质量提升神器)学习笔记

前言:《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,有了这些前人总结的经验,可以帮助我们写出高质量的代码,同时可以减少Bug数量,少踩坑,提高代码的可读性和易维护性。本篇仅作为学习笔记,总结和提炼一些阿里巴巴java开发手册中需要遵守的规则,同时也是为了加深印象,...

2019-11-01 18:11:11

阅读数 406

评论数 0

原创 【源码分析专题】-阿里开源Nacos注册及配置中心 最佳长轮询 实现原理

前言:看完本篇,你将了解到web端常用的实时通讯技术种类及其适用场景,你将了解到几种不同的长轮询方式,以及它们的差异,最后将一睹互联网大厂Nacos的长轮询技术,从而在以后遇到消息推送场景/在线聊天/配置中心等需要长轮询技术的场景时,可以写出优雅又性能爆棚的代码,文中内容看起来较长,其实大部分篇幅...

2019-10-29 17:11:47

阅读数 481

评论数 0

原创 【数据结构】-树及森林 菜单实现 深度优先 广度优先 递归遍历

前言:树是一种非常有趣的数据结构,在大学时期有学过,但缺乏实际运用场景,所以学完后来就忘得差不多了...但工作以后才发现,树这种数据结构是那么重要和常见,用得好的话可以让你代码更优雅,性能更佳,为了让树里面的概念更易于理解,关于树的定义这块我尽量通俗,牺牲一些标准性,提高可读性,不至于像读大学课本...

2019-10-25 10:07:42

阅读数 65

评论数 0

原创 【设计模式】-监听者模式和观察者模式的区别与联系

前言:监听者模式和观察者模式在平时开发中或在Spring源码中经常有碰到,两者乍看上去好像差不多,但为何会分为两种不同的设计模式?究竟是人性的扭曲还是道德的沦丧?让我们一起走进本篇,深入解析两者的异同和使用场景。 目录 1.介绍 1.1监听者模式介绍 1.2观察者模式介绍 2.相同之...

2019-10-17 10:17:25

阅读数 113

评论数 0

原创 【设计模式】-11监听者模式

目录 1.什么是监听者模式 2.监听者模式的组成(成员) 3.代码实现 4.思考 1.什么是监听者模式 监听者模式在现实中无处不在,举个常见的例子,我们经常在电影片段中看到,当信号侦察兵接收到上级下发的某个指令信号,会立即执行相应动作.在古代,亦有烽火台,当烽火台被点燃时,远处哨兵...

2019-10-16 16:26:43

阅读数 50

评论数 0

原创 【心路历程】-2019新计划-下(后端成长之路)

接上篇:https://blog.csdn.net/lovexiaotaozi/article/details/85616167 本篇继续下半年规划,之所以会有下半年规划,是因为我觉得做事之前事先规划真的太重要了,凡事预则立,不预则废,没有规划就没有章法,以至于时间利用的效率低下,目前来看上半年...

2019-08-26 23:08:09

阅读数 192

评论数 0

原创 【mysql】-mysql读写分离后性能到底能提高多少(实测)

尽人皆知,Mysql通过读写分离分库分表后性能会有提升,那么如果仅配置主从复制,读写分离到底能提升多少呢? 网上逛了一圈也没有找到什么可以参考的数据,还是实践出真知,自己实际测一番便可知晓. 环境描述: 项目我采用生产环境的一个项目,数据也拷贝了一份(核心几张表数据均超百万),然后选取了其中...

2019-06-17 18:17:10

阅读数 1488

评论数 0

原创 【高并发专题】-高并发下前后端常用解决方案总结(全套)

鲁迅说过:如果你也想戴上高级Java程序员这顶高帽子,那么高并发相关解决方案你必须深入骨髓. 高并发场景下,主要解决几个问题: ①请求的响应时间变长,如何才能减少请求响应时间,提升用户体验. ②数据的安全,在高并发多线程场景下,由于竟态条件,指令重排等影响,很容易出现数据不安全问题,需要避免...

2019-06-14 19:01:35

阅读数 718

评论数 0

原创 【高并发专题】-JUC-AQS及拓展组件详解

本篇主要介绍AQS原理及其构建的各种同步装置和锁. AQS是类AbstractQueuedSynchronizer的缩写,位于java.util.concurrent包下,可以用来构建锁,各种同步装置.其底层的数据结构如下图: 是基于链表实现的FIFO队列,队列中维护了等待线程的各种信息....

2019-06-12 15:42:27

阅读数 82

评论数 0

原创 【高并发专题】-java线程安全-线程安全策略

1.使用单例确保发布对象的安全 单例是最为常见的一种设计模式,关于单例也有非常多种实现方式,平时看到最多的就是饿汉式和懒汉式,我在前面的设计模式章节有详解,这里不多说,我这里仅提一下一种基于饿汉式的改进单例,具有诸多优点,在spring源码中亦有大量使用.是采用枚举的方式实现的单例,好处显而易见...

2019-06-06 11:10:59

阅读数 145

评论数 0

原创 【高并发专题】-java线程安全-有序性

我们编写的代码计算机是不能直接识别的(汇编语言除外),以java为例,编写后的代码需要通过编译器编译成.class字节码文件,再由jit编译成机器码运行在Jvm中,而且在jvm机器码的运行顺序还要经过cpu调度,在编译和cpu调度期间,为了提高性能,编译器和cpu可能会对代码顺序进行重排序,所以代...

2019-06-05 15:35:26

阅读数 56

评论数 0

原创 【高并发专题】-java线程安全-线程之间内存可见性

对于线程内存可见性问题,前面已经梳理过了,不想再浪费篇幅,之间戳这篇: https://blog.csdn.net/lovexiaotaozi/article/details/81359365

2019-06-05 10:34:16

阅读数 59

评论数 0

原创 【高并发专题】-java线程安全-原子性-Lock包详解

对于锁,已经是老生常谈了,前面也梳理过很多次了,我甚至都不想再写这篇了,但其在高并发多线程中的重要性还是不言而喻的,所以还是决定再开一篇,从更深层的角度分析JUC提供的lock包. 先来看一下jdk1.8-api,java.util.concurrent.locks包的结构: 其中红框中勾...

2019-06-04 18:34:18

阅读数 129

评论数 0

原创 【高并发专题】-java线程安全-原子性-Automic包详解

线程安全性 当多个线程同时访问某个类时,不管采取何种线程调度方法,在主调代码中不需要采取额外的同步或者协同,这个类都能表现出正确的行为,那么这个类就是线程安全的. 线程安全的三个特性 原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作. 可见性:一个线程对主内存的修改会被其他线程...

2019-06-04 10:21:33

阅读数 238

评论数 0

原创 【面试题】-java高级面试题汇总

花大笔墨整理的一些java高级程序猿必会的面试题,其中有很多都是大厂面试题. 目录 1.spring IOC原理 2.spring bean生命周期 3.spring aop原理 4.spring mvc原理 5.Mybatis原理 6.servlet原理 7.netty原理 8...

2019-05-20 18:44:45

阅读数 2234

评论数 0

转载 【mysql】linux centos7.3 安装Mysql

之前有人来问我linux上怎么安装Mysql,正好今天要切库,安装Mysql,就随手记录一下.说实话Linux上安装mysql其实很简单,如果你用yum命令的话,但是用yum安装后的mysql各种配置文件和安装文件可能不是你想要的存放位置,放的很奇葩,你想按常规方法去找很可能找不到,还要用命令再查...

2019-05-16 16:36:52

阅读数 57

评论数 0

转载 【面试题】-linux面试题汇总

linux这块比较熟练,看了下网上的各种面试题都已经掌握了,我飘了,就不自己梳理了,直接转载一篇... 转自: https://blog.csdn.net/super_xl/article/details/82665132 问题一: 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主...

2019-05-09 10:59:21

阅读数 316

评论数 0

原创 【面试题】-sql相关面试题汇总

目录 1.数据库设计的几个范式 2.mysql索引有哪几种?索引算法有哪些? 3.mysql数据库锁有哪些? 4.数据库连接池的实现原理 5.Mybatis的实现原理 6.Mybatis与Hibernate的区别? 7.#{}和${}区别 8.statement和parpare...

2019-05-09 10:15:48

阅读数 182

评论数 0

原创 【面试题】-java面试题总目录

前言:先吐槽一下面试吧,相信不少人都有这样的经历,其实你对某项技术已经掌握的很OK了,但在面试的时候却未必能发挥到很好,让面试官觉得你确实已经很好的掌握该技术,也就是说你实际对该技术掌握的程度有90%,但面试时表现出来的却只有30%甚至更少,这可能是表达能力的问题,但也可能很大程度是因为你没有刷面...

2019-05-06 16:36:26

阅读数 197

评论数 0

原创 【面试题】-java分布式及微服务面试题汇总

目录 1.CAP理论 2.BASE理论 3.接口的幂等性问题 4.消息中间件如何解决消息丢失问题 5.什么是分布式事务?分布式事务的类型有哪些? 6.分布式事务的解决方案有哪些? 7.Dubbo的服务请求失败怎么处理 10.Soa和微服务架构有哪些区别? 11.dubbo服务提供...

2019-05-06 16:35:38

阅读数 5596

评论数 0

原创 【面试题】-多线程面试题汇总

目录 1.什么是线程? 2.线程和进程的区别? 3.什么是自旋锁? 4.什么是CAS? 5.什么是乐观锁和悲观锁? 6.什么是原子操作? 7.什么是Callable和Future? 8.ThreadLocal 9.InheritableThreadLocal 10.Thre...

2019-04-30 15:59:08

阅读数 240

评论数 0

原创 【面试题】-java集合框架和IO面试题汇总

免责声明:本篇内容来自网络汇总,部分回答既参考了网上的内容,也结合了自身所学. 目录 1.说说常见的集合有哪些吧? 2.HashMap与HashTable的区别? 3.HashMap的put方法具体流程 4.HashMap的扩容 5.什么是Hash冲突?Hash冲突怎么解决? 6.H...

2019-04-25 18:09:03

阅读数 556

评论数 0

转载 【面试题】-java最基础的面试题汇总

目录 1.面向对象的三大特性 2.什么是多态 3.多态的好处 4.虚拟机是如何实现多态的 5.final关键字加在类,方法,变量上分别有什么作用 6.static关键字的作用 7.接口和抽象类的区别 8.父类的静态方法能否被子类重写 9.什么是不可变对象 10.静态变量和实...

2019-04-24 14:12:21

阅读数 160

评论数 0

原创 【VUE】ES6常用语法巩固

前言:Vue是以ES6为基础构建的,加上ES6已经被目前绝大部分浏览器支持,是 JavaScript 的下一个版本标准,因此有必要单独抽出来一篇来总结一下ES6的语法. 目录 1.var const let 区别 2.箭头函数 3.参数的默认值 4.展开运算符 5.省略字面量 1...

2019-04-19 18:08:33

阅读数 286

评论数 0

原创 【VUE】-使用Vue高仿最新版去哪儿网 涉及诸多常用知识点总结

前言:花了近两个月时间研究ES6语法和VUE,然后手写了去哪儿网最新版的页面,至今也算是初出茅庐,为了避免遗忘,赶紧在此总结学到的所有比较重要常用的知识点. 项目地址:https://github.com/laohanjianshen/qunar 部分截图: 更多的细节图就不一一贴了...

2019-04-19 16:19:02

阅读数 195

评论数 0

原创 【VUE】-使用VUE进行移动端H5页面开发前的推荐准备工作

在正式使用Vue进行移动端页面开发前,需要做一些前置工作,以此保证用户在访问页面时看到的东西不会因设备的差异而出现各种不同的效果,比如一个页面在iphone7 plus上显示的很正常,然后切换到了Iphone5上因为屏幕太小部分页面内容被遮挡了,影响用户正常使用和体验,当然还有一些细节需要优化,比...

2019-04-17 17:39:49

阅读数 2309

评论数 4

原创 【VUE】-前端探秘 VUE中的动画特效

1.Vue中的动画实现原理 Vue实际上是通过动态地给<transition>标签包裹的内容添加class,然后结合css对不同的class实现不同样式,最终实现动画效果. <!--淡入/淡出--> <style> .v-en...

2019-03-28 14:56:28

阅读数 101

评论数 0

原创 【VUE】-前端探秘 VUE组件深入了解

1.通过is解决在使用组件中出现的bug(适用于<table>,<ul>,<ol>,<select>等标签) 场景:一个表格有多行,我想把行抽出来定义成一个自定义组件,然后在页面中显示出来. <div id="app&q...

2019-03-27 15:47:51

阅读数 39

评论数 0

原创 【VUE】-前端探秘 VUE基础知识

前言:最近开始学习VUE这套框架,经过近半个月的摸索,发现VUE这套框架确实好,轻量,简单,易用,强大... 作为一个主攻后端的程序员,为了避免前端框架学了用得少忘得快,在此开篇总结. 目录 1.页面渲染 1.1声明式渲染 1.2条件/循环渲染 1.3绑定(v-on/v-bind/v-...

2019-03-26 15:28:51

阅读数 93

评论数 0

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