自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 十年经验倾囊相授,MySQL-高性能使用索引,拿走不谢

前言索引是存储引擎用于快速找到记录的一种数据结构,索引对于良好的性能非常关键,特别是随着数据量的加大,索引对性能的影响越发重要,但是日常工作中索引经常被忽略,造成经常遇到糟糕索引导致的性能问题。索引优化是对查询性能优化最有效的手段,索引能够轻易将查询性能提高几个数量级,创建一个真正的最优索引,应该是研发追求的目标。所谓索引其实就是我们日常经常使用目录,协助我们尽快找到需要的内容。索引有很多种类型,为不同的场景提供更好的性能。在MySQL中,索引是在存储引擎层实现,而不是在服务器层实现,所以并没有统一的索

2021-06-24 15:57:15 317 1

原创 炒干货!!!Springboot整合Shiro实现登录加密和权限

这篇文章实打实的技术指导,废话不多说,直接开始干,希望大家多多一键三连支持一下野生技术博客,毕竟这年头技术博士不多见了呀先看看下面的teacher表role表 perms表 shiro是一个安全框架,可以进行认证、授权、密码加密、会话管理 从外部来解析shiro框架:Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject

2021-06-24 14:33:43 451 1

原创 前三星程序员被无良HR欺骗,因祸得福竟“意外”拿下字节跳动offer(定薪45K)

前言先讲述一下自己为什么到字节跳动面试的原因吧,因为上一次面试被无良HR欺骗坑惨,面试的是一家上海某电商公司,给的薪资是不错。面试的时候,找我要了工资流水,然后给了我口头offer,就让我回去等了邮件了。回去之后就觉得offer没啥问题,稳稳当当了,就没再去面其他的公司,打起了游戏。结果等了两个礼拜也没等来邮件,问HR告诉我在走流程,我问是不是不要我,HR说要,让我继续等。再过了几天我再去问,HR就怎么都不回我了,这个时候我才反应过来“坏了”。好在后来我马上开始面试其他的公司,阴差阳错拿到了字节跳动的o

2021-06-23 16:46:28 883

原创 网曝:985毕业的“打工人”,大厂java开发5年被裁,内卷优化后还被经历了哪些黑幕?

周末的时候,一个很久没联系的朋友在微信上找到我,说有些关于程序员职业规划的问题想聊一聊。其实我跟他并不熟,甚至不记得是因为什么加的微信,只记得有过几次问题的探讨。那个时候,他还在大厂工作,负责一个创新业务的产品工作。现在,他刚从那家待了两年的大厂离职了。按他的说法,自己是被「优化」的。「优化」这个词也算一个互联网行业的「黑话」,通常指因为某些原因被辞退或者拿了公司赔偿后主动离职的。他发给我的经历,我看完后觉得,其实相对于大多数职场人来说,他的履历还算是光鲜的。本科985,毕业后通过校招进了美团

2021-06-23 10:01:24 393

原创 Github标星35K+超火的整理宝典【数据结构和算法】爆肝三万字你必须知道的20个解决问题的技巧

前言数据结构和算法 (DSA) 通常被认为是一个令人生畏的话题——一种常见的误解。它们是技术领域最具创新性概念的基础,对于工作/实习申请者和有经验的程序员的职业发展都至关重要。掌握DSA意味着你能够使用你的计算和算法思维来解决前所未见的问题,并为任何科技公司的价值做出贡献(包括你自己的!)。通过了解它们,您可以提高代码的可维护性、可扩展性和效率。话虽如此,我决定将我所了解的数据结构和算法集中起来。本文旨在使 DSA 看起来不像人们认为的那样令人生畏。它包括 15 个最有用的数据结构和 15 个最重要

2021-06-22 20:58:14 2018

原创 阿里巴巴面试官:谈谈 Tomcat 请求处理流程,我一脸懵逼。。

