
编程语言
文章平均质量分 82
干货很多的大飞
前美团项目高级研发工程师,北京道隆华尔项目负责人
展开
-
阿里出现“病毒式”传播!一份开发笔记裂变成68人的offer
前言本文内容分为六部分,文章较长建议收藏再对照学习:第一阶段:架构师筑基必备技能 第二阶段:设计模式+开源框架解读 第三阶段:架构技术性能提升? 第四阶段:高效存储让项目起飞 第五阶段:分布式扩展到微服务架构 第六阶段:独家面经总结,超级精彩以下所有文档已经打包好,只需要动动手指点击【转发+关注】并点击此处即可!第一阶段:架构师筑基必备技能我觉得,但凡是个成年人应该都清楚扎实的基本功对自己的工作帮助有多重要。从各大招聘网站的招聘要求来看,第一条都明确说明需要扎实的Java基础原创 2021-01-11 17:31:04 · 273 阅读 · 0 评论 -
阿里面试官:就说最后一遍,有关Spring这13点我们必问!
以下文章来源于微信公众号,作者sowhat14121 Spring核心组件一句话概括:Spring是一个轻量级、非入侵式的控制反转(IoC)和面向切面(AOP)的框架。Spring 版本 JDK版本 1.x 1.3:引入了动态代理机制,AOP 底层就是动态代理。 2.x 1.4:正常升级 3.x 5:引入注解,Spring 3 最低版本是 Java 5 ,从此以后不叫1.x 直接叫x 4.x 6:划时代意义的版本,开始支持 Spring Boot.原创 2021-01-07 20:41:08 · 381 阅读 · 0 评论 -
独家!阿里云大师深入拆解Java虚拟机,告诉你什么叫细节爆炸
前言JVM对实际简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是JVM,以及弄清楚JVM的工作原理,其实我个人认为这块还是非常有必要去认真了解及学习的,特别是刚入门或入门不久的Java开发来说,这是Java的基石。其次,从各大招聘平台来看,一线互联网企业招聘需求(尤其是阿里巴巴),第一条就明确了要掌握JVM原理,因为JVM是中高级程序员必须要掌握的技术,学JVM也是为了更深入地理解Java以及更好的解决线上排查问题。原创 2021-01-05 17:49:10 · 487 阅读 · 0 评论 -
每天进步“亿点点”:Zookeeper的选举机制也不难理解
前言Zookeeper 是一个分布式服务框架,主要是用来解决分布式应用中遇到的一些数据管理问题如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。我们可以简单把 Zookeeper 理解为分布式家庭的大管家,那么管家团队是如何选出Leader的呢?好奇吗,接下来带领大家一探究竟。人类选举的基本原理讲解 Zookeeper 选举过程前先来介绍一下人类的选举。我们每个人或多或少都经历过几次选举,在投票的过程中可能会遇到这样几种情况:情况1:自己与几个候选人都比较熟,你转载 2021-01-05 14:41:47 · 201 阅读 · 0 评论 -
强!强!强!13张图彻底搞懂分布式系统服务注册与发现原理
以下文章来源于: 微信公众号作者:爱笑的架构师在微服务架构或分布式环境下,服务注册与发现技术不可或缺,这也是程序员进阶之路必须要掌握的核心技术之一,本文通过图解的方式带领大家轻轻松松掌握。引入服务注册与发现组件的原因先来看一个问题,假如现在我们要做一个商城项目,作为架构师的你应该怎样设计系统的架构?你心里肯定在想:这还不容易直接照搬淘宝的架构不就行了。但在现实的创业环境中一个项目可能是九死一生,如果一开始投入巨大的人力和财力,一旦项目失败损失就很大。作为一位有经验的架构师需要..转载 2020-12-31 12:00:30 · 245 阅读 · 0 评论 -
面试官问了我分布式事务,我感觉他有想给我40k的冲动
前言这次使用分布式事务框架过程中了学习了一些分布式事务知识,所以本文我们就来聊聊分布式事务那些事。首先我们先回顾下什么是事务。事务什么是事务?这个作为后端开发,日常开发中只要与数据库有交互,肯定就会使用过事务。现在摘抄一段wiki的解释,解释下什么是事务。是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成数据库系统具有事务特性,这是其有别于文件系统重要特性。传统的文件系统,如果正在写文件,操作系统突然崩溃,此时文件可能被破坏。数据库系统引入事务特性,可以保证原创 2020-12-31 11:13:35 · 190 阅读 · 0 评论 -
贼厉害,今天手撸的SpringBoot缓存系统,性能杠杠的!
作者:Jeff Wong来源:cnblogs.com/jeffwongishandsome缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。一、通用缓存接口1、缓存基础算法FIFO(First In First Out),先进先出,和OS里的FIFO思路相同,如果一个数据最先进入缓存中,当缓存满的时候,应当把最先进入缓存的数据给移除掉。LFU(Least Fre.原创 2020-12-29 22:18:12 · 272 阅读 · 0 评论 -
互联网寒冬下,如何“破冰自救”?这份阿里技术官的“Java知识地图”让你成offer收割机!
最重要的话疫情之下,各行各业都陷入在不同程度的危机当中;新年将至,谁也不敢保证明年是否将再次爆发疫情,但愿都能守得春暖花开。正文在经历了一波裁员浪潮后,大环境似乎有所好转,但对于面试者来说,面试愈发困难,现在面试官动不动就是底层原理,动不动就是源码分析,面试一定会抓你擅长的地方,一直问,问到你不会为止。伴随着国内一波互联网企业对于学历限制的放宽,从某种角度来说这其实是对于技术要求的提高。对于IT从业人员(尤其是受到疫情严重冲击的人)来说,提升技术硬实力才是解救自己的根本。快速提升自己原创 2020-12-29 14:47:07 · 497 阅读 · 0 评论 -
快收藏!SpringMVC万字长文笔记,我愿奉你为王者笔记
Spring MVCSpring MVC是目前主流的实现MVC设计模式的企业级开发框架,Spring框架的一个子模块,无需整合Spring,开发起来更加便捷。什么是MVC设计模式?将应用程序分为Controller、Model、View三层,Controller 接收客户端请求,调用 Model 生成业务数据,传递给View。Spring MVC 就是对这套流程的封装,屏蔽了很多底层代码,开放出接口,让开发者可以更加轻松、便捷地完成基于MVC设计模式的Web开发。Spring MV...原创 2020-12-21 18:02:57 · 194 阅读 · 0 评论 -
超通俗解析CountDownLatch用法和源码,保准看就会
CountDownLatch 是多线程控制的一种工具,它被称为 门阀、 计数器或者 闭锁。这个工具经常用来用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。下面我们就来一起认识一下 CountDownLatch认识 CountDownLatchCountDownLatch 能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。它相当于是一个计数器,这个计数器的初始值就是线程的数量,每当一个任务完成后,计数器的值就会减一,当计数器的值为 0 时,表示所有的线程都.原创 2020-12-21 09:53:30 · 232 阅读 · 0 评论 -
为什么我不建议你用阿里巴巴Java规范?而是Google Guava 编程?
前言阿里巴巴出了一本Java规范,在国内java开发眼里被赋予了神圣的殿堂,我不推荐你用阿里巴巴的开发手册。目前Google Guava在实际应用中非常广泛,本篇博客将以博主对 Guava 使用的认识以及在项目中的经验来给大家分享!学习使用 Google Guava可以让你快乐编程,写出优雅的 Java 代码,在业务允许的条件下,我推荐使用 Guava编程!Google 出品 Java 编码规范,科学又权威,强烈推荐!Joiner/Splitter/CharMatcherJDK提供的Stri原创 2020-12-19 21:54:18 · 316 阅读 · 4 评论 -
再见了SpringMVC!这个框架直接干掉了Servlet,牛了!
来自:oschina,作者:数据星河链接:https://my.oschina.net/u/3953752/blog/2051297前言对 Java 开发者来说, Spring 发布了 5.0 正式版后的一大特色,就是 Reactive Web 方案 Web Flux,这是用来替代 Spring Web MVC 的吗?或者,只是终于可以不再基于 Servlet 容器了?SpringMVC概述图基于 Servlet 容器的 Web MVC身为 Java 开发者,对于 Sprin.原创 2020-12-17 14:32:36 · 1312 阅读 · 0 评论 -
SpringCloud中Zuul网关原理及其配置,看它就够了!
作者:kosamino来源:cnblogs.com/jing99/p/11696192.html正文Zuul是spring cloud中的微服务网关。网关:是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由,定位到具体的服务节点上。Zuul是一个微服务网关,首先是一个微服务。也是会在Eureka注册中心中进行服务的注册和发现。也是一个网关,请求应该通过Zuul来进行路由。Zuul网关不是必要的。是推荐使用的。使用Zuul,一般在微服务数量较多(多于10个)的时候推.原创 2020-12-10 21:28:00 · 245 阅读 · 1 评论 -
大厂也在用的 6种 数据脱敏方案,严防泄露数据的 “内鬼”
最近连着几天晚上在家总是接到一些奇奇怪怪的电话,“哥,你是 xxx 吧,我们这里是 xxx 高端男士私人会所...”,握草,我先是一愣,然后狠狠的骂了回去。一脸傲娇的转过头,面带微笑稍显谄媚:老婆你听我说,我真的啥也没干,你要相信我!啪~过后揉揉脸细想想,肯定是哪个不道德的网站,又把我的个人信息给卖了,现在的人上网都处于一个裸奔的状态,个人信息已不再属于个人,时下这种事好像也见怪不怪了,不过,出现这种事大多是有内鬼。而作为开发者的我们,能做的就是尽量避免经我们手的用户数据泄露,那今天就来原创 2020-12-09 21:48:00 · 570 阅读 · 0 评论 -
JVM GC 耗时频频升高,这次排查完想说:还有谁?
作者:服务端思维来源:微信公众号1. 背景1.1 多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为大于3秒的为Longgc)。2. 分析前的一些JVM背景知识回顾2.1 JVM堆内存划分新生代(Young Generation)新生代内被划分为三个区:Eden,from survivor,to survivor。大多数对象在新生代被创建。Minor GC针对的是新生代的垃圾回收。 老年代(Old Gene...原创 2020-12-08 22:20:37 · 220 阅读 · 0 评论 -
“最粉嫩”的JVM垃圾回收器及算法,抗极限面试,倒背如流!
来源:微信公众号作者:三太子敖丙前言大家在面试的时候不同程度会被问到JVM的垃圾回收,看面试官水平,有些就背个书就行,比如GC的工作原理,有哪些GC算法和回收器,分别优点和缺点等等,有些面试官估计自己也就背书水平,都没个追问;有些面试官就能追问,一追问就歇菜,比如低延迟的垃圾回收器有哪些以及其原理,跨代引用及解决方案,三色标记及漏标问题处理,等等。还是那句话,虽然都是些理论的问题,但是在实际开发过程中真的能遇到这些问题来解决实际问题,所以多多了解JVM的实现原理总没有错,既能抗极限面.原创 2020-12-07 22:29:04 · 199 阅读 · 0 评论 -
7步秒懂分布式全内容,我不信面试官还敢“怼”着我问!
1. 什么是分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。2. 为什么要使用分布式锁为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchron.原创 2020-12-06 21:35:27 · 170 阅读 · 0 评论 -
我入职阿里啦!BAT等企业Java面试知识分享,拒绝套路!
引言做了三年开发的我,进阿里一直是我心之所向,如今我如愿以偿进入了国内互联网巨头——Alibaba!其实,今年下半年我面试不少互联网企业,像涂鸦智能,百度,京东,腾讯,字节,滴滴,阿里等等都有三井的身影,之后总结出来的针对Java面试的知识点或真题,每个点或题目都是在面试中被问过的,满满干货,诚意分享!由于整理成了文档,总结的内容比较多,希望大家都能领取一份,一定对自己有帮助!领取方式:戳进免费白嫖,暗号:优快云创作不易,请大家【一键三连】支持一下!准备好套路①自我介绍原创 2020-12-03 22:24:29 · 1442 阅读 · 10 评论 -
嬲塞!华为高T级架构师“ELK进阶笔记”惊现互联网,限量下载
前方高能ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana ,它们都是开源软件。Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收原创 2020-12-02 21:28:29 · 342 阅读 · 0 评论 -
oh,老哥,是码友就来看这篇多线程,保证有意外的惊喜
开篇闲扯打工人,打工魂,我们生而人上人。当“资本主义”逐渐禁锢我们人(大)上(韭)人(菜)肉体的时候,那一刻我才明白那个日不落帝国·资本主义收割机·瑞民族之光幸·瑞幸咖啡是多么的了不起,尽管我不懂咖啡,但还是要说一声谢谢!说到咖啡,喝完就想上厕所,对写bug的我来说太不友好了,毕竟我不(很)喜欢带薪上厕所。回归本次的不正经Java文章,本次新闻主要内容有...tui~~嘴瓢了。上篇文章末尾处已经提到了,主要会把我对Synchronized的理解进行一次全方位的梳理,如果能帮助到大家吊打面试官,万原创 2020-12-02 16:20:00 · 238 阅读 · 0 评论 -
鼓掌!阿里再次定义互联网实战案例,直线提高设计思想,架构思维
引言技术好就一定能写出优质的代码吗?不能,对于做开发的人来说,学到的技术知识是理论性的,只有把知识代入到真实的实战案例中才能快速将理论转变为技能。一直在网上看到过很多关于类似的资料,要么就是版本比较老,要么就是讲的太干,没有阅读下去的兴趣,以至于在这方面的学习止步不前。今天,我跟大家要分享的这份阿里《互联网实战案例》共有22大实战案例,每一章节都有对应的完整代码,同时在学习的过程中需要了解并运行代码,再也不用担心学不会了。本篇完整内容:点击免费获取,暗号:优快云5节创建者模式第原创 2020-12-01 22:21:51 · 183 阅读 · 5 评论 -
颠覆认知!阿里又开创《新高并发宝典》,层层深入,深度集成,太顶了!
引言众所周知,软件系统有三高:高并发、高性能、高可用。三者既有区别也有联系,门门道道很多,全面讨论可以大战三天三夜。高并发对于Java开发者来说都不陌生,每年天猫双十一,秒杀大促等场景阿里都稳稳的扛住了如此大的并发量,因此说,阿里在这方面也有绝对的话语权。可以从阿里等其他互联网大厂的招聘要求上看到,有高并发开发经验优先考虑。因此,Java并发问题一直是各个大厂面试的重点之一。很多程序员每天忙着搬砖,平时接触不到高并发,哪天受不了跑去面试,还常常会被面试官犀利的高并发问题直接KO。我们都知原创 2020-12-01 17:49:07 · 240 阅读 · 6 评论 -
阿里技术官整合的四大主流中间件笔记,让你高薪摸鱼,不再秃头背锅
RabbitMQ:优点:轻量,迅捷,容易部署和使用,拥有灵活的路由配置缺点:性能和吞吐量较差,不易进行二次开发RocketMQ:优点:性能好,稳定可靠,有活跃的中文社区,特点响应快缺点:兼容性较差,但随意影响力的扩大,该问题会有改善ActiveMQ:目前,消息队列在各大互联网平台,尤其是电商平台如京东、淘宝、去哪儿等网站有着深入的应用,主要作用是高并发访问高峰,通过异步消息模式减少网站响应时间,提高系统吞吐量。ActiveMQ作为众多MQ中的一员,而且也是最老牌的一员,有其优势:1)原创 2020-11-28 16:43:44 · 233 阅读 · 0 评论 -
阿里架构师不讲武德,坦言道为什么应用架构需要分类思维?
模块(Module)、组件(Component)、包(Package),这些概念对于我们技术同学并不陌生,但并不是所有人都能理解其要义。深入理解之后,我才发现,其背后的深意是分类思维。而这种分类也是应用架构的核心所在,通过不同粒度、不同层次的分类,把复杂的软件系统实现控制在可以被理解、被维护的程度。否则,对于动则上100万行代码的软件,人类根本没有办法理解和维护。试想一个极端情况,假如没有这些概念协助我们分类,我们把所有业务逻辑都写在一个类里面,会是什么样的结果呢?我们很多的“非人类”系统,正是因为原创 2020-11-28 14:01:27 · 152 阅读 · 0 评论 -
我崩溃了!“重金求来”Alibaba技术官并发编程笔记,颠覆了我以往“正确“的认知
对于一个Java程序员而言,能否熟练掌握并发编程是判断他优秀与否的重要标准之一。因为并发编程是Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,更为考验一个程序员的内功。那到底应该怎么学习并发编程呢?Java SDK的并发工具包有很多,是要死记硬背每一个工具的优缺点和使用场景吗?当然不是,想要学好并发编程,你需要从一个个单一的知识和技术中“跳出来”,高屋建瓴地看问题,并逐步建立自己的知识体系。在这里对那些对并发编程原理方面理解的不透彻,对并发编程的理解模糊不清原创 2020-11-27 17:17:12 · 180 阅读 · 7 评论 -
赞!阿里云高工双管齐下:K8S+Docker理论与实践深度集成!
背景Docker≠容器,Docker只是众多容器引擎之一。容器引擎主要负责两件事:第一,负责容器的整个生命周期管理,从生到死;第二,负责本地容器镜像的构建和管理。同时配合镜像仓库,完成海量镜像的存储和管理。众所周知,Docker很火,而Docker中以Kubernetes(简称k8s)最火。因为k8s在Docker之上,更进一步提供了对管理基础设施的抽象,形成了真正意义上的一站式部署与运维方案。今天,要跟大家分享一份来自阿里云高工总结的k8s+docker学习笔记,内容非常非常多,小编整理成了一原创 2020-11-26 17:42:03 · 316 阅读 · 1 评论 -
是的,你没有看错,我给Apache顶级项目提了个Bug
这篇文章记录了给 Apache 顶级项目 - 分库分表中间件 ShardingSphere 提交 Bug 的历程。说实话,这是一次比较曲折的 Bug 跟踪之旅。10月28日,我们在 GitHub 上提交 issue,中途因为官方开发者的主观臆断被 Close 了两次,直到 11 月 20 日才被认定成 Bug 并发出修复版本,历时 20 多天。本文将还原该 Bug 的分析过程,将有价值的经验和技术点进行提炼。通过本文,你将收获到:1、疑难问题的排查思路2、数据库中间件 Sharding..转载 2020-11-25 21:22:24 · 236 阅读 · 0 评论 -
十位互联网一线高工手写Java高级知识,五大模块,手撕面试官
重要大环境对于我们能力要求越来越高,医学专家又说今年冬天新冠肺炎将“席卷重来”。如果疫情再次爆发,势必将再次影响企业的正常运作,一波裁员浪潮你又能否抗住?不管如何,明年金三银四又是一波跳槽时机,也该趁着这个时间开始提升一下自己的技术了。不多说,十余位互联网一线大厂的大牛联合手写的Java高级知识,直接手撕面试官。由于内容偏多,为了避免影响阅读体验,在此看到的内容将以截图展示,原版内容请戳这里免费白嫖,暗号:优快云微服务架构①微服务概念:②Spring..原创 2020-11-24 18:00:05 · 140 阅读 · 0 评论 -
GitHub标星50k的Java“高工”全栈技术知识,干货满满,热度飙升!
重要众所周知,Java开发人员的生存环境可谓是与以前大相径庭,以IT行业发展来说,在十几年前的时候,IT行业的技术人才是稀缺的,程序员最初的招聘行情,只要你会敲“holle world”、会点技术,能做出点东西,就能入职月薪过万的大厂岗位。而到了今年2020年,近几年来初级人才已经不稀缺了。“IT初级人才招聘市场上”除了每年新入行的人,还有几年内、大几年内入行后技术没有进步的人,这些人被辞退、或跳槽找工作,找的也是“IT初级程序员”岗位……以互联网巨头阿里的招聘信息来看,首先对于工作经验有一定的原创 2020-11-23 14:00:04 · 182 阅读 · 0 评论 -
阿里开源的限流神器 Sentinel,轻松搞定接口限流!
Sentinel是阿里巴巴开源的限流器熔断器,并且带有可视化操作界面。在日常开发中,限流功能时常被使用,用于对某些接口进行限流熔断,譬如限制单位时间内接口访问次数;或者按照某种规则进行限流,如限制ip的单位时间访问次数等。之前我们已经讲过接口限流的工具类ratelimter可以实现令牌桶的限流,很明显sentinel的功能更为全面和完善。来看一下sentinel的简介:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel原创 2020-11-21 22:05:42 · 210 阅读 · 0 评论 -
MySQL最全整理,1200页文档笔记,从高级到实战讲的太清楚了
闲话作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上,MySQL并不难,今天这份最全的MySQL总结,一共1200页,几乎涵盖了MySQL的所有知识,尤其突出了实战技能和高级知识点,无论是工作还是面试看完这篇就足够了!注意:关于MySQL的内容整理,包括了面试题、学习笔记、使用文档以及Xmind思维图几个部分,需要高清完整版《MySql学习资源大礼包》原创 2020-11-20 17:59:23 · 447 阅读 · 0 评论