java 高级架构师学习方向

本贴最后更新于 2400 天前,其中的信息可能已经时异事殊

一、技术深度

有没有看过 JDK 源码,看过的类实现原理是什么。

HTTP 协议

TCP 协议

一致性 Hash 算法

JVM 如何加载字节码文件

类加载器如何卸载字节码

IO 和 NIO 的区别,NIO 优点

Java 线程池的实现原理,keepAliveTime 等参数的作用。

HTTP 连接池实现原理

数据库连接池实现原理

数据库的实现原理

二、技术框架

看过哪些开源框架的源码

为什么要用 Redis,Redis 有哪些优缺点?Redis 如何实现扩容?

Netty 是如何使用线程池的,为什么这么使用

为什么要使用 Spring,Spring 的优缺点有哪些

Spring 的 IOC 容器初始化流程

Spring 的 IOC 容器实现原理,为什么可以通过 byName 和 ByType 找到 Bean

Spring AOP 实现原理

消息中间件是如何实现的,技术难点有哪些

三、系统架构

如何搭建一个高可用系统

哪些设计模式可以增加系统的可扩展性

介绍设计模式,如模板模式,命令模式,策略模式,适配器模式、桥接模式、装饰模式,观察者模式,状态式,访问者模式。

抽象能力,怎么提高研发效率。

什么是高内聚低耦合,请举例子如何实现

什么情况用接口,什么情况用消息

如果 AB 两个系统互相依赖,如何解除依赖

如何写一篇设计文档,目录是什么

什么场景应该拆分系统,什么场景应该合并系统

系统和模块的区别,分别在什么场景下使用

四、分布式系统

分布式事务,两阶段提交。

如何实现分布式锁

如何实现分布式 Session

如何保证消息的一致性

负载均衡

正向代理(客户端代理)和反向代理(服务器端代理)

CDN 实现原理

怎么提升系统的 QPS 和吞吐量

五、实战能力

有没有处理过线上问题?出现内存泄露,CPU 利用率标高,应用无响应时如何处理的。

开发中有没有遇到什么技术问题?如何解决的

如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能。

新浪微博是如何实现把微博推给订阅者

Google 是如何在一秒内把搜索结果返回给用户的。

12306 网站的订票系统如何实现,如何保证不会票不被超卖。

如何实现一个秒杀系统,保证只有几位用户能买到某件商品。

六、软能力

如何学习一项新技术,比如如何学习 Java 的,重点学习什么

有关注哪些新的技术

工作任务非常多非常杂时如何处理

项目出现延迟如何处理

和同事的设计思路不一样怎么处理

如何保证开发质量

职业规划是什么?短期,长期目标是什么

团队的规划是什么

能介绍下从工作到现在自己的成长在那里

技术总结:

表示层:spring mvc 3.1 + annotation

控制层:spring 3.1

持久层:hibernate 3.6 +jdbcTemplate

后台列表控件:displaytag 1.2

Ajax 框架: DWR 3

JS 框架 : Jquery

缓存机制:spring 3.1 cache + ehcache/memcached

静态化机制: Freemarker 静态化/spring mvc 伪静态化

页面技术: EL + JSTL +JSP

安全框架 spring security

搜索引擎: Lucene

中文分词:IKAnalyzer

模板引擎: apache tiles 2.22

Linux、nginx、php、mysql,几乎是标配

部署视图所需:

数据库: mysql

Web 服务器: windows 下用 apache, linux 下用 ngnix

应用服务器: Tomcat Jboss,tomcat,weblogic

思想总结:

  1. 技术只是解决问题的基础、是工具
  2. 架构师的作用就是第一满足业务需求,第二最低的硬件网络成本和技术维护成本
  3. 架构师还要根据业务发展阶段,提前预见发展到下一个阶段系统架构的解决方案,做到易于升级
  4. 系统化的学习工作所需要的是基础知识,而不是到百度或谷歌查资料解决。
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    944 引用 • 1459 回帖 • 17 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    153 引用 • 3783 回帖 • 1 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 483 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 550 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    105 引用 • 127 回帖 • 382 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 1 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 664 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    286 引用 • 729 回帖
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    75 引用 • 1737 回帖 • 3 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 130 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 4 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 4 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 787 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 73 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 477 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖
  • 导航

    各种网址链接、内容导航。

    40 引用 • 173 回帖
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖 • 1 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