自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 阿里二面被问Java ThreadPool线程池,看完这篇,一招怒怼面试官

线程池的优势线程池做的工作主要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出的线程排队等候,等待其他线程执行完毕,再从队列中取出任务来执行线程池的特点线程复用、控制最大并发数、管理线程降低资源消耗。重复利用已创建的线程,降低创建和销毁线程的开销提高响应速度。当任务到达时,任务可以不需要等待线程创建就能立刻执行提高...

2021-08-20 11:19:18 525

原创 奇葩面试题,O(logn)的底数是多少?

大家好,我是老三,最近裸辞了,在面试。前两天一个面试,只面了十分钟就结束了——事情是这样的:面试官:你能说说HashMap的数据结构吗?老三:数组+链表+红黑树,阿巴阿巴……面试官:那你说说红黑树的查找复杂度是多少?老三:O(logn)。面试官:那这个复杂度的底数是多少?奇葩面试题,O(logn)的底数是多少?老三:时间复杂度O(logn)有底数?面试官:没有吗?尬...

2021-08-19 10:07:00 524

原创 阿里 Java 二面必问:8张图带你解决所有TCP可靠传输问题

1. TCP 可靠性如何保证?信道可靠:用三次握手、四次挥手保证连接正确;数据正确:分区编号、校验和、超时重传;传输控制:流量控制、拥塞控制2. 重传机制TCP可靠传输方式是序列号与确认应答。当传送数据包丢失时,会用重传机制解决。常见重传机制有超时重传、快速重传、SACK、D-SACK。2.1 超时重传TCP协议要求在发送端每发送一个报文段,就启动一个定时器并等待确认信息...

2021-08-17 09:53:33 494

原创 服务链路追踪怎么搞?好搞吗?

微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务,而内部服务的调用复杂性,决定了问题难以定位。所以微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出了问题,很快定位。举几...

2021-08-16 09:56:08 514

原创 肝完了,总结了SpringBoot与缓存的知识点,快速掌握

本章给大家带来的是SpringBoot和缓存的学习。同时已经录制了非常详细的视频,如果看文档较为吃力,可以结合视频进行学习,帮你快速掌握SringBoot与缓存。目录一、JSR107二、Spring缓存抽象三、几个重要概念&缓存注解四、缓存使用五、整合redis实现缓存六、整合一个实例一、JSR107Java Caching定义了5个核心接口,分别是CachingProv...

2021-08-13 11:01:48 289

原创 MySQL进阶篇SQL优化(InnoDB锁问题排查与解决)

1.概述前面章节之所以介绍那么多锁的知识点和示例,其实最终目的就是为了排查与解决死锁的问题,下面我们把之前学过锁知识重温与补充一遍,然后再通过例子演示下如果排查与解决死锁。2.前期准备●数据库事务隔离级别SHOW VARIABLES LIKE 'transaction_isolation%';MySQL进阶篇SQL优化(InnoDB锁问题排查与解决)MYSQL事务隔离级别默认...

2021-08-11 10:02:43 405

原创 MySQL - 解读MySQL事务与锁机制

文章目录生猛干货事务及其特性一致性原子性隔离性持久性并发事务控制单版本控制-锁多版本控制-MVCC原子性实现原理持久性实现原理隔离性实现原理一致性实现原理搞定MySQL事务及其特性大家都知道 ACID (原子性、一致性、隔离性和持久性)一个逻辑工作单元要成为事务,在关系型数据库管理系统中,必须满足 4 个特性原子性 : 事务的所有操作,要么全部完成...

2021-08-06 10:17:39 183

原创 如何准备美团、阿里等技术面(Java),看完我震惊了!肝就完事了

最近,各大厂掀起了一波招聘热潮。打开 boss,美团、蚂蚁、字节等用人需求均在5000 以上。img那具体到某个岗位,比如“高级Java开发工程师、架构师”,要求大同小异,该怎么准备技术面?img面试作为涨薪最直接最有效的方式,我们需要花费巨大的精力和时间来准备。除了自身的技术积累之外,掌握一定的面试技巧和熟悉最常见的面试题,一定会让我们如虎添翼。尤其是在当今的这个严峻...

2021-08-05 11:42:37 169

原创 本地方法栈、JVM栈、本地内存和JVM Heap的区别与关系

在Java出现之前,像C/C++这样的编译型语言写出来的代码经过编译后,得到的是可直接在某平台(Windows或Linux)上执行的机器码,即machine code,machine code其实就是native code,它直接和操作系统交互。对于内存,主要分三部分:1)存储可执行代码(冯·诺依曼的存储程序的思想),即编译后的machine code;2)用来保存代码执行时用到的局部变量,...

2021-08-05 10:19:58 234

