自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022年 春招,Java后端最全面试攻略,吃透25个技术栈

前言小编分享的这份春招Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!小编这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录JavaOOP面试

2022-06-21 14:26:41 260 1

原创 面试官喜欢这样问:Redis分布式锁,如何实现?(问题分析)

一、分布式锁简介1.什么是分布式锁当在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。与单机模式下的锁不仅需要保证进程可见,还需要考虑进程与锁之间的网络问题。分布式锁还是可以将标记存在内存,只是该内存不是某个进程分配的内存而是公共内存如 Redis、Memcache。至于利用数据库、文件等做锁与单机的实现是一样的,只要保证标记能互斥就行。2.分布式锁具备的条件在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;高可用的获取锁与释放锁;高性能的获取锁与

2022-06-20 14:55:34 144

原创 面试被吊打!正确打开Redis分布式锁的七种方案,涨见识了

前言日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的地方,欢迎大家指出哈,一起学习一起进步。​编辑切换为居中添加图片注释,不超过 140 字(可选)什么是分布式锁方案一:SETNX + EXPIRE方案二:SETNX + value值是(系统时间+过期时间)方案三:使用Lua脚本(包含SETNX + EXPIRE两条指令)方案四:SET的扩展命令(SET EX PX NX)方案

2022-06-20 14:08:47 93

原创 叹服!阿里自述SpringCloud微服务:入门+实战+案例

SpringCloud自述微服务?Spring?SpringBoot?SpringCloud?......作为一名Java开发人员,对于这些字眼,是否有一种既熟悉又陌生的感觉。你见过,了解过,知道它们也是面试中很重要的一部分,但是不会运用,不会实践到项目中,这就是很尴尬的一种局面,那么你该如何对它们进行深层的剖析呢?想必不需要多说,阿里这些年来开源的步子是不是迈得很大,其实在开源的软件上,阿里的发展速度和规模确实都是比较可圈可点的。SpringCloud也是现在开源领域的一大热门的软件,尽管前有狼(Netf

2022-06-20 13:57:28 202

原创 性能追击:万字长文30+图揭秘8大主流服务器程序线程模型展示

看大佬如何用30+图片揭秘8大主流服务器程序线程模型:​编辑切换为居中添加图片注释,不超过 140 字(可选)最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让大家见笑了。本文我们来探索一下主流的各种应用服务器的网络处理模型,看看大家都是怎么设计网络程序的。在本文中,我会从Node.js、Apache Server、Nginx、Netty、Redis、Tomcat、MySQL、Zuul等常用的服务器程序,给大家逐一分析,分析各种服务器程序的性能,心中有数,才能手中有术,从此性能是熟客。​编

2022-06-20 13:43:20 87

原创 用138个案例讲明白了Spring全家桶+Docker+MQ

Java微服务架构实战微服务架构的演进并非一蹴而就,过于保守或激进都不是解决之道。长期修行,苦练内功,或许才是微服务架构的前路方向。2020 年,微服务这一持续多年的话题热度依旧:以 Spring Cloud、Dubbo 为代表的服务框架依然在持续进化,并加速奔向云原生;Service Mesh 这一云原生、微服务双圈“网红”依然在迷雾中砥砺前行。对大多数企业而言,面对云原生和微服务技术的蓬勃发展,不免有些疑惑:一边是成熟演进的服务框架,一边是代表未来方向的 Service Mesh,企业的架构演进方向究竟

2022-06-20 13:29:59 65

原创 Kafka源码的学习框架:覆盖Kafka核心机制的方方面面

一、Kafka 总览1)kafka 集群是由 broker 组成,每个 borker 拥有一个 controller,基于 zookeeper 做集群 controller leader 选举,以及存储集群核心元数据,leader controller 负责管理整个集群;2)以 Topic->partition-> replication 来存储生产者数据,每个 partition 为一个 Log,log 分段存储于文件中;3)kafka 集群管理消费者信息和消费者消费记录,这些信息也以内部 topic 形

2022-06-18 14:16:28 68

原创 面试进阶齐飞!Github疯传的阿里分布式设计实录也太香了

分布式系统分布式系统已经诞生了好几十年,说起来比我们八零后程序员还要老成,随着现代互联网的崛起,我们对于系统在性能,可靠性上的要求都大大提高。身为二十一世纪的一名程序员,没听说过分布式系统就显得自己好像没有女朋友一样尴尬。无论是出去面试跟面试官吹水,还是在工作中和同事吹水,分布式系统永远是你显得高人一等的筹码。我们都知道分布式系统的首要目标是提高系统的整体性能,但不仅限于吞吐量,可靠性,响应时间,数据一致性等,其中提高性能指标是最重要的。如果最终设计出来的分布式系统占用了更多的资源却还比不上单机的性能,那这

2022-06-18 14:04:27 77

原创 干货来袭!阿里技术官甩出的内部首推分布式系统开发笔记太顶了

