- 博客(177)
- 收藏
- 关注

原创 Spring官网阅读 | 总结篇
接近用了4个多月的时间,完成了整个《Spring官网阅读》系列的文章,本文主要对本系列所有的文章做一个总结,同时也将所有的目录汇总成一篇文章方便各位读者来阅读。下面这张图是我整个的写作大纲对应的文章目录汇总如下:Spring官网阅读(一)容器及实例化本文主要涉及到官网中的1.2,1.3节。主要介绍了什么是容器,容器如何工作。Spring官网阅读(二)(依赖注入及方法注入)本文...
2020-04-14 21:25:45
20036
19

原创 数据结构与算法 | 总结篇
为方便大家阅读,所以将《数据结构与算法》专栏目录进行一次整理:该文章会随专栏一起更新专栏目录如下:基础篇:算法| 再也不怕被问时间复杂度了 (上)算法| 再也不怕被问时间复杂度了 (下)数据结构| 数组为什么这么快?数据结构 | 再也不怕被问链表了算法 | 链表的应用,约瑟夫问题算法 | 链表的应用,缓存失效算法数据结构 | 再也不怕被问栈跟队列了...
2019-08-05 23:12:44
1441
6
原创 计算机中的null你是怎么读的?
哈喽,大家好,我是明智今天又是周五摸鱼日~往期摸鱼推荐:程序员的那些经典段子只有程序员才能看懂的笑话阿里面试:i>=j&i<=j&i!=j可以成立吗?混迹技术圈的这些年,你都听到过哪些奇奇怪怪的发音?不同人对同一个术语可能会有不同的读法,不知道大家平时有没有想过自己的读法是不是正确的呢?大部分同学可能都不会太在意自己的读法是不是正确的今天咱们就来看一看那些经常被念错的词...
2024-06-28 18:24:48
1068
原创 只有程序员才能看懂的笑话
哈喽,大家好,我是明智今天又是周五摸鱼日~咱们不聊技术,看点别的有意思的东西往期摸鱼记录:》》》程序员的那些经典段子》》》写出bug不用怕,世界就是一个巨大的草台班子【1】二进制世界上有10种人,一种懂二进制,另一种不懂【2】use c++ in javahow-i-use-c-in-java【3】有一个能跑就行【4】功能先上了再说【5】我设计的接口和别人调用的接口【6】当我测试刚写完的代码img...
2024-06-21 16:00:26
803
原创 如何保证服务发布过程中流量无损?
哈喽,大家好,我是明智书接上回:如何保证服务发布过程中流量无损?在上篇文章中咱们留了两个问题:服务如何响应停机信号SIGTERM,即kill -15探针如何实现?本文咱们就来解决这两个问题,同时分享一下笔者在落地优雅启停的过程中踩过的坑服务如何响应停机信号在java中我们可以直接利用通过Runtime来注册一个停机的钩子函数Runtime.getRuntime().addShutdownHook(...
2024-06-20 17:54:34
1105
原创 写出bug不用怕,世界就是一个巨大的草台班子
哈喽,大家好,我是明智又到周五了,每周五咱们都聊点不太正经的小玩意儿修bug是每个程序员都逃脱不了的宿命,下面这张图是不是让你感到真实所以咱们在日常工作中要遵循一个原则:能运行起来的bug,就不要去动它!能运行起来的bug,就不要去动它!能运行起来的bug,就不要去动它!重要的事情需要说三遍!不过,就算真的出了什么大的bug,也不用太慌,事情就是一个巨大的草台班子,你捅的篓子真的不算什么。不信您接...
2024-06-14 16:30:28
525
原创 得物架构面试:如何保证服务发布过程中流量无损?
哈喽,大家好,我是明智今天跟大家讨论一个服务稳定性相关的话题,对于大部分做业务的小伙伴来说,很少会被问到这类问题不过你如果你希望面试公司的一些基础部门,例如:基础架构、效能开发、服务稳定性保障等,就很可能遇到笔者在前段时间的面试中就被问到了,这个问题还有一系列的问法,例如:服务发布过程中总是出现5xx怎么办?如何实现服务的优雅启停?本文主要分为以下几个部分保证流量无损的关键是什么?K8s环境下如何...
2024-06-13 23:59:30
1540
原创 阿里面试:i>=j&i<=j&i!=j可以成立吗?
哈喽,大家好,我是明智又到周五了,周五咱们聊一些稍微简单一点的问题:i >= j && i <= j && i != j这个表达式可以成立吗?这看起来是一个不可能成立的表达式,不过在程序员的世界里,它却是可以成立的,且听我细细道来咱们先来看java中的一段代码:publicstaticvoidmain(String[]args)throwsE...
2024-06-07 16:00:14
343
原创 腾讯实习面试:tcp是不是一定要3次握手?
哈喽,大家好,我是明智在前面的几篇文章给大家分析了面试中常见的几个问题:《美团一面,发生OOM了,程序还能继续运行吗?》《美团一面:碰到过OOM吗?你是怎么处理的?》《美团一面,你碰到过CPU 100%的情况吗?你是怎么处理的?》咱们在面试中除了经常被问到CPU跟内存的问题外,还有一个重要的考点就是网络。正好前段时间有个小伙伴在腾讯面试的时候被问到了这个问题:tcp是不是一定要3次握手?我也借着这...
2024-06-04 20:50:32
478
原创 美团一面,你碰到过CPU 100%的情况吗?你是怎么处理的?
哈喽,大家好,我是明智在前两篇文章中《美团一面,发生OOM了,程序还能继续运行吗?》《美团一面:碰到过OOM吗?你是怎么处理的?》咱们已经分析过了程序在可使用的内存不足时可能出现的现象以及处理方式,CPU跟内存是程序运行最重要的两种资源,因此这篇文章咱们来聊一聊CPU不够用了,会有什么现象,如何排查。本文主要分为三部分分析一下CPU 100%的常见原因CPU 100%如何排查回答这个问题的一个参考...
2024-05-27 08:25:34
1151
原创 程序员的那些经典段子
哈喽,大家好,我是明智~本周咱们已经解决了在面试中经常碰到的OOM问题:《美团一面,发生OOM了,程序还能继续运行吗?》《美团一面:碰到过OOM吗?你是怎么处理的?》本来今天是给大家准备了另外一个常见的面试题:不过转念一想,这都周五了,谁TM还有心情看面试题,当然是摸鱼啊面试官:解释一下什么叫做死锁,解释明白我们就会要你。我:先发 offer,签完 offer 再解释。问 :java 和 Java...
2024-05-24 16:30:08
660
原创 美团一面:碰到过OOM吗?你是怎么处理的?
哈喽,大家好,我是明智接下来的几篇文章我会给大家介绍一系列面试题,这些面试题有些是我面试的时候别人问我的,有些是我自己作为面试官时去问别人的,有些是一些小伙伴在面试后跟我一起讨论过的,我会把这些题目整理成文章,慢慢和大家分享。如果面试被提到了OOM相关的问题,那么面试官主要在意的有哪些呢?你有没有实际处理OOM的经验。这是因为如果有这方面的经验,那么你在实际工作中会自觉规避这类问题,写出更高质量的...
2024-05-22 08:37:44
1147
原创 美团一面,发生OOM了,程序还能继续运行吗?
首先,咱们得搞清楚什么是OOM。OOM,全称Out of Memory,简单来说就是程序在运行过程中,内存不够用了。想象一下,你在电脑上开了十几个网页,又开了个大型游戏,再加上后台一堆程序在跑,突然电脑卡死了,这就是典型的OOM情况。在程序世界里,当一个应用需要的内存超过了系统能够提供的内存,操作系统就会抛出一个OOM错误,告诉你:“兄弟,内存不够用了!
2024-05-19 21:42:47
1027
原创 美团一面问我i++跟++i的区别是什么
美团一面问我i++跟++i的区别是什么面试官:“i++跟++i的区别是什么?”我:“i++是先使用然后再执行+1的操作,++i是先执行+1的操作然后再去使用i”面试官:“那你看看下面这段代码,运行结果是什么?”publicstaticvoidmain(String[]args){intj=0;for(inti=0;i<10;i++){...
2024-05-10 23:16:44
697
原创 从985大学退学,你后悔吗?
每次面试,我都免不了被面试官问:“从华南理工退学,你后悔吗?”我在大三的时候由于一系列原因选择从大学退学,开始了3年的创业,然后又选择进入了it行业,兜兜转转一直到现在,成为了一名半自由职业者,之所以说是半自由职业者是因为,现在的工作基本都居家了,远程工作就OK。在工作的这些年,我选择开始自考,由于从大学退学,最高学历只能算高中,所以需要先从高中考大专,再从大专自考本科,终于在今年把所有的考试都考...
2024-05-06 08:48:10
445
原创 推荐一个好用的工具
最近新电脑到了,免不了又要一顿折腾,正好趁这个机会搜罗一下有没有什么好用软件,在我平常的开发中,少不了一边在某信上摸摸鱼,一边在IDEA里面撸撸码在这个过程中少不了要切换输入法,但是随着摸鱼频次变高,输入法切换错误的次数越来越多,今天给大家推荐的工具就是为了解决这个问题的。工具名称:Input Source Pro适用系统:Mac OS下载地址:https://inputsource.pro/zh...
2024-04-23 21:35:30
377
原创 改个名,恢复更新啦
兄弟们,工作换好了,后面恢复更新啦!公众号准备改个名决定了,就叫明智说给兄弟们准备了这次我准备面试的思维导图图片太大,文章放不下,公开分享的链接在这里:https://www.processon.com/view/link/662516c2b642db52e472d3cc...
2024-04-21 21:41:09
210
原创 HttpClient的释放资源到底在释放什么?如何正确的释放资源?
本文主要想聊一聊ApacheHttpClient中资源释放的那些事,如果对它不够了解的话可以参考下面的思维导图:链接:https://www.processon.com/view/link/641ef425fc0140496f0a3961我们常用的资源释放的API可以分为下面几类HttpRequestBase对象的跟abort方法,HttpGet、HttpPost都继承了这个类。
2023-03-26 01:10:23
2276
原创 Dubbo的独门绝技,SPI实现原理分析
在上篇文章我们已经对Dubbo中的SPI有了简单的了解,接下来我们通过源码详细了解其实现细节。在本文中,我将SPI分为普通SPI,与之相对应的是自适应SPI,这个概念是笔者“捏造”的,为了更好的划分文章结构,读者不必纠结字眼。可以看到这个接口继承了Prioritized,Prioritized的主要作用是定义加载的优先级。LoadingStrategy的作用在于定义加载SPI配置文件时的策略,例如:从哪个目录下加载、哪些不需要加载等。
2023-03-22 19:34:45
1182
2
原创 Dubbo之外,一文看懂jdk、dubbo、spring中的SPI
这篇文章我们主要学习Dubbo中的SPI机制,为什么专栏开篇我们就要学些SPI呢?主要是因为,Dubbo采用的是Microkernel(微内核)+Plugin(插件)的设计方式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的,也就是 Dubbo 的所有功能点都可被用户自定义扩展所替换。上面这段话当然不是我瞎掰的,其实是官网原话基于此,我们想要对Dubbo有深入的了解,首先要学习便是其SPI机制的实现原理。
2023-03-20 21:08:49
710
原创 Http实战之编码、分块传输、范围请求
本系列文章:1、《Http实战之Wireshark抓包分析》2、《Http实战之无状态协议、keep-alive分析》3、《Http实战之缓存、重定向》本文为《Http实战》系列最后一篇,本文主要探讨在使用HTTP协议进行大文件传输时我们经常会使用到的三个特性在介绍这部分内容之前有必要对一个概念进行说明:实体。如果把 HTTP报文想象成因特网货运系统中的箱子,那么 HTTP实体就是报文中实际的货物。下图展示了一个简单的实体,封装在 HTTP 响应报文中。实体首部指出这是一个纯文本文档(Content-Typ
2022-10-31 09:53:23
1766
7
原创 Http实战之缓存、重定向
上篇文章我们已经介绍了http协议的`「无状态特性以」`及它的`「keep-alive」`机制,本文我们继续学习http协议的其它内容,首先我们从**【缓存】**聊起
2022-07-21 23:12:55
649
12
原创 Http实战之无状态协议、keep-alive分析
HTTP 是一种不保存状态,即无状态(stateless)协议。 HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求和响应都不做持久化处理。使用 HTTP 协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸展性,而特意把 HTTP 协议设计成如此简单。我们来看下面这个例子:【有状态】:【无状态】:可以看到如果是有状态协议,在,本次请求会依赖也可以依赖上次请求的
2022-07-04 09:35:15
1319
4
原创 Http实战之Wireshark抓包分析
我们选用netty搭建一个服务端,使用httpclient来实现http客户端。代码如下:pom文件引入依赖:服务端代码:客户端代码如下:我们将服务端启动后,运行客户端正常输出“Hello World”说明项目搭建成功Wireshark(前身 Ethereal)是一个网络包分析工具。该工具主要是用来捕获网络数据包,并自动解析数据包,为用户显示数据包的详细信息,供用户对数据包进行分析。下载成功后,我们打开主界面如下:这里我们看到的这个列表是我们本机的网卡列表,我们在抓包之前要确认具体的网卡,常用的网卡就
2022-07-01 23:01:19
16223
8
原创 只要我跑的够快,内卷它就卷不到我,一名高中生是如何做到在疫情下涨薪70%的?
前言最近刚刚入职,确实很忙,大周末的跑到公司来研究Apollo的源码。但是答应了群友出一篇面试的文章,所以想来想去先把文章写了再说。先大概说下我的面试经历吧笔者是从9月3号开始面试的,9月15号入职了微盟,目前是微盟基础技术中心的一名高级开发工程师。期间一共面试了9家公司,其中4家确定了offer跟具体薪资。两家过了所有技术面,到HR面之后没回应了,估计是觉得我薪资要的比较高,笔者这次跳槽薪资涨幅还是比较满意的,月薪的话上涨了70%。剩下还有3家,一家是在我入职后才通知我去公司做最后一轮面试,直接
2020-09-20 09:57:22
4428
23
原创 聊一聊使用事务时(@Transactional)可能出现的问题
介绍了在使用Spring事务中可能碰到的各种问题。例如事务失效、事务回滚异常、读写分离下事务如何处理等
2020-08-20 08:11:31
6642
40
原创 一个@Transaction哪里来这么多坑?
点击蓝色“程序员DMZ”关注我哟好看记得加个“星标”哈!前言在之前的文章中已经对Spring中的事务做了详细的分析了,这篇文章我们来聊一聊平常工作时使用事务可能出现的一些问题(本文主要...
2020-08-19 20:45:00
91
原创 Spring事务专题(五)聊聊Spring事务到底是如何实现的
前言本专题大纲:本文为本专题倒数第二篇文章。在上篇文章中我们一起学习了Spring中的事务抽象机制以及动手模拟了一下Spring中的事务管理机制,那么本文我们就通过源码来分析一下Spring中的事务管理到底是如何实现的,本文将选用Spring5.2.x版本。从@EnableTransactionManagement开始Spring事务管理的入口就是@EnableTransactionManagement注解,所以我们直接从这个注解入手,其源码如下:public @interface Enabl
2020-08-17 11:27:18
3640
27
原创 Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现
点击蓝色“程序员DMZ ”关注我哟好看记得加个“星标”哈!前言本专题大纲如下:事务专题大纲「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用中的问题,这两天想了想还是单独写一篇并作为事务专题的收尾篇,也是我Spring源码专题的收尾篇。本文大纲如下:Spring事务应用大纲在看这篇文章,以及下篇源码分析的文章我希望你对Spring AOP以及有充分的了解,不然一些细节问题你可能看不明白,关于Spring AOP如果
2020-08-09 11:57:56
2577
28
原创 事务的基本概念及Mysql事务实现原理
Spring事务专题(三)事务的基本概念,Mysql事务处理原理及Spring中事务的使用示例前言本专题大纲:我重新整理了大纲,思考了很久,决定单独将MySQL的事务实现原理跟Spring中的事务示例分为两篇文章,因为二者毕竟没有什么实际关系,实际上如果你对MySQL的事务原理不感兴趣也可以直接跳过本文,等待接下来两篇应用及源码分析,不过我觉得知识的学习应该慢慢行成一个体系,为了建立一个完善的体系应该要对数据库本身事务的实现有一定认知才行。本文为Spring事务专题第三篇,在前两篇文章中我们已经对
2020-08-01 14:46:19
2701
13
原创 Spring事务专题(三)事务的基本概念,Mysql事务处理原理
点击蓝色“程序员DMZ”关注我哟好看记得加个“星标”哈!前言本专题大纲:专栏大纲我重新整理了大纲,思考了很久,决定单独将MySQL的事务实现原理跟Spring中的事务示例分为两篇文章,...
2020-08-01 13:09:19
62
原创 Spring事务源码分析专题(二)Mybatis的使用及跟Spring整合原理分析
点击蓝色“程序员DMZ”关注我哟好看记得加个“星标”哈!前言专题要点如下:本文要解决的是第二点,Mybatis的使用、原理及跟Spring整合原理分析。Mybatis的简单使用搭建项目...
2020-07-23 07:30:00
2721
17
原创 Spring中异步注解@Async的使用、原理及使用时可能导致的问题
前言其实最近都在研究事务相关的内容,之所以写这么一篇文章是因为前面写了一篇关于循环依赖的文章:《面试必杀技,讲一讲Spring中的循环依赖》然后,很多同学碰到了下面这个问题,添加了Spring提供的一个异步注解@Async循环依赖无法被解决了,下面是一些读者的留言跟群里同学碰到的问题:本着讲一个知识点就要讲明白、讲透彻的原则,我决定单独写一篇这样的文章对@Async这个注解做一下详细的介绍,这个注解带来的问题远远不止循环依赖这么简单,如果对它不够熟悉的话建议慎用。文章要点@Async的基本
2020-07-21 22:03:45
4479
26
原创 Spring事务源码分析专题(一)JdbcTemplate使用及源码分析
点击蓝色“程序员DMZ”关注我哟好看记得加个“星标”哈!Spring中的数据访问,JdbcTemplate使用及源码分析前言本系列文章为事务专栏分析文章,整个事务分析专题将按下面这张图...
2020-07-21 10:53:32
3377
40
原创 如果你每次面试前都要去背一篇Spring中Bean的生命周期,请看完这篇文章
前言当你准备去复习Spring中Bean的生命周期的时候,这个时候你开始上网找资料,很大概率会看到下面这张图:先不论这张图上是否全面,但是就说这张图吧,你是不是背了又忘,忘了又背?究其原...
2020-07-14 21:03:04
6852
38
原创 面试必杀技,讲一讲Spring中的循环依赖
本系列文章:听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译读源码,我们可以从第一行读起你知道Spring是怎么解析配置类的吗?配置类为什么要添加@Configuration注解?谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?这篇文章,我们来谈一谈Spring中的属性注入 Spring中AOP相关的API及源码解析,原来AOP是这样子的你知道Spring是怎么将AOP应用到Bean的生命周期中的吗?推荐阅读:Spring官网阅读 .
2020-07-06 17:59:24
47400
84
原创 你知道Spring是怎么将AOP应用到Bean的生命周期中的吗?
聊一聊Spring是怎么将AOP应用到Bean的生命周期中的?本系列文章:听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译读源码,我们可以从第一行读起你知道Spring是怎么解析配置类的吗?配置类为什么要添加@Configuration注解?谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?这篇文章,我们来谈一谈Spring中的属性注入 Spring中AOP相关的API及源码解析,原来AOP是这样子的推荐阅读:Spring官网阅读 |
2020-07-05 16:49:58
16619
14
原创 听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译
源码学习第一步,Spring源码编译之所以写这么一篇文章是因为群里的小伙伴在编译源码时碰到了问题,再加上笔者自身正准备做一个源码的注释版本,恰好也需要重新编译一份代码,至于为什么要将源码编译到本地就不用多说了吧?比如,你可以任意的添加注释,一边读源码一边记笔记,甚至你可以修改源码,更好的调试程序等等。但是如果你坚持通过导入依赖或者引入jar包的方式来学习源码,我觉得也可以,没有最好的,只有最适合自己的!话不多说,我们开始正题本文将严格按照官方介绍的步骤一步步进行编译,对应的官方链接:https
2020-07-03 18:03:25
7209
26
原创 Spring中AOP相关的API及源码解析,原来AOP是这样子的
Spring中AOP相关的API及源码解析本系列文章:读源码,我们可以从第一行读起你知道Spring是怎么解析配置类的吗?配置类为什么要添加@Configuration注解?谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?这篇文章,我们来谈一谈Spring中的属性注入 推荐阅读:Spring官网阅读 | 总结篇Spring杂谈本系列文章将会带你一行行的将Spring的源码吃透,推荐阅读的文章是阅读源码的基础!因为本文会涉及到动态代理的相关内容,如果对动态代理不
2020-07-02 19:27:25
15486
11
原创 这篇文章,我们来谈一谈Spring中的属性注入
本系列文章:读源码,我们可以从第一行读起你知道Spring是怎么解析配置类的吗?配置类为什么要添加@Configuration注解?谈谈Spring中的对象跟Bean,你知道Spring怎么创建对象的吗?推荐阅读:Spring官网阅读 | 总结篇Spring杂谈本系列文章将会带你一行行的将Spring的源码吃透,推荐阅读的文章是阅读源码的基础!前言在前面的文章中已经知道了Spring是如何将一个对象创建出来的,那么紧接着,Spring就需要将这个对象变成一个真正的Bean了,这个过程.
2020-06-21 20:08:19
4718
17
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人