一:数据结构算法
主要是掌握算法的思想,以及常见的经典排序、查找等算法,以及如今的大数据算法。
二:Java高级进阶
集合
非常重要,也是阿里面试必问的内容。基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。
集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,能流利作答,当然能掌握CopyOnWrite容器和Queue是再好不过的了。另外多说一句,ConcurrentHashMap的问题在面试中问得特别多,大概是因为这个类可以衍生出非常多的问题,关于ConcurrentHashMap。
(1)ConcurrentHashMap的锁分段技术
(2)ConcurrentHashMap的读是否要加锁,为什么
(3)ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器
java高级特性
多线程、JVM不管是开发,还是面试跳槽,都是重中之重。
多线程:多线程同步、锁这块也是重点。
(1)synchronized和ReentrantLock的区别
(2)synchronized锁普通方法和锁静态方法
(3)死锁的原理及排查方法等等
(4)以及线程池等
(5)多线程的状态,以及状态之间的切换
JVM:从内存分配,再到内存的回收算法等。
(1)Java虚拟机的内存布局
(2)GC算法及几种垃圾收集器
(3)类加载机制,也就是双亲委派模型
(4)Java内存模型
(5)内存的回收算法
(6)volatile关键字使用规则
异常处理
(1)throwable、 exception 、error 、RuntimeException的区别
(2)异常的处理机制
(3)异常处理的技巧
(4)异常处理的原则
三:Linux
掌握linux的常用命令,以及常见的线上故障需要的linux知识,如果能深入了解linux系统原理就更好了。
四:性能调优和线上故障处理
性能工具
(1)visualVM
(2)Jprofiler
(3) JMeter等
线上故障
(1)线程数超标
(2)访问超时
(3)长事务
(4)CPU超标
(5)内存超标
调优工具
Web前端调试
(1)firebug
(2)Web Developer
(3)JavaScript Debugger
(4)Yslow
构建工具
(1)maven Grails
(2)maven私服 nexus
五:主流开发框架
经典的SSM
阿里中间件开源框架
六:设计模式
设计模式基本是代码的重构能力,避免重复造轮子,常见的创建型、结构型等模式需要掌握。
七:大型网站技术架构设计
- 工程拆分原则
- 数据库拆分原则
- 分布式缓存选型
- 消息队列选型与评估
- 单点登录的原理和设计
- 微服务架构
- 分库分表读写分离
- 性能调优原则
- 高并发设计方案
- 双11秒杀架构设计
- 框架选择原则
- 安全设计原则
- Nosql选择原则等
以上架构设计原则:数据库垂直拆分、消息队列选型、双11秒杀、高并发技术方案、分布式缓存选型与比较、单点登录、分库分表、NoSQL选型等架构设计原则已经分享完结,关注后可查看。
八:架构前瞻性
重点是业务的理解能力,以及配合技术的前瞻性。
最后,架构师总结:
(1)底层算法和数据结构
(2)Java高级进阶
(3)Linux操作系统
(4)框架:开发和中间件
(5)设计模式和UML
(6)大型网站架构设计
(7)架构前瞻性:业务和技术
PS: 老规矩,还是一样的,留言点赞转发关注后,私信【我要130】 送你 《2018最新阿里架构师面试130题》
閱讀更多 優知學院 的文章