分布式系统提到分布式系统,我们常常会需要分布式系统来解决系统容量不足和系统高可用问题。一方面随着业务越来越复杂,服务也会变得越来越复杂,单台机器的CPU、内存已经无法满足部署一个庞大系统的性能要求,这个时候系统的高性能显得尤为重要。另外一方面在单台机器上部署服务,如果机器出现故障导致服务挂了,那么整个系统就会崩溃了,这个时候就要提高系统的可用性。然而现实是:有些小伙伴甚至都还没有接触到分布式系统的设计这一领域。然而分布式系统设计是你从一个初级程序员向高级程序员甚至是架构师必须要迈过的一道槛。分布式系统领域里

2022-06-18 13:56:16 71

原创 程序员不得不了解的微服务的现状和未来,建议收藏哦

一、微服务的现状及未来1.服务架构的演变1.1 单体架构  单体架构应该是我们最先接触到的架构实现了,在单体架构中使用经典的三层模型,即表现层,业务逻辑层和数据访问层。​编辑切换为居中添加图片注释,不超过 140 字(可选)  单体架构只适合在应用初期,且访问量比较小的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先就是考虑服务器的集群处理。1.2 集群  针对单个服务器在访问量越来越大的情况越来越吃力的情况,我们可以考虑服务器的集群化处理。​编辑切换为居中添加图片注释,不超

2022-06-18 13:48:40 257

原创 300多页阿里百亿级系统架构设计实录首公开

高并发系统设计一年一度的金三银四已经过去了,想必有不少在这个时间段选择跳槽或者入行的朋友都入职了新的公司。对于萌新来说,肯定是增强自己面向业务的编程能力(手动狗头),而对于一些有很多年工作经验的程序员或者达到架构的技术水平的程序员来说,他们一般会直接触到系统设计这块的内容,在大流量时代,如何设计出一个能抗住很大并发量的系统这一重担往往就是他们扛着!​编辑切换为居中添加图片注释,不超过 140 字(可选)高并发解决方案设计图但是设计一个高并发系统并非易事,如果不站在巨人的肩膀上来开展工作的话,这条路是很难保持

2022-06-18 13:35:19 112

原创 亿级流量架构之服务器扩容思路及问题分析

说人话就是, 无论如何优化性能,能达到的最大值是一定的,对于一个用户量大的应用,可以对服务器进行各种优化,诸如限流、资源隔离,但是上限还是在那里,这时候就应该改变我们的硬件,例如使用更强的CPU、更大的内存,在前文中举了一个学生食堂打饭的例子,如果学生多了,可以通过令牌桶算法优先给高三学生令牌打饭,但是如果高三的学生还是很多呢?那就只有增加窗口或者食堂的数量,也就是硬件上的扩容。扩容策略扩容策略可以分为两种, 一种是对单机整体扩容,也就是机器内部包含CPU、内存、存储设备等,另一种是扩容对应的组件,例如扩内

2022-06-18 13:22:24 84

原创 JDK15正式发布,新增功能预览

JDK 15 在 2020 年正式发布了,这次发布的主要功能有:这些年发布的版本对应的 JEPs 数量如下图所示:根据发布的规划,这次发布的 JDK 15 将是一个短期的过度版,只会被 Oracle 支持(维护)6 个月,直到明年 3 月的 JDK 16 发布此版本将停止维护。而 Oracle 下一个长期支持版(LTS 版)会在明年的 9 月份后发布(Java 17),LTS 版每 3 年发布一个,上一次长期支持版是 18 年 9 月发布的 JDK 11。JDK 15 为用户提供了十四项主要的增强/更改,包

2022-06-17 19:44:05 125

原创 对我来说数据库图形化管理工具用这个足够了

胖哥是一个有软件洁癖的人,能用现有的软件解决问题的绝不安装新的软件。Java后端开发主要跟数据库打交道,所以数据库图形化界面(GUI)是少不了的。通常图形化操作关系型数据库(RMDBS)大多数人会选择Navicat。如果你用的是Intellij IDEA,不管是旗舰版还是社区版,都不需要Navicat了,旗舰版自带数据库图形界面,社区版你可以通过插件集成图形界面。今天就以旗舰版为例演示一下IDEA的数据库图形管理能力。在IDEA旗舰版的右侧边栏打开Database就是数据库图形界面了,社区版可以安装插件获得

2022-06-17 19:41:24 855

原创 这三年被分布式坑惨了,曝光十大坑

本篇主要内容如下:​编辑切换为居中添加图片注释,不超过 140 字(可选)主要内容前言我们都在讨论分布式,特别是面试的时候,不管是招初级软件工程师还是高级,都会要求懂分布式,甚至要求用过。传得沸沸扬扬的分布式到底是什么东东,有什么优势?借用火影忍术​编辑切换为居中添加图片注释,不超过 140 字(可选)风遁·螺旋手里剑看过火影的同学肯定知道漩涡鸣人的招牌忍术:多重影分身之术。这个术有一个特别厉害的地方,过程和心得:多个分身的感受和经历都是相通的。比如 A 分身去找卡卡西(鸣人的老师)请教问题,那么其他分身也

2022-06-17 19:27:48 731

原创 惊艳!阿里出产的MyCat性能笔记,带你领略什么叫细节爆炸

如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求,这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决海量存储的问题呢?此时就需要做数

2022-06-17 19:21:56 143

