![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
Java架构师公社
分享Java后端开发工作上的一些工作经验与心得
展开
-
10个知识点让你读懂Spring MVC容器
前言随着 Spring Boot 逐步全面覆盖到我们的项目之中,我们已经基本忘却当年经典的 Servlet + Spring MVC 的组合,那让人熟悉的 web.xml 配置。而本文,我们想先抛开 Spring Boot 到一旁,回到从前,一起来看看 Servlet 是怎么和 Spring MVC 集成,怎么来初始化 Spring 容器的。Spring MVC概述 注解驱动的控制器 处理方法的数据绑定 视图和视图解析器 本地化 文件上传 WebSocket 静态资源处理 拦截器原创 2020-12-08 15:45:15 · 238 阅读 · 1 评论 -
玩转Git就这么简单!这些常用命令你确定都用过吗?
Git工作流程Git工作区、暂存区和版本库工作区:就是你在电脑里能看到的目录。 暂存区:英文叫 stage 或 index。一般存放在.git目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是 Git 的版本库。git add,暂存区目录树更新,工作区修改【或新增】的文件内容被写入到对象库的一个新对象中,而该对象的ID被记录在暂存区的文件索引中。 git c...原创 2020-12-03 17:26:00 · 117 阅读 · 0 评论 -
理论实践双飞,美团架构师甩出架构进阶宝典我粉了!
很多技术大会上的分享大多“高大上” 亿级流量、 超大型研发团队,虽然值得借鉴,但由于应用场景与研发资源的差异 般企业并不容易落地。其实 ,中小型研发团队在IT还是占大多数 他们在技术架构方面的问题较多 技术阻碍业务、跟不上业务发展的情况很常见。虽然我们大部分人群还只是停留在码农的阶段,但是秉承着活到老学到老的原则,我们的目光应该不仅仅是停留在原地(不会吧?不会真有人想当一辈子码农吧?(手动狗头保命)),更应该向前看往架构师甚至CTO方面进阶才是真理,小编目前就是一个正在成为架构师的男人(我是这么认为.原创 2020-12-03 16:52:15 · 289 阅读 · 3 评论 -
腾讯面试惨败!原来我与一线大厂的程序员差距这么大,太难了!
简单说一下吧,本人疫情还没开始时面试过一次鹅厂,在MySQL、redis这方面惨败,经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于重拾面试信心,再次出征。二战腾讯面试职位:go后端开发工程师,接受从Java转语言。都知道腾讯是cpp的主战场,而以cpp为背景的工程师大都对os,network这块要求特别高,不像是Java这种偏重业务层的语言。之前面试Java的公司侧重还是在数据结构、网络、框架、数据库和分布式。所以OS这块吃的亏比大。一面:基础技术面电话面试,随原创 2020-12-02 15:00:25 · 429 阅读 · 4 评论 -
6年开发,五面阿里,耗时3月系统梳理Java全栈知识点,终获P7Offer!
有人说,今年可能是过去十年最差的一年,但却是未来十年最好的一年。随着越来越多的知名企业进行大规模裁员,我们不得不承认一个事实:经济寒冬与裁员潮,将是未来常态!今年找工作属实有点难找,不过我还算幸运目前已斩获P7offer,下面我就给大家简单带过一下吧~本人介绍:6年多经验的程序员,坐标南京。背景:开始因水平有限,及对部分面试问题记忆及理解有限,可能有些问题并不能表达准确。掌握技术有限,学习主动性一般(虽遇到问题善于思考钻研,但如果没有遇到问题比较放纵自己...被自由,轻松,安逸迷失心智),以及原原创 2020-12-02 14:52:48 · 121 阅读 · 4 评论 -
面试官:小伙子先来说一下可能引起Java内存泄露的场景吧
通过 finalize() 方法终结器finalizers的使用是潜在内存泄漏问题的另一个来源。每当类的finalize()方法被重写时,该类的对象不会立即被垃圾回收。相反,GC将它们排队等待最后确定,这将在稍后的时间点发生。另外,如果我们的应用程序不能更快地完成或最终处理一个错误,那么如果我们的应用程序不能更快地完成一个错误,那么我们的应用程序就不能完成。为了证明这一点,让我们考虑一下,我们已经为一个类重写了finalize()方法,并且该方法需要一点时间来执行。当此类的大量对象被垃圾...原创 2020-11-30 14:23:40 · 81 阅读 · 0 评论 -
Java内部类新解,你没有见过的船新版本
基础Java支持类中嵌套类,称之为nested class。嵌套的层数没有限制,但实际中一般最多用两层。根据内部类是否有static修饰,分为static nested class和non-static nested class。non-static nested class又被称为inner class。inner class里面又有两个特殊一点的类:local class和anonymous class。特殊之处主要在于语法使用上,实质功能是差不多的。 官方 是这样解释的:N...原创 2020-11-30 14:21:09 · 121 阅读 · 1 评论 -
SSM框架-SpringMVC详解
springmvc概述Springmvc是spring框架的一个模块,spring和springmvc无需中间整合层整合。Springmvc是一个基于mvc的web框架表现层的三大任务:URL到controller的映射 http请求参数绑定 http响应的生成和输出MVC设计模式MVC设计模式是一种通用的软件编程思想。在MVC设计模式中认为, 任何软件都可以分为三部分组成:(1)控制程序流转的控制器(Controller)(2)封装数据处理数据的模型(Mod.原创 2020-11-30 14:18:13 · 545 阅读 · 2 评论 -
基于 Spring 实现管道模式的最佳实践
管道模式(Pipeline Pattern) 是责任链模式(Chain of Responsibility Pattern)的常用变体之一。在管道模式中,管道扮演着流水线的角色,将数据传递到一个加工处理序列中,数据在每个步骤中被加工处理后,传递到下一个步骤进行加工处理,直到全部步骤处理完毕。PS:纯的责任链模式在链上只会有一个处理器用于处理数据,而管道模式上多个处理器都会处理数据。何时使用管道模式任务代码较为复杂,需要拆分为多个子步骤时,尤其是后续可能在任意位置添加新的子步骤、删除旧的子步骤..原创 2020-11-30 14:15:21 · 399 阅读 · 1 评论 -
Java并发之Condition详解
Condition的认知在使用Lock之前,我们使用的最多的同步方式应该是synchronized关键字来实现同步方式了。配合Object的wait()、notify()系列方法可以实现等待/通知模式。 Condition接口也提供了类似Object的监视器方法,与Lock配合可以实现等待/通知模式,但是这两者在使用方式以及功能特性上还是有差别的。Object和Condition接口的一些对比。摘自《Java并发编程的艺术》Condition接口的介绍与示例首先我们需要明白condi.原创 2020-11-30 14:12:45 · 128 阅读 · 0 评论 -
惊艳!美团T4手码578页设计模式高阶笔记,会是你追求的完美架构设计和代码设计吗?
站在巨人的肩膀上学习是我们一直在做的事情,在软件开发的历程中,正是无数前辈们本着追求完美的架构设计和代码设计的初心。经过无数前辈们的探索和努力,逐渐形成了一系列的设计原则和设计模式。今天这篇文章就与大家聊一聊Java的6大设计原则和23种设计模式。对于Java语言来说,通常包含有6大设计原则和23种设计模式,这些都是前辈们对于开发思想的结晶。我们学习和理解这些设计原则和设计模式,深入掌握其实现原理和使用场景,能够更好的设计我们的系统架构。编写出具有高性能、高并发、高可用、高可扩展性和高可维护性的代码。原创 2020-11-29 20:50:55 · 173 阅读 · 1 评论 -
完美!阿里爆款架构宝典终开源!软件架构设计模式、开发模型、思维、编程思想、设计原则全都有!
前言如今架构已经被广泛应用到企业管理和IT等领域,并演变成了各个领域的核心技术之一。架构的设计目标是解决软件的复杂性,一个好的架构无论是从研发过程、软件自身还是经济角度带来的利益都是巨大的。现在IT领域架构师无疑是个很吃香的职业。架构师一般分为软件架构师、平台架构师、硬件架构师、网络架构师、人工智能架构师以及特定领域技术等方面的架构师。想要成为架构师所需要积累的知识肯定不是一星半点的,我们能做的就是站在巨人的肩膀上不断学习提升自己,目前市面上关于架构的文档有太多,但真的能把架构系统的梳理清楚的文档实原创 2020-11-29 20:39:08 · 243 阅读 · 3 评论 -
Spring源码难?阿里技术官手码222页Spring源码高级笔记开源分享,其实看懂Spring源码很简单!
Spring的影响力想必无需与大家多说,如果你用spring,那么读读源码有助于对你最重要的工具的理解,好的框架源码也可以帮助我们理解什么是好代码。刚参加工作那会,没想过去读源码,更没想过去改框架的源码;甚至觉得那些有事没事扯源码的人就是在装,只是为了提高他们的逼格而已,在工作中没什么太大的用;但现在我的想法改变了,下面我就我自己的一些见解来与大家聊聊为什么要读Spring源码。为什么要读Spring源码?说实话我读Spring源码一刚开始为了面试,后来为了解决工作中的问题,再后来就是个人喜好原创 2020-11-28 16:17:07 · 158 阅读 · 0 评论 -
三面百度Java技术岗却遭到算法拦路,刷了字节内部算法笔记才知道我之前欠缺的地方有多大!
前言前段时间面试百度Java技术岗时碰到了一道算法题:任意数分三组,使得每组的和尽量相等。由于时间仓促,加之面试时头昏脑涨,这道题没做出来甚至没有给出思路,导致百度面试之旅失败。这让我多少有些遗憾和不甘。因为最近接触算法的东西较多而且本身对算法感兴趣,所以回家之后绞尽脑汁想把这题做出来。说说我的思路:首先一定要先排序,这也是解决问题的关键。然后降序排序后的前三个数各分一组把剩余数往三个数上叠加。我最开始的思路也是如此,问题在于分组个数不确定,出现极端大的数怎么办,怎么叠加?那层窗户纸就是将.原创 2020-11-28 16:10:21 · 112 阅读 · 8 评论 -
都2020年了还没有用过微服务?阿里微服务进阶宝典限时开源!注册中心+调用+熔断+网关+配置全都有!
最近阿里巴巴最爆最新作品,微服务全套手抄本,涵盖了注册中心+调用+熔断+网关+配置等等内容,可谓是又给社会送出一份微服务的“大礼包”不扯废话了,下面直接来学习这套笔记!由于文章的篇幅有限,需要领取阿里最新微服务全套笔记的朋友,麻烦帮忙转发一下小编这篇文章,然后添加小助理vx:bjmsb2020 都可以免费获取!First:注册中心篇Second:调用、熔断篇Third:网关篇Fourth:配置篇...原创 2020-11-28 15:24:42 · 327 阅读 · 2 评论 -
又一里程碑!阿里新产“Java全栈进阶笔记”上线一天下载量突破20w,手慢无!
笔记作者:来自于阿里P8级架构师笔记特点:条理清晰,含图像化表示更加易懂。内容概要:包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈!由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友 可原创 2020-11-26 15:17:38 · 112 阅读 · 10 评论 -
普通程序员就不能有拥有架构师光环?想要建立架构思维,这份京东架构技术精髓一定不能错过!
前言现在面试造火箭,工作拧螺丝是现在很普遍的现象。可是有时候我常常会看到这么一种现象:同时期进入到同一家公司,时间长了之后,有的人已经有一定的架构能力了,已经缓步向架构师方向迈进了,有的人却还在扎入CRUD的苦海中出不来,造成这种差别的原因除了个体素质的差异,还有一个是工作方式和思考方式上的差异。技术不断更新但是有的人却不一定在进步,不进步就只能被后浪“拍死”在沙滩上,这是一个很现实的问题。但是想要成为一个架构师并不是一夜之间就能做到的,而是需要日常工作上不断的积累,是一个缓慢的过程,当然天才除外。原创 2020-11-25 17:30:47 · 133 阅读 · 11 评论 -
Tomcat我们走!看了这份美团强推的Tomcat笔记,感觉开发和调试Servlet、JSP 程序跟喝水一样简单!
TomcatTomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。除此之外,Apache Tomcat还可以很容易与Apache Http Server.Nginx等知名的Web服务器集成,以实现负载均衡和集群化部署。现在已经被广泛用于开发、测试环境,甚至大规模、高并发的互联网产品部署。目前用Tomcat的人以及对Tomcat 架构感兴趣的技术人员越来越多。小编最开始接触Tomcat的时候连它.原创 2020-11-25 17:09:35 · 1894 阅读 · 0 评论 -
华为二面折戟!事后才明白网络协议这块多数人的短板才是我们与别人拉开差距的地方!
华为二面凉凉今年疫情年,小编在金三银四的时候期间有一段时间是准备去面试一下华为(当时已有Offer想增加一点面试经验),当时觉得自己其他技术栈已经准备的差不多了,听说华为比较注重网络方面,有一段时间是恶补了一下网络方面的知识。果不其然一面就问了许多网络方面的知识与一些其他Java基础知识,一面也就轻松的过了。当时就觉得二面应该也不会太怎么样,就草率的准备了一下就去面试了。一去人家根本没问我技术框架上的内容,一直围绕我的项目讨论,让我手绘我的项目交互图,相关表设计,用到的算法,当时是怎么考虑的,主要还是高原创 2020-11-25 17:06:00 · 2385 阅读 · 17 评论 -
双非学历无科研经历,苦熬三月3面成功入职字节跳动,算法+数据结构+JVM+Web组件+项目死亡连珠炮!
聊聊面试面试是一个老生常谈的问题,显而易见面试是有很多技巧的。求职过程中,有很多同学会“高估”自己的价值,盲目追求工资更高/职位更高……的岗位。这样肯定不会有好结果,求职也会陷入两难的境地,面试能通过的公司自己看不上,自己能看上的公司却连面试机会也没有。我们Java程序员这一群体,大家都知道最好的涨薪方法是通过跳槽,在你把一个公司的精华都吸收完之后,有追求的肯定会跳去更好的公司发展自己,特别在金三银四,金九银十这样的招聘旺季里 ,会有很多需要准备的面试会有很多,上面也说了我们求职的目的不是无止境追求原创 2020-11-24 19:29:29 · 199 阅读 · 1 评论 -
爱了爱了!阿里SpringCloud全栈技术笔记上线3天Github标星25k!
微服务架构近年来,在软件开发领域关于微服务的讨论呈现出火爆的局面,有人倾向于在系统设计与开发中采用微服务方式实现软件系统的松耦合、跨部门开发,被认为是IT软件架构的未来方向,Martin Fowler也给微服务架构极高的评价;同时,反对之声也很强烈,持反对观点的人表示微服务增加了系统维护、部署的难度,导致一些功能模块或代码无法复用,同时微服务允许使用不同的语言和框架来开发各个系统模块,这又会增加系统集成与测试的难度,而且随着系统规模的日渐增长,微服务在一定程度上也会导致系统变得越来越复杂。尽管一些公司原创 2020-11-24 16:50:43 · 186 阅读 · 3 评论 -
阿里Java程序员必知必会进阶宝典限时开源,计算机基础+OS+数据结构与算法全都有!
不知道大家在当初是一个什么都不懂的小白的时候会不会想一些下面这些问题:我不是科班的,转行的,计算机零基础,啥也不懂,学计算机可以吗?计算机基础什么的都不知道,像什么操作系统啊,计算机组成原理啊,还有什么数据结构和算法,完全懵啊,咋整?“其实这些就是一个计算机基础知识的问题,那么这些不会,影响你学习编程吗?答案是不影响你开始学习编程,但是影响你未来可以走多远,学多深!作为程序员,我们都清楚学习的重要性,毕竟时代在发展,互联网之下,稍有一些落后可能就会被淘汰掉,因此我们需要不断去审视自己,通过学习来原创 2020-11-24 16:36:31 · 2066 阅读 · 17 评论 -
还在用同步代码编写程序?阿里技术官甩出异步编程神仙笔记,带你进入阿里的异步编程世界!
异步编程是什么?想必大家平时都喜欢使用同步代码编写程序,因为这种请求/响应的方式比较简单,并且比较符合编程人员的思维习惯;这种做法很好,直到系统出现性能瓶颈;同步编程方式不能满足我们需求时,通过编写异步、非阻塞的代码,反而可以起到很好的效果,从而提高系统性能。它也是可以让程序并行运行的一种手段,可以让程序中的一个工作单元与主应用程序线程分开独立运行,并且等工作单元运行结束后通知主应用程序线程它的运行结果或者失败原因。提高应用程序的性能和响应能力。虽然Java为不同技术域提供了相应的异步编程技术,原创 2020-11-24 16:24:49 · 136 阅读 · 2 评论 -
程序原来还可以这样写,而且这样写居然更好!不讲武德的年轻人一定要来看看这份阿里大牛手码Java核心技术!
写在前面作为一个经历过很多面试的求职者,也是一个面试过很多求职者的面试官,深知Java基础、核心原理的重要性,其重要性甚至超过你的技术能力。我这里不是宣扬技术能力不重要,技术能力是企业的第一生产力,是老板雇用你的价值所在。但是作为面试者要清楚,你口若悬河介绍自己曾经用过的某工具的时候,面试官未必有共鸣,因为他可能对该工具根本就不熟悉——尤其是你供职的上一家公司和现在应聘的这家公司处于不同领域背景的情况下。但是如果你对于Java核心的东西回答得不好,那么面试官就有足够的理由认为你不行。作为一个有十几年原创 2020-11-24 16:14:15 · 295 阅读 · 2 评论 -
面试还在疯狂刷题?只因为你没有选对资料!华为算法技术宝典限量发布,手慢无!
前言今天我们来说说算法,大家都知道随着计算机的发展,算法的应用越来越广泛,不是从事程序员行业的人可能意识不到算法到底应用到哪里了,其实算法的应用生活中处处可见,像智能电视啊、手机操作系统、智能家居、甚至现在的军用设备都是需要用到的。至此可以看出,要是没有程序员我们的生活不知会退后多少年,不要再说程序员工资高了!都是用头发换来的,什么行业都是有三六九等的,程序员也是这样的,你的回报取决于你的能力。我猜肯定有很多伙伴在面试前会疯狂刷题,殊不知选对资料就可以让你省下一大半的时间,这份华为资深技术官整理原创 2020-11-24 15:47:29 · 149 阅读 · 2 评论 -
刻不容缓!阿里架构核心宝典限时开源,手慢无!年轻人耗子尾汁
导言什么是架构师?对于程序员来说,聊架构是一个永不过时的话题。实际上,每一家公司都有自己对架构师不同的定位,因为不同的公司,所处的阶段、业务模式以及应用场景都不一样,因此对架构师的要求不一样,所以定位也就不同。但是,无论如何,架构师除了优秀的合作能力以及清晰的思路头脑以外,过硬的技术基础也是很有必要的,大型的互联网公司对架构师的技术要求也是非常高的。因此,学习架构技术,刻不容缓。今天这份由Alibaba新产的“Java架构核心宝典”已经限时开放下载,全是流行技术,提升架构技术必备。.原创 2020-11-24 15:28:25 · 371 阅读 · 7 评论 -
开发一年找工作被HR“骗了”,后来面试其他的公司,阴差阳错入职美团!
前因后果先讲述一下自己这次被无良HR欺骗坑惨的经历吧,面试的是一家上海某电商公司,给的薪资是不错。面试的时候,找我要了工资流水,然后给了我口头offer,就让我回去等了邮件了。回去之后就觉得offer没啥问题,稳稳当当了,就没再去面其他的公司,打起了游戏。结果等了两个礼拜也没等来邮件,问HR告诉我在走流程,我问是不是不要我,HR说要,让我继续等。再过了几天我再去问,HR就怎么都不回我了,这个时候我才反应过来“坏了”。好在后来我马上开始面试其他的公司,阴差阳错拿到了美团的offer,这也算是因祸得福了原创 2020-11-22 21:13:42 · 432 阅读 · 8 评论 -
程序员一定要尽快确立发展方向和路线!阿里首发“架构技术攻略”限时开源!从基础到源码,让你在大厂一站到底!
前言作为一名程序员,尽早确定自己的发展方向和路线是非常重要的,架构师则是其中的方向之一。很多程序员,奋斗大半辈子,是为了让自己成为一名合格且优秀的架构师,但是成为架构师并非一件易事,它对于技术方面的要求也是非常高的。当然,大厂架构师更为值钱,那么想要进大厂做架构师,需要学习哪些技术呢?可能现在的你还比较迷茫,但实际上现在市面上有不少现成的架构技术路线,跟着路线学习起来则是非常容易的!今天要分享的,是看着一般,但读过之后会觉得真香的“架构技术攻略”,这套攻略由阿里技术官亲自推荐,从基础到源码,让你在大原创 2020-11-22 21:02:25 · 123 阅读 · 8 评论 -
旅游生态系统的设计-用户管理设计
用户管理设计说明 业务设计说明本模块主要是实现对用户信息的管理,包括用户查询,保存,更新,禁用启用等操作,其业务分析如下图所示:图-1所示:基于对表的设计,其数据逻辑关系的展示,如图-2所示:用户表设计的脚本如下:CREATE TABLE `sys_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL COMMENT '用户名', `password`..原创 2020-11-22 20:49:45 · 218 阅读 · 0 评论 -
SpringSecurity认证流程详解(附源码)
盐值加密1. 原理概述SpringSecurity使用地是随机盐值加密随机盐是在对密码摘要之前随机生成一个盐,并且会把这个盐的明文和摘要拼接一起保存举个例子:密码是pwd,随机盐是abc,pwd+abc摘要后的信息是xyz,最后保存的密码就是abcxyz随机盐 同一个密码,每次摘要后的结果都不同,但是可以根据摘要里保存的盐来校验摘要和明文密码是否匹配在hashpw函数中, 我们可以看到以下这句real_salt = salt.substring(off + 3, off + 25原创 2020-11-22 20:48:14 · 574 阅读 · 2 评论 -
不会吧不会吧!都2020年了还有人说工作中用不到并发?阿里并发编程神仙笔记限时开源!年轻人耗子尾汁!
并发编程谈到并发编程,可能很多人都有过经验,甚至比我了解的更多。那么并发与并行的区别又是什么?并发编程是编程中的核心问题,实践中,当人们希望利用计算机处理一些现实世界问题,以及希望同时处理多个问题的时候,并发也就出现了。在需要对同一共享资源进行操作,多个事务之间存在关联,人们把这种看起来多个事务同时运行的特性称为并发性。有个经常容易跟并发混肴的概念叫并行,其实真正懂了之后理解并不困难,可以把并行看过是并发实现中某个局部可以引入的运行设施;在讨论并发时,我们一般不需要假设这个运行或者调度设施究竟是原创 2020-11-21 16:45:34 · 180 阅读 · 0 评论 -
四年开发,待业半年本想放弃Java,抱着试试的心态面试某C轮金融科技公司居然过了!
写在前面个人背景:开发4年,坐标杭州金九银十已经过去了,写这篇文章的目的就是与大家谈谈面试方面的经验,心得,就个人方面而言,我之前做过的很多的工作都是面试造核弹,工作拧螺丝。但是不要因为自己是个拧螺丝的就不学哪些难啃的技术。当项目出问题的时候,就是考验技术沉淀的时候。我也迷茫过好长一段时间,学了忘,学了没用,到底应该怎么成长才能成为一个别人眼中的大神,大牛。关于面试,关于技术的,我只能说有些路只能靠自己去走,没人可以帮到自己,哪怕偶尔帮一到两次,但是技术的路这么长,总归需要自己独自成长的。我原创 2020-11-21 16:34:58 · 2075 阅读 · 18 评论 -
胜天半子!阿里技术官纯手打并发编程神笔记限时开源,手慢无!
并发编程并发编程可选择的方式有多进程、多线程和多协程。对于Java来说,它既不像C++那样,在运行中调用Linux的系统API去"fork" 出多个进程:也不像Go那样,在语言层面原生提供多协程。在Java中, 并发就是多线程模式。对于人脑的认知来说,“代码一行行串行”当然最容易理解。但在多线程下,多个线程的代码交叉并行,要访问互斥资源,要互相通信。作为开发者,需要仔细设计线程之间的互斥与同步,稍不留心,就会写出非线程安全的代码。正因此,多线程编程一直是一个被广泛而深入讨论的领域。在JDK 1原创 2020-11-21 16:30:01 · 155 阅读 · 0 评论 -
从分布式到微服务再到云原生,从架构师的角度带你独当一面!
前言微服务、云原生、Kubemnetes. Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术,还要深入理解其发展脉络、原理等,才能游刃有余地将其用于现有的项目开发或老系统改造中。自从几十年前第一次引入分布式系统这个概念以来,出现了很多原来根本想象不到的分布式系统使用案例,但同时也引入了各种各样的新问题。而且分布式与微服务的区别是现在热议的话题,但是大多数文章都没有说清这两者的区别,只是说微服务是分布式的细分,那细分的微服务原创 2020-11-21 16:26:38 · 1595 阅读 · 11 评论 -
爱了爱了!美团大牛手码MySQL知识体系全解全网首发,性能优化+架构设计+面试全都有!
MySQL是什么?关于Mysql想必大家都知道它是最流行的关系型数据库管理系统之一,现在包括facebook. google、 Adobe、 alcatel Lucent和zappos在内的世界上许多规模最大、增长最快的机构都依赖mysq|来节省时间和资金,为它们的高容量网站、关键业务系统和打包软件提供服务。Mysql优化问题大家也知道谈到MySQL就必定会要涉及到调优问题:为什么需要优化mysq|数据库避免出现页面访问错误 增加数据库的稳定性mysq|数据库需要优化哪.原创 2020-11-21 16:14:09 · 271 阅读 · 0 评论 -
面试被问高并发?这样回怼面试官面试还不过你来打我!
面试需要注意什么?这篇文章跟大伙谈谈面试,我们在学习一门新的技术、语言的一个行之有效的方法就是边学习边思考、带着问题在学习过程中寻找答案。而问题最好的引导者就是面试官的"为难",我不代表全部的面试官,我身边大多数朋友在针对面试者的问题上主要有以下几个方面1、公司业务需求比较多的技术 2、公司业务现在遇到的一些问题 3、市场需求比较多的技术 4、市场新型并且有未来应用场景的技术(主要就是做人才储备)重点就是前三个方面,尤其是第二条,因为公司招人就是为了让你干活解决问题的,如果在面试的过程中原创 2020-11-21 16:07:56 · 353 阅读 · 1 评论 -
不吹不黑!阿里技术官将技术应用于业务、理论应用于实践搭建高可用高并发系统
前言大家都知道,在我们的技术生涯中,总是要不断针对新的需求去设计研发新的系统,但是系统设计是一个不断迭代的过程,在迭代中发现问题并修复问题,即满足需求的系统是不断迭代优化出来的,这是一个持续的过程,我个人不相信完美架构银弹。不过,如果一开始就有好的基础系统设计,未来可以更容易达到一个比较满意的目标。在设计系统时,我们应该适当参考墨菲定律(个人见解)。1. 任何事都没有表面看起来那么简单。2.所有的事都会比你预计的时间长。3. 可能出错的事总会出错。4.如果你担心某种情况发生,那么它原创 2020-11-20 16:06:30 · 158 阅读 · 3 评论 -
凭借这份Java全栈知识+1500道大厂面试真题,在11月即将结束之际把各大互联网公司面了个遍!
这篇文章给大家分享一下我遇到的一些质量较高的面试经历,具体经过就不多说了,就把面试题打出来供各位读者老哥参考如有不全的地方,各位海涵。猿辅导八皇后问题 求二叉树的最长距离(任意两个节点的路径 中最长的) lru算法的实现 设计一个数据结构 满足 put 和 getMedium(中位数)两个方法. (时间复杂度分析, getMedium 在常数,n,log n 时间复杂度返回如何实现) rabbitmq 脑裂问题,rabbitmq 延迟队列实现, rabbitmq高可用策略(因原创 2020-11-20 15:58:19 · 609 阅读 · 5 评论 -
太难了,面试官不讲武德!来骗来偷袭,我直接被Spring全家桶面试连珠炮怼的体无完肤.....
大家先看一下Spring全家桶思维导图,这上面的技术不知道各位大佬们是不是都用过。简单说一下这些技术吧Spring Framework它就是我们常说的Spring框架,它是一个软件设计架构层面的框架,为基于Java的企业级应用程序提供了一套标准流程和配置模型,可部署在任何类型的平台上。Spring优势在于为开发者提供了应用级别的基础结构支持,实现应用层面的解耦合,允许开发者自主选择相关组件,开发者只需专注于业务逻辑的开发,不需要关注特定的部署环境。SpringMVCSprin.原创 2020-11-20 15:52:38 · 657 阅读 · 9 评论 -
图说线性表-搞懂链表从这篇文章开始
今天来说一说线性表部分的梳理,线性表主要分为了基础概念和基本操作两大部分,由于某些过程或概念比较抽象,我添加了部分图示,希望能够把这些抽象的东西直观的表达出来。基本操作模块重点主要在单链表和顺序表两部分,本文着重梳理了线性表插入、删除、查询等基础方法并搭配了部分实例供参考。1 基本概念对于线性表来说,它是一组相同元素的有限序列,元素的个数就是线性表的长度,当元素个数为 0 时,线性表就是空表。数据结构包括逻辑结构、存储结构和算法。线性表的基本概念这里主要看线性表的逻辑结构和存储结构就可以了。原创 2020-11-20 15:08:18 · 165 阅读 · 0 评论