2019 有赞面经,已拿 offer(附答案和思路)
一面:(36min)
面试官人很好,问的比较细,但是我不会的地方会慢慢引导。
1、自我介绍
自我介绍可分为三层,第一层介绍基本信息;第二层介绍实习经历和项目经理及自己擅长的技术栈;第三层简单说下你的性格兴趣爱好等。自我介绍时间把握在 1-2 分钟,把自己的优势和擅长点讲出来。平时可以对着镜子多练练,讲的清楚比什么都重要。
2、java 基础
java 的集合看过源码么?HashMap? 自己说了下 jdk1.7 和 1.8 的区别(说了头插和尾插,然后面试官问这个是基于什么考虑的?还有什么?答了链表数量大于 8 的时候会转成红黑数,然后问我了解红黑树么?为什么红黑树只有红色和黑色?)HashMap 在多线程的情况下线程安全么?(答得扩容时出现,为什么?多线程已经出现了环,也就是死循环,去查找会出现什么情况?HashMap 在扩容的时候允许其他线程去查找么【一个线程在扩容,另一个线程在查找】?)
3、数据结构
链表常用的数据结构?ArrayList 和 LinkedList 的区别?
Hashmap 面试的信息量很大,面试官抛出一个点,往往希望面试者能较全面的去拓展回答。另一方面,数据结构的直接应用场景就是集合框架,所以集合框架的底层往往离不开数据结构。
针对数据结构和集合框架,可以看看以下两篇文章:
10 个数据结构高频知识点 (建议收藏)
精心整理 20 道高频 Java 集合面试题 (建议收藏)
4、TCP/IP
介绍下计算机网络常见的 7 层模型或者 TCP/IP 模型?
参考:
https://blog.csdn.net/Yansky58685/article/details/98118124
5、HTTPS/HTTP
HTTPS 属于哪一层协议?和 HTTP 的区别?
应用层。区别参考:
https://blog.csdn.net/qq_38289815/article/details/80969419
6、进程通信
进程之间的通信方式?
五种通信方式的介绍:
https://www.cnblogs.com/zgq0/p/8780893.html
7、Spring
使用 Spring 主要实现什么特性?Ioc 和 AOP?AOP 怎么去实现的?为什么我写了个注解或者 Spring 的配置文件配置了就可以识别?延伸到代理模式(代理类和被代理类有什么关系)?适配器模式的区别?装饰器模式?
Spring 知识点总结:
https://blog.csdn.net/lz1170063911/article/details/79772474
23 种设计模式:
http://c.biancheng.net/design_pattern/
8、有什么想了解的么?
可以从公司情况出发。比如,您所在的组是做什么业务,用了哪些技术栈,接下去架构会怎么样去演变等等。
二面:(56min)
1、自我介绍
2、项目
讲一下第一个项目?第一个项目里边涉及到数据加密和解密的过程,你们是怎么处理的?
项目中主要对用户的登陆密码和支付密码进行加密,把用户明文密码 + 用户 ID 作为 MD5 函数的参数,进行加密,确保唯一性。
3、电商业务
电商平台的项目的架构图画一下?
业务架构
技术架构
4、Spring
Spring 中 AOP 的动态代理?流程?
一面的第 7 题。
5、大数据
storm 中怎么确保 spout 正确的传给下一个 bolt 即下一个 bolt 已经接收到?
从 Storm 如何保证可靠性传输的角度进行回答:
https://blog.csdn.net/echosilly/article/details/51674558
6、Dubbo
说一下 Dubbo 的架构?
Dubbo 是一个分布式服务框架,以及 SOA 治理方案。其功能主要包括:高性能 NIO 通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。
它有 5 个节点,分别是 Provider, Consumer, Registry, Monitor, Container。其中 Provider 是服务提供者, Consumer 是服务消费者,Registry 是服务进行注册和被发现的注册中心,Monitor 是统计服务的调用次数和调用时间的监控中心,Container 是服务运行容器。
他们之间调用的关系是:Container 负责启动,加载然后运行 Provider。Provider 在启动时会向注册中心注册自己提供的服务,Consumer 在启动时会向 Registry 订阅自己所需服务,此时 Registry 会返回 Provider 地址列表给 Consumer。如果地址有变更,Registry 会基于长连接推送变更数据给 Consumer。Consumer 会基于软负载均衡算法选一台提供者进行调用,如果调用失败,则再选一台。Provider 和 Consumer 在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到 Monitor。
7、zookeeper
说一下 zookeeper 的 leader 选举算法?
参考:
https://blog.csdn.net/zuochao_2013/article/details/82558592
8、redis
redis 作为缓存如何保证和数据库的一致性?
参考:
https://blog.csdn.net/qq_28740207/article/details/80877079
9、工作经历
讲一下你实习的时候做的工作?通过我说的内容问了很多问题
这边别讲太多无关琐事,针对项目讲几点熟悉的点,把面试官往里面带。别让面试觉得你做了东西很多,但又很浅,但也别为了所谓的高大上,给自己挖坑。
10、索引
了解辅助索引么?(说了聚簇和非聚簇)聚簇索引和非聚簇索引的区别?
参考:
https://www.cnblogs.com/qlqwjy/p/7770580.html
11、mybatis
mybatis?
mybatis 知识点:
https://blog.csdn.net/q957967519/article/details/82414366
12、springmvc
springmvc 的流程?
参考:
https://www.cnblogs.com/leskang/p/6101368.html
13、死锁
进程或者线程什么情况下发生死锁?
关于死锁:
https://blog.csdn.net/wljliujuan/article/details/79614019
14、锁
说说可重入锁和读锁?读锁的底层原理是什么?(当时引申到了乐观锁和悲观锁)
参考:
精心整理了 100 个 Java 多线程知识点
精心整理了 20 道常见数据库面试题 (建议收藏)
40 道高频 Javase 面试题及详细答案 (建议收藏)
三面:(38min)
1、自我介绍
2、学历
我看你本科是一个普通的二本,研究生是 985,你觉得你是怎么考上的?
3、专业
当时选专业是自己选的么?为什么选计算机?你们班女生学计算机的有多少?
4、耐心
会不会觉得写代码很枯燥?
5、你觉得实习过程中的最大收获有哪些?
6、人际关系
说下你的优点和缺点?你的老师是怎么评价你的?你周围的同学是怎么评价你的?从哪些事情上边可以体现出来?能举个例子么?
7、兴趣爱好
家是哪里的?有什么兴趣爱好?
8、有赞是你的第几志愿?为什么不选杭州的其他公司?
9、说一个最近做的项目?以后的职业规划是什么?
10、期望薪资是多少?现在手上有 offer 么?
11、有什么想问我的么?问了一下面试官对我的评价。
---end---