BAT架构师所具备的完整Java技术知识图谱

很多童鞋都有这样的困惑。想要成为架构师,但是不知道需要掌握哪些知识点。我现在将自己在过去13年工作中所积累的经验和技能,通过技能图谱的方式整理分享给大家!

作者陈睿,13年+技术专家,架构专题500期作者,多次操盘数亿级数据量、数亿级PV和千万级UV的大厂项目。曾先后就职于淘宝、盛大、百度、携程,历任高级研发、架构师、研发经理、事业部CTO。

数据结构+算法=程序

数据是一切能输入到计算机的信息总和,结构是指数据之间的关系,数据结构就是将数据及其之间的关系有效地存储在计算机中。

算法是指对特定问题求解步骤的一种描述,说白了就是解决问题的方法策略

总而言之:数据结构+算法=程序

语言掌握

任何一门开发语言都自己的语法,也有对应开发语言对应的开发框架和开发工具,掌握一门开发语言后,后期再学别的开发语言就要容易很多。

高级语言特性掌握

刚学开发的同学,早期主要是使用为主,工作1-3年后,使用的过程中需要理解为什么要这样使用,这就涉及到背后的语言高级特性,例如:

多线程

线程间的状态转换:

1. 新建(new):新创建了一个线程对象。

2. 可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。

3. 运行(running):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。

4. 阻塞(block):阻塞状态是指线程因为某种原因放弃了cpu 使用权,也即让出了cpu timeslice,暂时停止运行。直到线程进入可运行(runnable)状态,才有机会再次获得cpu timeslice 转到运行(running)状态。阻塞的情况分三种:

(一). 等待阻塞:运行(running)的线程执行o.wait()方法,JVM会把该线程放入等待队列(waitting queue)中。

(二). 同步阻塞:运行(running)的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池(lock pool)中。

(三). 其他阻塞:运行(running)的线程执行Thread.sleep(long ms)或t.join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入可运行(runnable)状态。

5. 死亡(dead):线程run()、main() 方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生。

网络OSI七层模型:

著名的开放系统互联基本参考模型,即OSI,是由国际标准化组织(ISO)提出。

OSI的体系结构定义了一个七层模型,用以进行进程间的通讯,并作为一个框架来协调各层标准的指定。

OSI采用七层模型可以带来如下好处:

1)各层之间是独立的。某一层并不需要知道他的下一层是如何实现,仅需要知道该层的接口所提供的服务。

2)灵活性好。当任何一层发生变化时(如技术的变化),只要曾间接口关系不变,则在这层以上或以下各层均不受影响。

3)结构上可分割。各层都可以采用最合适的技术来实现。

4)易于实现和维护。因为整个系统已被分解为若干个相对独立的子系统。

5)能促进标准化工作,因为每一层的功能及其所提供的服务都已有了精确的说明。

阿里巴巴常用开源框架

由于阿里的高并发访问,已经建立了非常完善的架构基础设施,比如小文件存储:tfs,Dubbo阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成,还有内部经常使用到的分布式缓存框架:tair

熟练掌握常用设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

JVM实现机制,垃圾回收算法

JVM基本是BAT面试题目必考,以及重点考察的重点,我举几个例子:

1. 内存模型以及分区,需要详细到每个区放什么。

2. 堆里面的分区:Eden,survivalfrom to,老年代,各自的特点。

1).JVM中堆空间可以分成三个大区,新生代、老年代、永久代

2)新生代可以划分为三个区,Eden区,两个幸存区

3.对象创建方法,对象的内存分配,对象的访问定位。

4.GC收集器有哪些?CMS收集器与G1收集器的特点。

5.Minor GC与Full GC分别在什么时候发生?

6.常见的垃圾回收算法等等。

WEB开发

很多后端工程师,比如:java web开发工程师,是需要掌握很前段的开发基础:h5、js常用框架:jquery、css以及常见的前段调试开发工具,例如:firebug 、ietester、yslow等等。

也会涉及到很多servlet的访问周期、tomcat、spring等的启动完整过程。

还有很多常用的模版引擎,阿里内部就使用veloctiy,很多公司也还在使用jsp等传统的模版引擎等。

数据库设计

常见的数据库设计原则

SQL和NOSQL的选型使用,SQL的常规掌握,索引的建立和优化原则等,也会涉及到更多大数据的分库分表原则等。

开发框架和中间件框架选择

java领域使用到的开源框架可供选项范围很多,目前常用的web开发框架组合,典型的就是SSM(springMVC+Spring+Mybatis)

中间件的框架选择也比较多,例如:分布式缓存这块就有memcached,redis等。还有常见的消息队列框架:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题,目前使用最多的是ActiveMQ和Kafka。

这里也会涉及到分布式小文件的存储等。

常用的开发工具

架构设计经验

架构设计更多来自于大型网站的架构设计变迁,需要积累完整的数据库、设计模式、中间件选择、数据库性能优化、负载均衡、微服务架构的掌握等:

大型网站架构设计场景

觉得不错请点赞支持下。

----end----

PS:Mike的《架构进阶专题》又更新干货了,目前该专题已超过100期+。内容涵盖:数据结构和算法、Java高级特性、Java web核心、数据库、Java框架与必备工具、系统架构设计等,希望能真正帮助到想要从程序员进阶为高级Java、架构师之路的朋友。

还没领过的童鞋,文末有链接获取方法。

领取过的童鞋,按照之前提供链接即可访问获取。

领取方法:

关注+转发本篇文章,然后私信关键词 【架构】,即可获取。

重要的事情说三遍,关注+转发、关注+转发、关注+转发,然后私信关键词 【架构】,即可获取~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容