很多东西在时序图中体现的已经非常清楚了,没有必要再一步一步的作介绍,所以本文以图为主,然后对部分内容加以简单解释。那接下来我将重点聊聊Tomcat,希望给你以借鉴!大家看完觉得还不错的话,别忘了给个一键三连哦!绘制图形使用的工具是 PlantUML + Visual Studio Code + PlantUML Extension本文对 Tomcat 的介绍以 Tomcat-9.0.0.M22 为标准。https://tomcat.apache.org/tomcat-9.0-doc/index.h

2021-06-21 15:14:42 179

转载 渣硕试水字节跳动,消息队列面试连环问,本以为简历都过不了,123+HR面直接拿到意向书满满干货指导!

消息队列核心知识点有很多,为了更贴合实际场景,这里我们从常见的面试问题入手:如何保证消息不丢失?如何处理重复消息?如何保证消息的有序性?如何处理消息堆积?当然在剖析这几个问题之前需要简单的介绍下什么是消息队列,消息队列常见的一些基本术语和概念。接下来进入正文。什么是消息队列来看看维基百科怎么说的,顺带学学英语这波不亏:In computer science, message queues and mailboxes are software-engineering component

2021-06-18 17:01:29 382

原创 我把Github上最牛b的Java教程设计模式(三)命令模式整合成了一个PDF文档

前言今天在面试别人的过程,问到了设计模式,他说命令模式,what!!我没有听过,我只能强装淡定,问了问他,回来赶紧翻翻书,补一补。命令模式日常背书:命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。先来讲个故事吧,再来说说自己的理解。板面的故事板面相信大家都吃过吧,今天讲的是公司那边的一家板面店, 我们皮皮家族经常去吃,这家店中

2021-06-18 15:42:20 228 2

原创 阿里内部Java实战指南|花3分钟你就初步掌握了Redis分布式锁

前言:随着互联网的发展,单体架构所存在的问题也一一爆了出来,如部署成本高,迭代速度慢,不易于扩展等问题,微服务架构也油然而生,微服务的出现,并不是为了替代原先单体架构,而是为了解决单体架构出现的相关问题;微服务并不是为了取代某一种程序架构,而是它更适合于某种业务场景或更好地解决某种问题。然而微服务的出现也会带来一些相关的问题如:分布式问题更加复杂化:因为本来分布式问题就存在,比如分布式锁,分布式事务,数据一致性等问题,随着服务的细化,自然就让分布式问题更加复杂化;问题排查增加难度:微服务很多时

2021-06-18 14:33:34 159 1

原创 Github标星35K+超火的阿里p7大佬整理的Java核心知识总结,附超全教程文档

JDK JRE JVMJDK:Java标准开发包,它提供了编译、运⾏Java程序所需的各种⼯具和资源,包括Java编译器、Java运⾏时环境,以及常⽤的Java类库等。JRE:Java运⾏环境,⽤于解释执⾏Java的字节码⽂件。JVM:Java虚拟机,是JRE的⼀部分。负责解释执⾏字节码⽂件,是可运⾏java字节码⽂件的虚拟计算机区别联系:JDK包含JRE,JDK 和 JRE 中都包含 JVM。JDK出了包含jre还包含⼀些常⽤开发⼯具和基础类库JDK ⽤于开发,JRE ⽤于运⾏jav.

2021-06-17 15:40:25 332

原创 硬核!啃完666页Java面试高频宝典,6月成功定级腾讯T3-2

面试,是大家从学校走向社会的第一步。互联网公司的校园招聘,从形式上说,面试一般分为 2-3 轮技术面试 +1 轮 HR 面试。但是一些公司确实是没有 HR 面试的,直接就是三轮技术面。技术面试中,面试官一般会先就你所应聘的岗位进行相关知识的考察,也叫基础知识和业务逻辑面试。只要你回答的不是特别差,面试官通常会说:“咱们写个代码吧”,这个时候就开始了算法面试。也就是说,一轮技术面试 = 基础知识和业务逻辑面试 + 算法面试。本文我们主要从技术面试聊起。技术面试包括:业务逻辑和基础知识面试。首先是业务逻

2021-06-17 15:25:30 314

原创 史无前例!肝了30天,终于整出这份JVM原理最全、清晰、通俗讲解的宝典笔记

