- 博客(58)
- 收藏
- 关注
原创 慌,老大突然问我基于JDK和CGLib实现动态代理的区别和适用场景
在日常的开发中,Spring AOP 是一个非常常用的功能。谈到 AOP,自然离不开动态代理。那么,基于 JDK 和 CGLib 如何实现动态代理,他们之间的区别和适用场景是什么呢?接下来,我们一起来探讨一下这个问题。JDK 如何实现动态代理?话不多说,我们直接对照着代码来查看。代码示例Hello 接口public interface HelloInterface { /** * 代理的目标方法 */ void sayHello();
2021-12-18 14:21:20
210
原创 万字总结IO多路复用技术
IO 多路复用概述I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。在IO多路复用技术描述前,先讲解下同步,异步,阻塞,非阻塞的概念。网络IO模型linux网络IO中涉及到的模型如下:(1)阻塞式IO(2)非阻塞式IO(3)IO多路复用(4)信号驱动IO(5)异步IO今天不谈信号驱动IO,略过..同步/异步在学习IO模型的时候,我们必须明确一个概念,处理 IO 的时候,阻塞和非阻塞都是
2021-12-18 13:48:39
235
原创 面试官:讲一下Mybatis在SpringBoot中是如何被加载执行的?
本文主要讲述mybatis在springboot中是如何被加载执行的,由于涉及的内容会比较多,所以这次只会对调用关系及关键代码点进行讲解,为了避免文章太长,读起来昏昏欲睡,一些不影响整体流程的细节就不涉及了。源码位置https://github.com/wbo112/blogdemo/tree/main/springbootdemo/springboot-mybatis1、预备知识FactoryBean什么是FactoryBean?我们先看看FactoryBean的源码//由 BeanFac
2021-12-17 20:41:26
391
原创 一套方案轻松实现Zookeeper服务器动态上下线和分布式锁
ZooKeeper是⼀个典型的发布/订阅模式的分布式数据管理与协调框架,我们可以使⽤它来进⾏分布式 数据的发布与订阅。另⼀⽅⾯,通过对ZooKeeper中丰富的数据节点类型进⾏交叉使⽤,配合Watcher 事件通知机制,可以⾮常⽅便地构建⼀系列分布式应⽤中都会涉及的核⼼功能,如数据发布/订阅、命名 服务、集群管理、Master选举、分布式锁和分布式队列等。那接下来就针对这些典型的分布式应⽤场景 来做下介绍。Zookeeper的两⼤特性:1.客户端如果对Zookeeper的数据节点注册Watcher监
2021-12-17 20:37:11
6381
原创 系统重构:从Jar包冲突搞到类加载机制,就是这么霸气
接手了一套比较有年代感的系统,计划把重构及遇到的问题写成系列文章,老树发新枝,重温一些实战技术,分享给大家。【重构01篇】,给大家讲讲Jar包冲突及原理。背景目前市面上项目管理要么是基于Maven,要么是基于Gradle,最近接手了一套纯手动添加jar包的项目。对于纯手动添加jar包的项目已经是多年前的方式了,现在工作三五年的技术人员可能都没有经历过。就是把项目中所需的jar包挨个找出来,添加到一个lib目录中,在IDE中再将jar包依赖手动添加上。这种方式来添加jar包依赖,不仅费事,而且
2021-12-17 20:35:22
180
原创 阿里官方保姆级Java技术图谱发布,够学到2022年了,赶紧收藏
作为一个Java程序员,所有小伙伴都会有这么一个情况,想学习,不想被淘汰,结果天天加班,只能想想!2022年即将来了马上就是新年了,今年疫情假期都比之前长点,其实这也是一个提升自己最好的机会,现在对于Java开发的而言,对技能的要求比以前高了不是一点!但是直到今天,我看到这个Alibaba Java技术图谱之后,感觉这里面的内容真是为进击大厂的小伙伴量身打造的!所以,今天特地拿出来分享一下,这个非常值得每一个Java开发者去学习和收藏!图谱亮点为什么说这个图谱值得推荐呢?主要有这几点:
2021-12-17 16:22:55
407
原创 二本4年Java经验,五面阿里艰苦经历(定薪45K),回馈一波心得体会
4月准备跳槽,先后面试了各大小公司,拿了一些offer,有阿里,滴滴,快手,达达,得物等公司。面试的公司大部分都能过,所以这里给大家分享下自己的经验,也给自己做个归档,希望能给正在准备跳槽,找工作的朋友一点帮助,这里主要分享下阿里面试的经历!阿里一面自我介绍,聊项目, 这边挺常规的,从项目入手。 解析Excel为什么用POI ? POI存在的问题? 还知道哪些解析Excel的工具吗? 你们项目中用过MQ,平时都用MQ来做什么? 你处理过MQ得幂等问题,当时是怎么做的? MQ的可靠性怎么保证
2021-12-17 16:10:51
414
原创 不是吧,不是吧,真的有比B+Tree更快的一种查询结构
我们都知道MySQL中的B+Tree索引结构,对于根据某个条件查找记录是非常快的。那么,在不断追求极致的驱动下,你有没有想过MySQL会不会有比B+Tree更快的数据结构,来加速查找记录的性能呢?答案是有的,MySQL为了让我们更快地获取自己想查找的记录,在InnoDB中,将查询频繁的条件和索引树结果做了一个Hash映射,这样,一个查询就不需要每次搜索B+Tree去定位结果了,这个Hash映射就叫做AHI,全称Adaptive Hash Index,自适应哈希索引。一听这名字,你或许已经猜出个一二了。没
2021-12-17 15:51:29
101
原创 老生常谈:面试必问“三次握手,四次挥手”这么讲,保证你忘不了
TCP三次握手、四次挥手,在面试这锅滚油里,可谓是炸了千百遍的老油条。我们都知道TCP是面向连接的,三次握手就是用来建立连接的,四次握手就是用来断开连接的。三次握手先上图:我们来看一下三次握手的过程:一开始,客户端和服务端都处于CLOSED状态。客户端主动打开连接,服务端被动打卡连接,结束CLOSEDz状态,开始监听,进入LISTEN状态。一次握手客户端会随机初始化序号(client_isn),将此序号置于 TCP 首部的「序号」字段中,同时把SYN标志...
2021-12-16 14:20:27
223
原创 面试官:工作中Redis持久化机制AOF日志跟RDB快照你是如何选择的
大家都知道Redis经常被使用在缓存的场景中,那有没有想过这么一个问题,一旦服务器宕机,内存中的数据全部丢失,我们该如何进行恢复呢?如果直接从后端数据库恢复,不仅会给数据库带来巨大的压力,还会使上层应用响应变慢。所以redis的持久化机制是很重要的。接下来我们一起来探讨一下Redis的持久化机制。目前Redis持久化主要有两大机制,即AOF(Append Only File)日志和RDB快照。接下来我们就来分别学习一下。AOF日志AOF日志,即写后日志,它的含义是Redis先执行命令,把数据写入内存
2021-12-16 14:09:12
261
原创 Spring Cloud Alibaba使用Seata解决分布式事务全过程解析
serverAddr = "http://localhost:2379" } file { name = "file.conf" }}以上内容主要修改了注册中心与配置中心为Nacos并且修改了Nacos地址与登录账号/登录密码,命名空间,分组;配置部署到Nacos这里简化了下Nacos官网下载的config.txt内容,从官网下载的配置文本以下内容标记需要修改的需要关注Copy#事务组 重点关注service.vgroupMapping.my_test...
2021-12-16 13:34:11
1001
原创 老生常谈的问题:Spring Boot中如何一键自定义starter?
Spring Boot starter我们知道Spring Boot大大简化了项目初始搭建以及开发过程,而这些都是通过Spring Boot提供的starter来完成的。品达通用权限系统就是基于Spring Boot进行开发,而且一些基础模块其本质就是starter,所以我们需要对Spring Boot的starter有一个全面深入的了解,这是我们开发品达通用权限系统的必备知识。1 starter介绍spring boot 在配置上相比spring要简单许多, 其核心在于spring-boot-
2021-12-15 13:59:19
102
原创 什么是IOC?教你手撸一个IOC容器
IoC什么是IoC?IoC是Inversion of Control(控制反转)的简称,注意它是一个技术思想。描述的是对象创建、管理的事情。传统开发方式:比如类A依赖类B,往往会在类A里面new一个B的对象。 IoC开发方式:我们不用去new对象,由IoC容器帮我们实例化对象并进行管理。我们需要B对象,就问IoC容器要即可。控制反转就是说将对象创建、管理的权力交给了外部环境(IoC容器)。IoC的作用:解决了对象之间的耦合问题。什么是DI?DI是Dependancy Inject
2021-12-15 13:46:51
107
原创 面渣逆袭:半个小时成功拿下阿里一面HashMap追魂二十三问
HashMap作为我们熟悉的一种集合,可以说是面试必考题。简单的使用,再到原理、数据结构,还可以延伸到并发,可以说,就一个HashMap,能聊半个小时。1.能说一下HashMap的数据结构吗?JDK1.7的数据结构是数组+链表,JDK1.7还有人在用?不会吧……说一下JDK1.8的数据结构吧:JDK1.8的数据结构是数组+链表+红黑树。数据结构示意图如下:其中,桶数组是用来存储数据元素,链表是用来解决冲突,红黑树是为了提高查询的效率。数据元素通过映射关系,也就是散列函数,
2021-12-15 13:41:00
140
转载 被老板骂了,线上执行一条update语句意外导致业务崩了
昨晚在群划水的时候,看到有位读者说了这么一件事。大概就是,在线上执行一条 update 语句修改数据库数据的时候,where 条件没有带上索引,导致业务直接崩了,被老板教训了一波这次我们就来看看:为什么会发生这种的事故? 又该如何避免这种事故的发生?说个前提,接下来说的案例都是基于 InnoDB 存储引擎,且事务的隔离级别是可重复读。1为什么会发生这种的事故?InnoDB 存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下,在多个事务并发的时候,会出现幻读的问
2021-12-12 14:14:54
190
原创 So eazy,SpringBoot一键去除参数前后空格和XSS过滤实战解析
去除XSS字符串需要借助工具类jsoup,这里jsoup有一点需要注意的是,jsoup的功能可能有点太强大了,能把xss攻击的内容直接过滤掉了不说,也会对英文尖括号<>转义,到接口里面拿到的参数就变成了<>,存库里面的就是转义后的字符串了。取出来的时候需要转一下。比如前台传的参数传的是:12<>3<script>alter('11111111')</script>455过滤处理了后,到后台接口里面就成了:[12<>...
2021-12-12 13:56:23
316
原创 很多网站,根本不用自己做
一波现成的建站工具大分享对大部分同学来说,有自己的网站是很酷的事情。我还记得自己第一次亲手搭建个人博客时,真的是满满的成就感!但不得不说,随着技术的发展和开源,如今现成的东西实在太多了!想要拥有个人网站,基本也都不用自己写代码了,几分钟就能轻松搞定。下面就分享一波现成的、开箱即用的网站生成器,对于想要快速搭建个人网站、甚至是上线属于自己产品的同学来说,绝对是非常不错的!WordPress开源的建站系统,小到个人博客、大到企业电商平台,都可以轻松实现。WordPress 的强大
2021-12-11 17:04:28
203
原创 为了拿捏后端打工人都要会的 Redis 数据结构,我画了 20 张图
大家好,我是小林。Redis 为什么那么快?除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效地处理。因此,这次我们就来好好聊一下 Redis 数据结构,这个在面试中太常见了。注意,Redis 数据结构并不是指 tring(字符串)、List(列表)、Hash(哈希)、Set(集合)和 Zset(有序集合),因为这些是 Redis 键值对中值的数据类型,并不是数据结构。这些数据类型的底层实现的方式,才
2021-12-10 14:23:43
93
原创 老生常谈的问题:Spring Boot中如何一键自定义starter?
Spring Boot starter我们知道Spring Boot大大简化了项目初始搭建以及开发过程,而这些都是通过Spring Boot提供的starter来完成的。品达通用权限系统就是基于Spring Boot进行开发,而且一些基础模块其本质就是starter,所以我们需要对Spring Boot的starter有一个全面深入的了解,这是我们开发品达通用权限系统的必备知识。1 starter介绍spring boot 在配置上相比spring要简单许多, 其核心在于spring-boot-
2021-12-10 14:19:45
94
原创 超赞:不愧是“阿里内部Redis学习笔记”从头到尾,全是精华
近几年,随着移动互联网的飞速发展,我们享受着整个社会的技术进步带来的便利,但同时也给从业者带来了如何保证项目的高并发、低延时的技术挑战,相应的互联网技术也随之发生了重大变革,NoSQL技术得到了蓬勃的发展。Redis作为基于键值对的NoSQL数据库,具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,同时Redis本身非常稳定,已经得到业界的广泛认可和使用。掌握Redis已经逐步成为开发和运维人员的必备技能之一。基于上述情况,本次将给大家分享我的珍藏《阿里内部Redis学习笔记》这本笔记对Re
2021-12-09 15:36:44
145
原创 慌了,CTO叫我推荐几款优秀的程序员一定要知道的画图工具
大家好,我是小林。最近很多读者私信问我,我图解文章中用到的画图工具、思维导图工具、代码贴图工具是什么?我在很早的时候提到过,不过时间有点久了,而且比较零散,可能现在大部分读者还不知道。我今天统一整理一下,我图解文章用到的各类工具吧,这些工具我用了一年多了,没发现什么问题,所以是值得推荐的。我在这里先列一下:画图工具:draw.io 思维导图工具:xmind/effie 代码贴图工具:carbon 文章编写工具:有道云笔记/typora/effie接下来,详细聊一聊。画图工具
2021-12-09 14:07:45
338
原创 蚂蚁金服亿级并发下的移动端到端网络接入架构解析
前言支付宝移动端架构已完成了工具型 App、平台型 App,以及超级 App 三个阶段的迭代与逐步完善。本次分享将聚焦支付宝在移动网络接入架构的具体演进,以及应对新春红包等项目在亿级并发场景下的具体应对之道。此外,我们将延展探讨蚂蚁金服移动网络技术如何对外商业化应用和输出。一. 蚂蚁金服移动网络接入架构演进支付宝移动网络第一代架构支付宝无线团队于 2008 年成立,那时支付宝 app 整体架构可以简单称之为单应用架构。单应用包括两部分,客户端 APP 和服务器,通过 https
2021-12-08 16:26:29
421
原创 图解elasticsearch原理,终于es能做啥了
摘要先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题:为什么我的搜索*foo-bar*无法匹配foo-bar? 为什么增加更多的文件会压缩索引(Index)? 为什么ElasticSearch占用很多内存?版本elasticsearch版本: elasticsearch-2.2.0内容图解ElasticSearch云上的集群集群里的盒子云里面的每个白色正方形的盒子代表一个节点——Node。节点之间在一...
2021-12-08 13:44:19
145
原创 so eazy,使用Netty和动态代理一键实现一个简单的RPC
RPC(remote procedure call)远程过程调用RPC是为了在分布式应用中,两台主机的Java进程进行通信,当A主机调用B主机的方法时,过程简洁,就像是调用自己进程里的方法一样。RPC框架的职责就是,封装好底层调用的细节,客户端只要调用方法,就能够获取服务提供者的响应,方便开发者编写代码。RPC底层使用的是TCP协议,服务端和客户端和点对点通信。作用在RPC的应用场景中,客户端调用服务端的代码客户端需要有相应的api接口,将方法名、方法参数类型、具体参数等等都发送给服务端
2021-12-07 15:07:14
144
原创 面渣逆袭:半个小时成功拿下阿里一面HashMap追魂二十三问
HashMap作为我们熟悉的一种集合,可以说是面试必考题。简单的使用,再到原理、数据结构,还可以延伸到并发,可以说,就一个HashMap,能聊半个小时。1.能说一下HashMap的数据结构吗?JDK1.7的数据结构是数组+链表,JDK1.7还有人在用?不会吧……说一下JDK1.8的数据结构吧:JDK1.8的数据结构是数组+链表+红黑树。数据结构示意图如下:其中,桶数组是用来存储数据元素,链表是用来解决冲突,红黑树是为了提高查询的效率。数据元素通过映射关系,也就是散列函数,
2021-12-07 14:47:43
156
原创 答应我不要再用Xshell了,这个新开源的终端工具酷炫又好用
我工作中用得最多的工具之一就是「终端连接工具」了,因为经常和 Linux 服务器打交道,经常在上面跑代码、排查系统问题等等。Windows 系统最常用的就是 Xshell 这款终端工具了,但是它只能用于非商业用途,也就是说如果在公司用的话,公司就得掏钱了,当然不是大公司的话,也不会有人查你用盗版的问题。另外,如果你想和 Linux 服务器传输文件的话,还得再下载个 Xftp,挺费事,而且 Xshell 没有支持 macOS。那有没有一个,集成了文件传输功能,又支持多个系统,且是免费的终端工具呢?
2021-12-07 14:41:54
385
1
原创 浅谈API网关如何承载API经济生态链
摘要:关于如何承载现有快速发展的API生态链,本文接下来介绍API网关在其中扮演的角色。序言API经济生态链已经在全球范围覆盖, 绝大多数企业都已经走在数字化转型的道路上,API成为企业连接业务的核心载体, 并产生巨大的盈利空间。快速增长的API规模以及调用量,使得企业IT在架构上、模式上面临着更多的挑战。关于如何承载现有快速发展的API生态链,本文接下来介绍API网关在其中扮演的角色。API是什么应用编程接口(Application Programming Interface,简称:API
2021-12-06 19:24:43
160
原创 如果面试官问你 JVM,额外回答“逃逸分析”技术会让你加分
前言我在面试别人的过程中,JVM 内存模型我几乎必问,虽然有人说问这些就是面试造航母,工作拧螺丝。如果你想当一名 CRUD 码农,你可以选择不用了解这些。在 JVM 内存模型的问答中,有些人能说出对象是在堆上分配的。但当我问对象一定是在堆上存储的嘛时,大部分人都回答是,或者犹豫了。其实能回答出对象是在堆上分配存储已算正确了。但随着 JIT 即时编译器的发展和逃逸分析技术的逐渐成熟,所有对象都分配到堆上也逐渐变得不那么绝对了。栈上分配,标量替换,锁消除等优化技术会发生一些微妙的变化。我
2021-12-04 17:10:17
99
原创 再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
背景最近,栈长发现某些国内的开源项目都使用到了 Knife4j 技术,看名字就觉得很锋利啊!是不是这样的缩写呢:Knife4j = Knife for Java ?Java 匕首?看起来很牛逼的样子,当然,这是我简单的猜测,从字面上并不能猜到它是干嘛用的!那么它究竟是一个什么样的框架呢?Knife4j 简介Knife4j 的前身是 swagger-bootstrap-ui,其实就是一个纯 Swagger UI 的皮肤项目,用过 Swagger 的应该都知道,Swagger
2021-12-04 14:15:14
230
原创 深度解析:理解MyBatis是如何在Spring容器中初始化
MyBatis 初始化过程就是生成一些必须的对象放到 Spring 容器中。问题是这个过程到底生成了哪些对象?当遇到 MyBatis 初始化失败时,如何正确找到分析问题的切入点?本文将针对这些问题进行介绍。本文基于 MyBatis 3 和 Spring,假设读者已经知道如何使用 Maven 和 MyBatis,以及了解 Spring 的容器机制。一、Mybatis 三件套我们知道 MyBatis 的主要功能是由 SqlSessionFactory 和 Mapper 两者提供的,初始化 M...
2021-12-04 14:04:49
170
原创 系统性能百倍提升典型案例分析:高性能队列Disruptor
Disruptor 是一款高性能的有界内存队列,目前应用非常广泛,Log4j2、SpringMessaging、HBase、Storm 都用到了 Disruptor,那 Disruptor 的性能为什么这么高呢?Disruptor 项目团队曾经写过一篇论文,详细解释了其原因,可以总结为如下:内存分配更加合理,使用 RingBuffer 数据结构,数组元素在初始化时一次性全部创建,提升缓存命中率;对象循环利用,避免频繁 GC。 能够避免伪共享,提升缓存利用率。3. 采用无锁算法,避免频繁加锁、解锁的性能
2021-12-04 13:57:19
268
原创 情景再现,Java面试老大难问题:缓存雪崩,穿透,击穿,一文道明
正文提到Redis我相信各位在面试,或者实际开发过程中对缓存雪崩,穿透,击穿也不陌生吧,就算没遇到过但是你肯定听过,那三者到底有什么区别,我们又应该怎么去防止这样的情况发生呢,我们有请下一位受害者。面试开始一个大腹便便,穿着格子衬衣的中年男子,拿着一个满是划痕的mac向你走来,看着快秃顶的头发,心想着肯定是尼玛顶级架构师吧!但是我们腹有诗书气自华,说虚都不虚。小伙子我看你的简历上写到了Redis,那么我们直接开门见山,直接怼常见的几个大问题,Redis雪崩了解么?帅气迷人的面试官您好
2021-12-04 13:45:11
74
原创 一个HTTPS转HTTP的Bug,他们竟忍了2年?原谅我无法接受
今天这篇文章给大家讲一个追查Bug的故事和过程。个人一直认为:事出反常必有妖,程序中的Bug也是如此。希望通过这个Bug的排查故事,大家不仅能够学到一系列的知识点,同时也能学会如何解决问题,如何更加专业的做事。而解决问题的方式及思维比单纯的技术更加重要。Let's go!故事的起因刚接手新团队新项目没多久,在发布一个系统时,同事友善的提醒:发布xx系统时,在测试环境要注释掉一行代码,上线发布时再放开注释。听此友善提醒,一惊:这又是什么黑科技啊?!在我的经验里,还没有什么系统需要这样处理,
2021-12-03 14:34:01
1383
原创 你管这破玩意叫操作系统源码 | 第一回 最开始的两行代码
从这一篇开始,您就将跟着我一起进入这操作系统的梦幻之旅!别担心,每一章的内容会非常的少,而且你也不要抱着很大的负担去学习,只需要像读小说一样,跟着我一章一章读下去就好。话不多说,直奔主题。当你按下开机键的那一刻,在主板上提前写死的固件程序BIOS会将硬盘中启动区的 512 字节的数据,原封不动复制到内存中的 0x7c00这个位置,并跳转到那个位置进行执行。启动区的定义非常简单,只要硬盘中的 0 盘 0 道 1 扇区的 512 个字节的最后两个字节分别是0x55和0xaa,那么...
2021-12-03 14:08:50
304
原创 阿里内部第一本“凤凰架构”,手把手教你构建可靠大型分布式系统
前言:一本好的技术书不仅能告诉你某个技术点怎么做、为什么这么做,还会让你明白所有技术点如何协同配合,最终构建出一个完整的技术体系。本书是一本以“如何构建一套可靠的大型分布式系统”为叙述主线的技术手册。从5个方面全面剖析了如何构建一个可靠的分布式系统,同时给出了Spring Boot、Spring Cloud、Kubernetes、Istio、AWS Lambda五种架构风格的样例工程。笔者十多年来一直从事大型企业级软件的架构研发工作,较完整地经历了从最早的大型单体系统到如今基于云原生基础设施的架
2021-11-29 16:00:36
182
原创 自己动手从0开始实现一个分布式 RPC 框架
前言为什么要自己写一个RPC框架,我觉得从个人成长上说,如果一个程序员能清楚的了解RPC框架所具备的要素,掌握RPC框架中涉及的服务注册发现、负载均衡、序列化协议、RPC通信协议、Socket通信、异步调用、熔断降级等技术,可以全方位的提升基本素质。虽然也有相关源码,但是只看源码容易眼高手低,动手写一个才是自己真正掌握这门技术的最优路径。一 什么是RPCRPC(Remote Procedure Call)远程过程调用,简言之就是像调用本地方法一样调用远程服务。目前外界使用较多的有gRPC...
2021-11-29 13:43:51
391
原创 终于理解 Spring Boot为什么如此受青睐 HikariCP了,这图太透彻
前言现在已经有很多公司在使用HikariCP了,HikariCP还成为了SpringBoot默认的连接池,伴随着SpringBoot和微服务,HikariCP 必将迎来广泛的普及。下面陈某带大家从源码角度分析一下HikariCP为什么能够被Spring Boot 请来,文章目录如下:目录零、类图和流程图开始前先来了解下HikariCP获取一个连接时类间的交互流程,方便下面详细流程的阅读。获取连接时的类间交互:图1一、主流程1:获取连接流程HikariCP获
2021-11-29 13:26:41
171
转载 腾讯二面:Linux操作系统里一个进程最多可以创建多少个线程?
昨天有位读者被坑了,问了我这么个问题:大致意思就是,他看了一个面经,说虚拟内存是 2G 大小,然后他看了我的图解系统 PDF 里说虚拟内存是 4G,然后他就懵逼了。其实他看这个面经很有问题,没有说明是什么操作系统,以及是多少位操作系统。因为不同的操作系统和不同位数的操作系统,虚拟内存可能是不一样多。Windows 系统我不了解,我就说说 Linux 系统。在 Linux 操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同位数的系统,地址 空间的范围也不同
2021-11-28 13:29:08
149
原创 不愧是阿里p8,终于把Java 虚拟机底层原理讲清楚了,请签收
概述JVM 的内存模型和 JVM 的垃圾回收机制一直是 Java 业内从业者绕不开的话题(实际调优、面试)JVM是java中很重要的一块知识,也是面试常问的问题之一,直至今天,仍然还有许多面试者在被问到Java虚拟机相关问题时,还是一脸懵逼,面试完之后直接被虐哭。今天特分享阿里架构师整理的Java虚拟机底层原理,请签收!清单由于文章篇幅限制,为了避免影响阅读体验,以下内容已截图展示,需要完整超清版本的仅需添加小助理vx:XIaonan00000621即可获取免费下载方式!JVM
2021-11-27 14:35:00
125
原创 3分钟教你如何在github上精确的找开源项目?
在github中对项目进行搜索的时候,可以针对项目的名称、描述、readme、star数量、fork中的内容进行精确搜索(而不是直接在搜索框中输入笼统的名字出来一堆不感兴趣的东西)下面列举的条件都可以并行使用以Spring Boot为例一、关键字出现的位置1、出现在项目名中in:name spring boot2、出现在readme中in:readme spring boot3、出现在描述中in:description spring boot..
2021-11-26 14:03:20
285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人