一、技术深度
有没有看过 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
思想总结:
- 技术只是解决问题的基础、是工具
- 架构师的作用就是第一满足业务需求,第二最低的硬件网络成本和技术维护成本
- 架构师还要根据业务发展阶段,提前预见发展到下一个阶段系统架构的解决方案,做到易于升级
- 系统化的学习工作所需要的是基础知识,而不是到百度或谷歌查资料解决。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于