开发工程师们都知道,JVM对于我们来说十分重要。“学习 JVM 能深入地理解 Java 这门语言,可以为未来排查问题打下基础”对于刚开始学习Java的人来说,JVM是有一些难度的,但对于已经有2、3年工作经验的Java程序员来说,你若想不再只做CRUD,而是继续提升成为高级开发工程师,拥有拿到更高工资的能力,那就必须深入掌握JVM。从求职的角度来看,JVM也是Java工程师面试成功的一道门槛,可能以前我们会认为只有中高级的Java工程师才会面对JVM的问题,但现在初级Java工程师也难逃此题。**

2021-06-16 16:41:10 207 1

原创 大厂面试内幕:阿里内部整理出的5000页Java多线程面试题(含答案)复盘指南,起飞

Java并发编程问题是面试过程中很容易遇到的问题,提前准备是解决问题的最好办法,将试题总结起来,时常查看会有奇效。在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得更多职位,那么你应该准备很多关于多线程的问题。他们会问面试者很多令人混淆的Java线程问题。面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面。现在引用Java5并发包关于并发工具和并发集合的问题正在增多。那些问题中ThreadLocal、Blocking Queue、Count

2021-06-16 14:39:43 171

原创 学妹半夜想学SpringBoot,连夜起来整理了一篇SpringBoot入门最详细教程笔记,看完才准睡觉!

前言凭借开箱即用,远离繁琐的配置等特性,Spring Boot 已经成为 Java 开发者人人必学必会的开源项目。那么开发者该如何快速上手Spring Boot 呢?Spring Boot 到底是啥?那请问Spring Boot 到底是啥?Spring Boot是Spring框架的扩展和自动化,它消除了在Spring中需要进行的XML(EXtensible Markup Language)文件配置(若习惯XML配置,则依然可以使用),使得开发变得更快、更高效、更自动化。微服务 微服务:每一个功能元

2021-06-09 22:18:24 212 1

原创 教妹学MySQL:哇塞!GitHub 上这些 实用的几种SQL语句太强了吧,看完哪个都变大佬!

前言SQL查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结一些方法,供大家参考学习。如果大家还有其他好的语句或者好的见解欢迎分享。实用的SQL1、常见 SQL 语句性能优化策略对查询进行优化,应尽量避免全表扫描,首先应考虑在 WHERE 及 ORDER BY 涉及的列上建立索引。应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,创建表时 NULL 是默认值,但大多数时候应该使用 NOT NULL,或者使用一个特殊的值,如 0,-1 作为默认值。应尽

2021-06-07 15:44:19 371 4

原创 史无前例!肝了30天,我靠着这份java突击成功拿下蚂蚁金服offer

今年的大环境非常差,互联网企业裁员的现象比往年更严重了,可今年刚好是我的第一个“五年计划”截止的时间点,说什么也不能够耽搁了,所以早早准备的跳槽也在疫情好转之后开始进行了。前前后后面试了不下二十家公司,一二线大公司或者是融资中的创业公司都面试过,也拿了几个offer,其中包括美团、蚂蚁金服等。下面题目都是我总结这些天面试中问的大多数题目,综合分类有Java基础,框架,多线程,网络通信,数据库以及设计模式,算法等几个模块。如果大家还有其他好的题目或者好的见解欢迎分享。一、JVM出乎意料,Java虚拟机应

2021-06-03 21:11:37 270 2

原创 21年GitHub标星19.8k阿里腾讯百度Java面试全套真题解析在互联网火了 ,完整版开放下载

前言本科应届毕业生,打算玩命一个月,争取六月份参加面试(面正式岗,非实习),主要还是java工作,我现在的程度是:java se也看了四五本了,就按知乎上说的,先看了两本国产的,然后看老外写的java core什么的,书上的代码都敲了几遍,java ee部分只看了jsp,xml,servlet。框架完全没看,也没有项目经验,现在还是做不出东西,也没思路,所以特别焦虑下一步该看什么,上网看了一些阿里巴巴、百度、腾讯面试以及其他大厂时经常遇到的面试真题和答案解析,不知道有没有用,希望有大佬能够留言解答,如果大

