面了三个大厂,终于拿到offer,数年Java最经典的面试题总结
文章最后有面试题福利!记得看一下哦~
前言
写这篇文章的目的是因为前两天同学想应聘Java工程师,从网上找了Java面试题和答案让我帮忙看看。我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖。整篇题目30多个没有一个答案是对的,所以在这里总结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充。我的理解如果有错漏请一定指出,非常感谢!
Java面试知识点
技术广度
对MQ、缓存、NoSQL、大数据、高并发、高可用、微服务,等一系列的相关技术都有一定的了解,熟悉常见功能
在自己的项目里落地使用过,有一定的技术使用经验,这可以解释为技术广度。
技术深度
- 读过Kafka的底层源码?
- 对消息中间件的架构设计思想有深刻的理解?
- 对分布式事务框架/中间件的架构设计有过研究?
- 在每秒百万并发场景下做过底层系统的深入优化和故障处理?
- 如果你有类似这种过人之处,那么你才能说你有某些技术深度。
项目经验
- 你有没有整体负责过几亿注册用户,几千万日活用户的大规模、高并发、分布式、高可用、高复杂度的系统架构设计?
- 或者你负责的一直都是那种公司内部使用的,几十个人用的OA系统,CRM系统?
- 这些就是你的项目经验
团队管理
- 你在互联网公司里带过20的团队?
- 或者你在一个传统IT公司里带过3个人的小组?
- 这都是你的团队管理经验。
Dubbo面试题锦集
-
默认也推荐使用netty框架,还有mina。
-
默认是阻塞的,可以异步调用,没有返回值的可以这么做。
-
推荐使用zookeeper注册中心,还有redis等不推荐。
-
默认使用Hessian序列化,还有Duddo、FastJson、Java自带序列化。
-
服务失效踢出基于zookeeper的临时节点原理。
-
采用多版本开发,不影响旧版本。
-
可以结合zipkin实现分布式服务追踪。
-
核心配置有 dubbo:service/ dubbo:reference/ dubbo:protocol/ dubbo:registry/ dubbo:application/ dubbo:provider/ dubbo:consumer/ dubbo:method/
-
默认使用dubbo协议。
-
可以直连,修改配置即可,也可以通过telnet直接某个服务。
-
流程图见dubbo.io。
-
读操作建议使用Failover失败自动切换,默认重试两次其他服务器。写操作建议使用Failfast快速失败,发一次调用失败就立即报错。
-
使用过程中的问题可以百度
-
dubbox是当当网基于dubbo上做了一些扩展,如加了服务可restful调用,更新了开源组件等。
-
别的还有spring的spring cloud,facebook的thrift,twitter的finagle等。
Zookeeper面试集锦
-
zookeeper是一个开源的分布式协调服务框架。
-
应用场景:分布式通知/协调、负载均衡、配置中心、分布式锁、分布式队列等。
-
使用ZAB协议。
-
Paxos算法看最后文章推荐的书。
-
选举算法及流程看最后文章推荐的书。
-
节点类型:持久节点、持久顺序节点、临时节点、临时顺序节点。
-
不是永久的,一次性的,需要借助第三方工具实现重复注册。
-
部署模式:单机模式、伪集群模式、集群模式。
-
集群角色:leader、foller、observer。
-
集群规则为2N+1台,N>0,即3台。
-
集群需要一半以上的机器可用,所以,3台挂掉1台还能工作,2台不能。
-
3.5版本开始支持动态扩容。
-
java客户端:zk自带的zkclient及Apache开源的Curator。
-
chubby是google的,完全实现paxos算法,不开源。zookeeper是chubby的开源实现,使用zab协议,paxos算法的变种。
-
常用命令:ls get set create delete等。
小编给大家推荐一个Java技术交流群:967051845!群内提供设计模式、spring/mybatis源码分析、高并发与分布式、微服务、性能优化,面试题整合文档等免费资料!希望找到更多的同行多多交流!以下资料,进群可以免费获得哦