原创 面试官:从源码角度讲讲ReentrantLock及队列同步器(AQS)

JDK 中独占锁(排他锁)的实现除了使用关键字 synchronized 外,还可以使用ReentrantLock。虽然在性能上 ReentrantLock 和 synchronized 没有什么大区别,但 ReentrantLock 相比 synchronized 而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。ReentrantLock 常常对比着 synchronized 来分...

2021-08-03 10:28:59 243

原创 看完阿里“宝藏”级的高并发编程笔记与JDK源码剖析手册,我精通了

最近小编在学习过程中无意间发现两份“宝藏”级的高并发资料,涵盖内容非常之多且深入浅出。本着雷锋精神在此分享给小伙伴们,希望你们看完都能“精通”高并发。第一份:JDK源码剖析手册基于JDK7和IJDK 8,对整个Concurrent包进行全面的源码剖析。JDK 8中大部分并发功能的实现和JDK 7一样,但新增了一些额外的特性。例如CompletableFuture、ConcurrentHashM...

2021-08-02 14:15:05 207

原创 共享内存 & Actor并发模型哪个更快?

HI,前几天被.NET圈纪检委@懒得勤快问到共享内存和Actor并发模型哪个速度更快。image前文传送门:说实在,我内心10w头羊驼跑过......先说结论首先两者对于并发的风格模型不一样。共享内存利用多核CPU的优势,使用强一致的锁机制控制并发, 各种锁交织,稍不注意可能出现死锁,更适合熟手。Actor模型易于控制和管理,以消息触发,流水线挨个处理, 思路清晰。...

2021-08-02 13:57:17 244

原创 三顾茅庐,四面阿里,28k*15offer,分享我的大厂面经

写在片头:声明,勿杠首先简单说一下,这三次面试阿里并不是一次性去面的,实际上第一次面试时候还在大四,找的实习岗,不太清楚是什么部门,别问我为什么还记得面试题,有记录和复盘的习惯,再问就是杠。个人背景不详细多说,学历双非本科,不是应届生,工作年限不长,技术不是大牛,但也非小白,面经分享是想给正面试的同行一些建议和鼓励,希望能够多多支持。三顾茅庐,七面阿里,25k*16offer,还原我...

2021-07-31 15:06:18 322

原创 ActiveMQ在分布式项目中的实际应用

具体需求:后台添加商品后,需要执行两个操作:同步索引库(商品搜索使用了Solr实现)生成静态页面(使用freemarker)实现构思:使用消息队列。MQ作为消息中间件,传递的消息内容为新增商品的ID。图片准备工作:在需要的地方添加相应的依赖(基础依赖就不再说了)商品服务需要发送商品添加消息,所以需要添加三个依赖,分别是整合Spring需要的两个Jar和ActiveM...

2021-07-30 10:32:00 213

原创 我,48岁,上海外企高管,如今,失业三年终于找到工作,分享工作经验

这两天,一条上海外企高管的求助上海市政府的信刷屏。我,48岁,上海外企高管,如今,失业三年找不到工作方便大家阅读,原文笔者也贴出来:我是犹豫好久才决定给您发这封邮件,因为我想我是代表当下相当一部分高学历且资深但失落的大龄职场人给您写的信。首先,我在这里感到非常惭愧,虽然我是硕士/本科都是重点大学毕业的上海人,在知名外企工作过近20年,也做过好些年的外企高管,我能讲一口流利的英语...

2021-07-28 11:51:02 705

原创 分布式ID生成器(CosId)的设计与实现

CosId简介CosId 旨在提供通用、灵活、高性能的分布式 ID 生成器。 目前提供了两类 ID 生成器:SnowflakeId : 单机 TPS 性能:409W/s JMH 基准测试 , 主要解决 时钟回拨问题 、机器号分配问题 并且提供更加友好、灵活的使用体验。SegmentId: 每次获取一段 (Step) ID,来降低号段分发器的网络IO请求频次提升性能。IdSegmentDis...

2021-07-28 11:10:04 998

原创 MySQL 是怎样运行的 - InnoDB数据页结构

数据页结构的快速浏览数据页代表的这块16KB大小的存储空间可以被划分为多个部分,不同部分有不同的功能,各个部分如图所示:MySQL 是怎样运行的 - InnoDB数据页结构一个InnoDB数据页的存储空间大致被划分成了7个部分MySQL 是怎样运行的 - InnoDB数据页结构一、记录在页中的存放MySQL 是怎样运行的 - InnoDB数据页结构...

2021-07-27 10:40:36 265

原创 灵活运用分布式锁解决数据重复插入问题