2021-05-29 15:54:37 185 3

原创 28岁因为不能月入过万,所以在一起5年的女朋友和我分手了,我想当程序员!可父母力阻我辞职,怎么办?

前言就因为女朋友说了一句,你看你兄弟是做程序员的一个月2万多,那像你天天加班加点的做月收入才8k,所以我选择了分手!大学选择的就是计算机专业,但是毕业后电商很火所以我选择去做跨境电商,这两年因为疫情的原因本来就想换行业分手应该是我压死我最后一根稻草,我现在有车无房,父母在老家有一个农场,每年能够挣个20多问万,我觉得我可以再拼一把,但是父母极力阻止我,希望我回去专心做农场即使在这样的情况下我还是选择了跳槽从头去做Java,因为我在城市买房买车!让前任看看新的面试一面:1hmysql知道哪些

2021-05-27 18:01:39 194

原创 阿里巴巴公司开源:2021年全网最详细的dubbo使用教程,15分钟快速从入门到实战

一 为什么需要 dubboDubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。参考解析:郭霖、鸿洋、玉刚、极客时间、腾讯课堂…接下来我带大家从入门到实战,让你不管是实用还是面试中都迎刃而解由于文章内容比较多,篇幅不允许,如有需要获取完整的资料文档的朋友可以点这里获取或者加QQ1404119194,备注csdndubbo这个技术,可能都是因为项目需要,所以,我们就用了,但是,至于.

2021-05-25 17:50:18 1601 1

原创 5年BAT 老兵的经验之谈!如何编写高效优雅的Java程序?

大家好!我是老猿,一个热爱技术的程序猿,Java行业入行7年,每天都在学习和分享的路上!1.面向对象 1.1 构造器参数太多怎么办? 对于多个成员变量的类构造函数,对于不同参数个数的构造函数一般需要定义多个构造函数,比较麻烦。 对于JavaBean模式,使用set/get方式可能会使得得到的对象,某个成员变量没有初始化就使用了该成员变量,会有问题。 比较好的初始化方式是用Builder构造者模式。初始化直接采用链式初始化的方式进行初始化。 用builder模式,用在 1、5个或者5个以上的成员变量

2021-05-21 16:26:18 187 2

原创 毕业五年,年薪百万,我掌握了这些java最简单粗暴的入门线程方法

大家好!我是老猿,一个热爱技术的程序猿,Java行业入行7年,每天都在学习和分享的路上!线程1.简介大家都知道多线程给我们带来了更好的资源利用和更好的程序响应,所以关于它的简介我就不多阐明了,大家可以自行搜索,我主要讲的就是重点线程就是独立的执行路径;在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程、gc线程;对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制;线程会带来额外的开销,如cpu调度时间,并发控制开销;每个线程在自己的工作内存交互,内存控制不当会造成数据不一致;2.线程创

2021-05-21 11:21:10 121 4

原创 太香!终于有阿里大牛用15分钟,把Java多线程性能优化讲明白了

大家好!我是老猿,一个热爱技术的程序猿,Java行业入行7年,每天都在学习和分享的路上!正文大家使用多线程无非是为了提高性能,但如果多线程使用不当,不但性能提升不明显,而且会使得资源消耗更大。下面列举一下可能会造成多线程性能问题的点:死锁过多串行化过多锁竞争切换上下文内存同步下面分别解析以上性能隐患死锁关于死锁,我们在学习操作系统的时候就知道它产生的原因和危害,这里就不从原理上去累述了,可以从下面的代码和图示重温一下死锁产生的原因:public class LeftRightDeadlo

2021-05-20 11:40:05 123 4