原创 国庆临近,字节后端开发3+4面,终于拿到秋招第一个offer

国庆临近,字节后端开发3+4面,终于拿到秋招第一个offer字节跳动,先面了data部门,3面技术面之后hr说需要实习转正,拒绝,之后另一个部门捞起,四面技术面,已oc分享面经,希望对大家有所帮助,秋招顺利在文末分享了我为金九银十准备的备战资源库,包含了源码笔记类,大厂面试真题,跳槽解析,简历解析,项目实战源码+笔记+工具,有需要的可以直接转发本文后,东西直接拿走不谢: 面试资料pdf------传送门 !​编辑添加图片注释,不超过 140 字(可选)字节一面 时间:46分钟- 自我介绍 - (实习相关问题

2022-06-17 19:13:22 159

原创 92天寒窗苦学,泪谈京东三面+交叉面经历,终获30K*14薪

技术面共三轮,一面二面是远程,三面是现场面外加2人交叉面试,说实话还是很紧张!最后HR定薪资是30K*14(小哥觉得低了哈哈哈)最后让他把面试官问的问题整理一下,在这也分享给小伙伴们。主要也是6月初去面试的,周期挺长的有些记不全面了!JVM,并发,基础部分大厂面试Java岗可以说这三件套必不可少,JVM及调优,并发底层,Java基础扎实。如果这些不过关基本一面后就没戏了sql底层,分库分表方面分布式部分这里可推荐小伙伴一些Redis学习视频给大家阿里架构师90分钟解析BAT必问的Redis面试问题全集(雪崩

2022-06-17 17:14:03 416

原创 Dubbo3.0问世?阿里高工的源码解析笔记手抄本,这不收藏

Dubbo 和 Spring Cloud 是目前主流的微服务框架,阿里、京东、小米、携程、去哪儿网等互联网公司的基础设施早已落成,并且后续的很多项目还是以 Dubbo 为主。Dubbo 重启之后,已经开始规划 3.0 版本,相信后面还会有更加惊艳的表现。另外,RPC 框架的核心原理和设计都是相通的,阅读过 Dubbo 源码之后,你再去了解其他 RPC 框架的代码,就是一件非常简单的事情了。而开始阅读源码时,不少开发者会提前去网上查找资料,或者直接埋头钻研源码,并因为这样的学习路径而重重受挫!因此在这把之前整

2022-06-16 21:13:34 123

原创 架构成长之路:Netty之ChannelHandler源码

handler是控制socket io的各个生命周期的业务实现,netty实现了很多种协议所以有很多handler类,这儿主要关注Handler的设计、作用以及使用方法。Channel与JDK中的Channel作用相当,是对I/O操作的封装,比如read(),write(),connect(),close()和bind()等,是Netty中核心对象。我们经常使用的NioServerSocketChannel,NioSocketChannel就是其具体实现。Channel的状态改变都会触发相应事件传递到Pip

2022-06-16 21:12:11 504

原创 关于SpringCloudAlibaba,看阿里这篇笔记真香

Spring Cloud Alibaba 架构相比 Spring Cloud 官方标准,Spring Cloud Alibaba 提供了更完整的功能、更好用的API,同时在中文的加持下让复杂的微服务架构变得不再高不可攀,目前 Spring Cloud Alibaba 已经是事实上的国内微服务技术标准,这也是我为什么极力推荐学习 Spring Cloud Alibaba 的重要原因。然而现在市面上都是些零零散散的博客或者介绍,很多小伙伴通过官网来学习也总是无从下手,处处受挫!因此在这分享我精心收集整理的Spr

2022-06-16 21:10:59 74

原创 Redis进阶之路:深析Redis单线程架构,图文并茂不能再清晰了

1.1、Redis单线程简介首先要明白,Redis的单线程指的是执行命令时的单线程。Redis客户端与服务端的模型可以简化成下图,每次客户端调用都经历了发送命令、执行命令、返回结果三个过程。我们说的单线程就是在第二步执行命令,一条命令从从客户端达到服务端不会立刻被执行,而是会进入一个队列中等待,每次只会有一条指令被选中执行。发送命令、返回结果、命令排队这些就不是那么简单了,例如Redis使用了I/O多路复用技术来解决I/O的问题。1.2、Redis为什么要使用单线程这是官方的解释:https://redi

2022-06-16 21:07:54 193

原创 大厂面试必问的HashMap,如何给面试官交上完美答卷?

本文所有内容皆围绕着HashMap1.7进行讲解。可能后续会省略1.7的版本号,望读者知晓。在JDK1.7中,HASHMAP是由数组+链表实现的,原理图如下:在详细讲解HashMap之前,我依旧认为,要想彻底理解一种数据结构,必须要从它的存在意义的角度开始理解。它为什么产生,与它的产生带来了怎样的意义。因此,我们现在假设自己穿越了时空,回到那个还没有HashMap的时代。假设,我们现在需要实现一个key-value键值对这种数据结构的集合,方便我们可以通过key去访问value。那么我们有那种方式去实现呢?

2022-06-16 21:02:07 89

空空如也

空空如也

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

TA关注的人

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