一、业务背景许多面向用户的互联网业务都会在系统后端维护一份用户数据,快应用中心业务也同样做了这件事。快应用中心允许用户对快应用进行收藏,并在服务端记录了用户的收藏列表,通过用户账号标识OpenID来关联收藏的快应用包名。为了使用户在快应用中心的收藏列表能够与快应用Menubar的收藏状态打通,我们同时也记录了用户账号标识OpenID与客户端本地标识local_identifier的绑定关系。因...

2021-07-26 10:24:33 247

原创 字节北京23k和拼多多上海28K,我该怎么选?分享我的面试宝典

知乎上收到一位网友的求助:image.png前端,北京字节23k和拼多多月薪28K,我该选哪个好?问题挺有意思的,北京字节VS上海拼多多,两份offer该怎么选?我们找工作是为了什么?多数人首选就是钱。在没有附加条件的情况下,这两份工作到底怎么选?那肯定就是看钱多的。一份工作28k,另一个23k,这傻子一眼都能看出来,一年下来多6万呢,你说你会选哪个?如果是以前,笔者会毫不犹...

2021-07-23 10:47:49 1027

原创 面试必备:接口自动化测试精选面试干货!

一、 请问你是如何做接口测试的?大体来说,经历以下过程:接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。具体来说,接口测试流程分成以下九步:第一步:分析出测试需求,并请开发提供接口说明文档;第二步:从接口说明文档中整理出接口测试用例,里面要包括详细的入参(正常情况,异常情况包括输入参数个数,类型,可选/必选,考虑参数有互斥或关联的情况)和...

2021-07-23 10:03:51 318

原创 面试:如何排查慢查询(执行计划)怎么办?愣着干嘛?来白嫖呀

<article class="syl-article-base syl-page-article syl-device-pc tt-article-content" style="box-sizing: border-box; display: block; padding: 0px; text-align: justify; overflow-wrap: break-word; word...

2021-07-22 11:26:50 117

原创 Oauth2.0实现单点登录的原理流程,通俗易懂

