很多同学想成为一名架构师,但是对于其中的技能掌握程度,以及编程功底的要求?下面这场架构师的面试你又能掌握多少呢?
一面
简短自我介绍
事务的ACID,其中把事务的隔离性详细解释一遍
脏读、幻影读、不可重复读
红黑树、二叉树的算法
平常用到哪些集合类?ArrayList和LinkedList区别?HashMap内部数据结构?ConcurrentHashMap分段锁?
jdk1.8中,对hashMap和concurrentHashMap做了哪些优化
如何解决hash冲突的,以及如果冲突了,怎么在hash表中找到目标值
synchronized 和 ReentranLock的区别?
ThreadLocal?应用场景?
Java GC机制?GC Roots有哪些?
MySQL行锁是否会有死锁的情况?
二面
乐观锁和悲观锁了解吗?JDK中涉及到乐观锁和悲观锁的内容?
Nginx负载均衡策略?
Nginx和其他负载均衡框架对比过吗?
Redis是单线程?
Redis高并发快的原因?
如何利用Redis处理热点数据
谈谈Redis哨兵、复制、集群
工作中技术优化过哪些?JVM、MySQL、代码等都谈谈
三面
Spring Cloud用到什么东西?如何实现负载均衡?服务挂了注册中心怎么判断?
网络编程nio和netty相关,netty的线程模型,零拷贝实现
分布式锁的实现你知道的有哪些?具体详细谈一种实现方式
高并发的应用场景,技术需要涉及到哪些?怎样来架构设计?
接着高并发的问题,谈到了秒杀等的技术应用:kafka、redis、mycat等
最后谈谈你参与过的项目,技术含量比较高的,相关的架构设计以及你负责哪些核心编码
以上就是大厂技术部Java面试题,你掌握了多少?(文末有面试答案文档分享)
另外小编简要从以下6点来谈,从技能的角度抛砖引玉成为实战型架构师的设计能力的要求有哪些?(文末有架构视频分享)
编程基本功:数据结构和算法
1.数据结构相关的哈希表、链表、二叉树等等
2.常见的算法有哪些?至少下图的算法我认为应该要掌握。
比如:HashMap如何扩容,重点就是考底层数据结构。
编程基本功:Java编程
这些都算是编程基本功底:多线程、JVM、并发容器、并发类、NIO等。
数据库
#重点就看图了,这里涉及的技术还是蛮多的,mysql、oracle、nosql相关的mongodb,以及如今大家都熟知的分库分表、读写分离等技术。
这些都是大家熟知的,我补充点设计相关的:数据库设计范式、索引、事务、数据库相关的慢查询、长事务。
这些也算是数据库技术的编程功底。
研发相关的框架工具
Java程序员对于下图应该都是比较熟悉的,这些框架与工具都是经常使用。
架构设计
谈到设计,就不得不提到项目中的概要设计和详细设计,这就会涉及到UML。
除此之外,整个项目的设计,这个时候考验你的架构设计能力
面试答案文档及架构视频分享
需要的朋友帮忙转发+关注私信回复“架构”即可获取!