原创 15分钟教你快速学会!JVM内存区域异常分析

Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域,不同的区域在内存不足时会抛出不同的异常。接下来将对各区域分别进行分析介绍,内容包括触发各区域OutOfMemoryError异常的代码,以及对其进行排查判定的过程。还会初步涉及几个与内存相关的最基本虚拟机参数。1、Java堆溢出Java堆用于存储对象实例,只要不断创建对象并保证对象不会被回收,那么当对象数量到达最大堆的容量限制后就会产生堆内存溢出异常。测试代码如下:/** * 探究Java堆溢出 * VM Args

2021-05-18 16:58:29 220 6

原创 90%的程序员都不知道的Redis过期删除策略和内存淘汰策略

先自己思考一下这些问题:①、如何设置Redis键的过期时间?②、设置完一个键的过期时间后,到了这个时间,这个键还能获取到么?假如获取不到那这个键还占据着内存吗?③、如何设置Redis的内存大小?当内存满了之后,Redis有哪些内存淘汰策略?我们又该如何选择?如果上面的几个问题你都懂,那么下面的内容你就不用看了;如果你不是很懂,那就带着这些问题往下看。1、设置Redis键过期时间  Redis提供了四个命令来设置过期时间(生存时间)。①、EXPIRE :表示将键 key 的生存时间设置为 ttl

2021-05-18 11:37:17 108

原创 采访了900个大厂员工,终于总结出10大MySQL性能调优方法

MYSQL是什么就不需要我一一解释了,一般都是工作2年的架构师所掌握的必备技能之一一定看到最后哦!!!所有方法都是整理实践亲测有效才会分享给大家!!1.选择合适的存储引擎: InnoDB现在基本都是默认选择InnoDB,不知道你们的习惯是什么,我自己测试的时候我觉得MyISAM 比 InnoDB 速度快,为什么?很简单 MyISAM 只缓存索引,而 InnoDB 缓存数据和索引,MyISAM 不支持事务。但是 如果你使用 innodb_flush_log_at_trx_commit = 2 你.

2021-05-17 17:26:03 119

原创 (最终篇)一文看透垃圾回收,深入剖析,浅入深出

由于上一篇文章篇幅比较多,我们在这一篇文章重点讲解上一篇文章中提到的 CMS 垃圾回收器,让你可以更好的理解垃圾回收的过程。还没阅读过上一篇文章的朋友可以点击此处查看以便更好理解:关于垃圾回收你真的了解透彻了吗?我熬夜深度剖析了一下在这里首先给你介绍几个概念:Minor GC:发生在年轻代的 GC。 Major GC:发生在老年代的 GC。 Full GC:全堆垃圾回收。比如 Metaspace 区引起年轻代和老年代的回收。理解了这三个概念,我们再往下看。CMS 的全称是 Most

2021-04-12 21:56:22 125

原创 关于垃圾回收你真的了解透彻了吗?我熬夜深度剖析了一下

本文章我们重点剖析 JVM 的垃圾回收机制。关于 JVM 垃圾回收机制面试中主要涉及这三个考题:JVM 中有哪些垃圾回收算法?它们各自有什么优劣? CMS 垃圾回收器是怎么工作的?有哪些阶段? 服务卡顿的元凶到底是谁?虽然 Java 不用“手动管理”内存回收,代码写起来很顺畅。但是你有没有想过,这些内存是怎么被回收的?其实,JVM 是有专门的线程在做这件事情。当我们的内存空间达到一定条件时,会自动触发。这个过程就叫作 GC,负责 GC 的组件,就叫作垃圾回收器。JVM 规范并没有规定垃圾回

2021-04-10 16:13:03 194

原创 面试时总是搞混JMM 与 JVM?一文带你了解得透透的

本篇文章我们主要分析一个大厂面试题:不要搞混 JMM 与 JVM。在面试的时候,有一个问题经常被问到,那就是 Java 的内存模型,它已经成为了面试中的标配,是非常具有原理性的一个知识点。但是,有不少人把它和 JVM 的内存布局搞混了,以至于答非所问。这个现象在一些工作多年的程序员中非常普遍,主要是因为 JMM 与多线程有关,而且相对于底层而言,很多人平常的工作就是 CRUD,很难接触到这方面的知识。JMM 概念在前几篇文章,就已经了解了 JVM 的内存布局,你可以认为这是 JVM 的数据存储模

2021-04-06 22:24:19 314

原创 怎么得心应手应对 OOM 的疑难杂症?我给出了详细的解析

在前面几篇文章中,我们不止一次提到了堆(heap),堆是一个巨大的对象池。在这个对象池中管理着数量巨大的对象实例。而池中对象的引用层次,有的是很深的。一个被频繁调用的接口,每秒生成对象的速度,也是非常可观的。对象之间的关系,形成了一张巨大的网。虽然 Java 一直在营造一种无限内存的氛围,但对象不能只增不减,所以需要垃圾回收。那 JVM 是如何判断哪些对象应该被回收?哪些应该被保持呢?在古代,刑罚中有诛九族一说。指的是有些人犯大事时,皇上杀一人不足以平复内心的愤怒时,会对亲朋好友产生连带责任。诛

2021-04-03 21:11:46 91

原创 如何在亿级流量高并发下进行估算和调优?直接上实战案例

本篇文章主要讲解如何在大流量高并发场景下进行估算和调优。我们知道,垃圾回收器一般使用默认参数,就可以比较好的运行。但如果用错了某些参数,那么后果可能会比较严重,我不只一次看到有同学想要验证某个刚刚学到的优化参数,结果引起了线上 GC 的严重问题。所以你的应用程序如果目前已经满足了需求,那就不要再随便动这些参数了。另外,优化代码获得的性能提升,远远大于参数调整所获得的性能提升,你不要纯粹为了调参数而走了弯路。那么,GC 优化有没有可遵循的一些规则呢?这些“需求”又是指的什么?我们可以将目标归结为三

2021-04-02 17:57:39 196

原创 大厂面试题:有了G1还需要其他垃圾回收器吗?我教你怎么答

本篇文章我们主要来看下这两个高频的面试考题:G1 的回收原理是什么?为什么 G1 比传统 GC 回收性能好? 为什么 G1 如此完美仍然会有 ZGC?我们在上次,简要的介绍了 CMS 垃圾回收器,下面我们简单回忆一下它的一个极端场景(而且是经常发生的场景)。在发生 Minor GC 时,由于 Survivor 区已经放不下了,多出的对象只能提升(promotion)到老年代。但是此时老年代因为空间碎片的缘故,会发生 concurrent mode failure 的错误。这个时候,就需要降级为

2021-04-01 21:32:50 295

原创 JVM探究:全面解析OOM异常,都在这了,看完再也不怕遇到了

在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称OOM)异常的可能。本节探究主要基于jdk1.8的内存结构。JVM探究:全面解析OOM异常,都在这了,看完再也不怕遇到了1. Java堆溢出Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。import java.util.Arra

2021-03-31 17:57:14 524

原创 Zookeeper和Redis实现分布式锁,附我的可靠性分析

在分布式系统中,为保证同一时间只有一个客户端可以对共享资源进行操作,需要对共享资源加锁来实现,常见有三种方式:基于数据库实现分布式锁 基于 Redis 实现分布式锁 基于 Zookeeper 实现分布式锁高并发下数据库锁性能太差,本文不做探究。仅针对Redis 和 Zookeeper 实现的分布式锁进行分析。实现一个分布式锁应该具备的特性:高可用、高性能的获取锁与释放锁 在分布式系统环境下,一个方法或者变量同一时间只能被一个线程操作 具备锁失效机制,网络中断或宕机无法释放锁时,锁必须被

2021-03-30 17:20:35 126

原创 全网最透彻!Dubbo整合SpringBoot详解,又通宵了

目前的dubbo已支持和springboot集成,还是之前的例子,这次我们通过springboot容器来实现。借此了解一下基于springboot容器启动的dubbo的配置及使用。1. 准备工作创建一个Maven空项目,作为项目的父工程,此工程的子项目基于Spring Boot 2.0.5 实现在父工程的pom.xml引入之后要创建的子工程 <modules> <module>gmall-interface</module&gt.

2021-03-29 16:30:56 5543 4

原创 Redis:看完就比常人多会三种类型实战,可以拿去炫耀了

前言对于Redis而言,很多小伙伴只关注其关键的五大基础类型:string、hash、list、set、sorted set(有序集合),其实还有三种特殊类型在很多应用场景也比较适合使用,分别是:bitmap、geospatial、hyperloglog;上一篇(跟我一起学Redis之五种基本类型及其应用场景举例(干了6个小时))对五种类型进行分享,接下来结合应用场景来说说三种特殊类型的使用方式;正文geospatial(地理空间)该类型在Redis3.2.0版本中加入,其本质是将经纬度通过

2021-03-25 17:55:47 99

原创 美团面试官总结的“Spring boot面试文档”,全是大厂高频面试题,太全了!

前言Spring boot不单单在BAT这些一线大厂使用率极其的高,在中小企业中使用率也是非常高的,又赶上现在是跳槽面试的高峰期“金三银四”,企业的需求增大,当然对待面试者的要求也会随之提高,竞争也会随之增大。相信现在的你之所以可以看到我的这篇文章,那肯定是因为最近在准备面试,到处搜刮面试题吧,今天给大家分享的这份“spring boot面试题集锦”,是美团面试官花了几个月的时间整理的,涵盖一线大厂所有常见的高频spring boot面试题,十分全面!现在分享给大家。xu要这份文档的完整版可以

2021-03-24 17:46:06 151

原创 透彻!Ingress-nginx工作原理和实践,这操作可以吧

本文记录/分享 目前项目的 K8s 部署结构和请求追踪改造方案这个图算是一个通用的前后端分离的 k8s 部署结构:Nginx Ingress 负责暴露服务(nginx前端静态资源服务), 根据十二要素应用的原则,将后端 api 作为 nginx 服务的附加动态资源。Ingress vs Ingress-nginx#Ingress 是一种向 k8s 集群外部的客户端公开服务的方法,Ingress 在网络协议栈的应用层工作,根据请求的主机名 host 和路径 path 决定请求转发..

2021-03-24 17:00:52 602

原创 最简单的JVM内存结构图!既详细又简单明了,十分钟掌握

JVM内存结构图大家好,好几天没有更新了,今天的内容有点多,我们详细介绍下JVM内部结构图,还是和之前一样,案例先行,方便大家理解记忆。/** * @author :jiaolian * @date :Created in 2021-03-10 21:28 * @description:helloworld测试jvm内存区域 * @modified By: * 公众号:叫练 */public class HelloWorldTest { public static.

2021-03-23 22:00:02 1184

原创 超硬核!MySQL优化从执行计划开始(explain超详细)

前言小伙伴一定遇到过这样反馈:这页面加载数据太慢啦,甚至有的超时了,用户体验极差,需要赶紧优化;反馈等同于投诉啊,多有几次,估计领导要找你谈话啦。于是不得不停下手里头的活,赶紧进行排查,最终可能是程序处理的问题、也可能是并发量大导致排队问题、也可能是SQL查询性能导致等;而在很多时候,SQL查询缓慢是最直接拖慢系统的罪魁祸首,同样是实现一个功能,有的小伙伴毫秒级呈现效果,有的却要好几秒,而调优需要的花费时间不容小觑,最终可能就体现到个人业务能力上和形象上:哇,真牛逼,分分钟搞定; 菜鸟,居然写出

2021-03-22 20:13:57 190

原创 当Parallel遇上了DI—Spring并行数据聚合最佳实践

分析淘宝PDP让我们先看个图, Taobao的PDP(Product Detail Page)页.打开Chrome Network面板, 让我们来看taobao是怎么加载这个页面数据的. 根据经验, 一般是异步加载的, 要么是XHR,要么就是js(jsonp), 你应该很快可以找到还能看到这个接口的性能神奇的是,taobao竟然在一次请求中拉下了整个PDP页的完整数据, 而且服务端处理耗时不到125ms首先, 这么做有什么好处?前后端开发对接简单 在...

2021-03-21 21:04:24 151

空空如也

空空如也

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

TA关注的人

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