单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清 OAuth2.0 实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。1 什么是单点登录1.1 多点登录传统的多点登录系统中,每个站点都实现了本站专用的帐号数据库和登录模块。各站点的登录状态相互不认可,各站点需要逐一手工登录。如下图,有两个术语含义如下:认证(authentica...

2021-07-21 11:20:01 492

原创 阿里“宝妈级”之作,这份Spring Security应用到源码手册,全是精华

对于开发人员而言,如何使用各种技术体系解决安全性问题是一大困惑。经验丰富的开发人员需要熟练使用 Spring Security 框架来应对业务发展的需求。例如,全面掌握 Spring Security 框架提供的认证、授权、方法及安全访问、OAuth2、JWT 等核心功能,构建自己对系统安全性设计的知识体系和解决方案。阿里“宝妈级”之作,这份Spring Security应用到源码手册,...

2021-07-21 10:29:15 117

原创 Redis进阶:为什么整数集升级后不能再进行降级操作?

前言整数集合相信有的同学没有听说过,因为redis对外提供的只有封装的五大对象!而我们本系列主旨是学习redis内部结构。内部结构是redis五大结构重要支撑!前面我们分别从redis内部结构分析了redis的List、Hash、Zset三种数据结构了。今天我们再来分析set数据结构内部是如何存储的基本结构在src/t_set.c中我们发现这样一段代码Redis进阶:为什么整...

2021-07-20 11:31:06 118

原创 ElasticSearch原理知识点和整体结构详解

ElasticSearch整体结构通过上文,在通过图解了解了ES整体的原理后,我们梳理下ES的整体结构ElasticSearch原理知识点和整体结构详解一个 ES Index 在集群模式下,有多个 Node (节点)组成。每个节点就是 ES 的Instance (实例)。每个节点上会有多个 shard (分片), P1 P2 是主分片, R1 R2 是副本分片每个分片上对...

2021-07-19 11:55:58 822

原创 美团二面:Spring的@Transactional如何实现的?

今天去看牙医,他问我年纪轻轻牙齿怎么磨损这么严重?我说,没有点赞的这些年,我都是咬着牙过来的。@Transactional注解简介@Transactional是spring中声明式事务管理的注解配置方式,相信这个注解的作用大家都很清楚。@Transactional注解可以帮助我们把事务开启、提交或者回滚的操作,通过aop的方式进行管理。通过@Transactional注解就能让sprin...

2021-07-16 10:02:34 112

原创 手绘10张图,细谈Redis 持久化,详解RDB和AOF及混合机制

从两个点,我们来了解下Redis持久化为什么需要持久化?Redis是个基于内存的数据库。那服务一旦宕机,内存中的数据将全部丢失。通常的解决方案是从后端数据库恢复这些数据,但后端数据库有性能瓶颈,如果是大数据量的恢复,1、会对数据库带来巨大的压力,2、数据库的性能不如Redis。导致程序响应慢。所以对Redis来说,实现数据的持久化,避免从后端数据库中恢复数据,是至关重要的。Re...

2021-07-15 10:25:34 186

原创 字节跳动Java开发4面攻略:项目经验+“拍马屁”+扎实的技术

字节跳动Java开发4面攻略:项目经验+“拍马屁”+扎实的技术如标题所见,老陈现在已经顺利入职字节跳动。老陈在编程事业上摸爬滚打8年之久,有在58待过,有在腾讯地方事业部待过。很多人都说先在大厂镀金,再去小公司当老大,但老陈几乎就没有离开过大厂。身在大厂,扎根大厂在说字节跳动面试过程之前,先用几句话说一下老陈这几年身在大厂的感受。为什么叫大厂?就是因为它大呀,有钱呀!...

2021-07-10 15:34:17 273

原创 这几个网站的使用技巧,值得反复读,反复练~

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了最近,有不少刚刚入门计算机的同学,问小编,你是怎么学习编程的?面向谷歌编程 + 读源码那么,作为程序员,一般信息源主要来自于那些地方呢?我个人认为,主要来自于这三...

2021-07-01 21:41:42 162

原创 腾讯面试官:说说你对 Docker 的理解?它到底利用了什么技术实现隔离?

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了Docker 的总体架构Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,模块各司其职。下图是它的总体架构图:1 用户是使用 Docker ...

2021-06-30 20:47:04 224

原创 几年前,为什么我撸了一套RabbitMQ客户端?

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了如果使用 RabbitMQ,尽可能使用框架,而不要去使用 RabbitMQ 提供的 Java 版客户端。细说起来,其实还是因为 RabbitMQ 客户端的使用有很多的...

2021-06-29 17:37:59 91

原创 Spring Cloud Alibaba系列之分布式服务组件Dubbo

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了1、分布式理论1.1、分布式基本定义《分布式系统原理与范型》定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统(dis...

2021-06-26 20:29:22 103

原创 “三次握手,四次挥手”这么讲,保证你忘不了

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了TCP三次握手、四次挥手,在面试这锅滚油里,可谓是炸了千百遍的老油条。我们都知道TCP是面向连接的,三次握手就是用来建立连接的,四次挥手就是用来断开连接的。...

2021-06-25 16:28:44 370 1

原创 浅析操作系统和Netty中的零拷贝机制

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了零拷贝机制(Zero-Copy)是在操作数据时不需要将数据从一块内存区域复制到另一块内存区域的技术,这样就避免了内存的拷贝,使得可以提高CPU的。零拷贝机制是一种操作数...

2021-06-22 22:33:16 60

原创 服务压测发现怪异现象,一顿排查,揪出“TIME_WAIT”这个内鬼~

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了来源:https://zhenbianshu.github.io由来最近有同事在用 ab 进行服务压测,到 QPS 瓶颈后怀疑是起压机的问题,来跟我借测试机,于是...

2021-06-19 21:44:55 61

原创 新来的实习生连InputSteam转String都不会,天天在学校混日子吧。。。

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了字符串被广泛应用于 Java 编程中,是程序经常处理的对象。以对象的方式处理字符串,使字符串更加方便灵活。Java 提供了 String 类创建和操作字符串,当我们从文...

2021-06-18 20:18:06 100

原创 【Mysql】数据库索引,百万数据测试索引效果

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了Mysql官方对索引的定义是:索引(index)是帮助Mysql高效获取数据的数据结构。进而,我们可以知道索引的本质是数据结构。一、索引的分类主键索引:也就是我们...

2021-06-11 15:27:18 172

原创 深入源码,深度解析Java 线程池的实现原理

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了java 系统的运行归根到底是程序的运行,程序的运行归根到底是代码的执行,代码的执行归根到底是虚拟机的执行,虚拟机的执行其实就是操作系统的线程在执行,并且会占用一定的系...

2021-06-10 15:30:06 103 1

原创 透过“锁”事看InnoDB对并发的处理?

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了一. 并发场景下的问题相对于串行处理方式,并发的事务处理可显著提升数据库的事务吞吐量、提高资源利用率。在MySQL实际应用中,根据场景的不同,可以分为以下几类:读...

2021-06-08 17:28:12 54

原创 哇塞!这是我见过的最牛逼的性能监控系统,集强大功能于一身~

推荐阅读:这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了SkyWalking 是一个应用性能监控系统,特别为微服务、云原生和基于容器(Docker, Kubernetes, Mesos)体系结构而设计。除了应用指标监控以外,...

2021-06-04 15:05:46 223

空空如也

空空如也

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

TA关注的人

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