CVTE 实习面试经历分享
抱着去玩玩的心态参加了 CVTE 的面试,分享一下面经回馈牛客网~
一面
- 实习经历,实习项目介绍
- MySQL
- 常用的存储引擎
- MyISAM 和 InnoDB 的区别
- 什么时候需要使用事务
- 查询优化方法
- 常用的存储引擎
- Git
- 手写 add, commit, push 命令
- 手写 remote 的添加和删除
- Git 和 SVN 的区别
- 项目相关(自己造的 Java Web 框架)
- 为什么要自己造框架
- AOP 的概念
- MVC 的实现原理
- 常用的 RPC 框架
- Dubbo 了不了解
- Dubbo 如何实现注册中心(Simple, Zookeeper, Redis, Multicast)
- 设计模式
- 常用的设计模式
- 手写单例模式(考虑线程安全问题)
- 算法(手写代码)
- 找出一个数组中出现次数超过一半的数字
二面
- 实习经历
- 实习项目的大致结构
- 使用了哪些框架
- 如何设计(MySQL)数据库表
- 如何解决慢查询
- 建立索引的原则
- 什么情况下索引不起作用
- 其他优化方法
- 并发量多大,如何解决高并发问题
- 项目相关(还是那个框架)
- 为什么要自己造框架
- 项目中最困难的地方
- AOP 的具体实现
- Spring AOP 的实现(AspectJ, 动态***)
- 本项目中 AOP 的实现
- 为什么没有参考 Spring
- 设计模式
- 21 种设计模式知道吗(当然不知道)
- 说出几种你常用的设计模式
- 画出某种模式的类图
- 手写某种模式的关键代码
- 一面中的单例模式
- 通过什么原理保证线程安全(volatile, double check)
- 如何防止单例类在外部被实例化(private 构造方法)
- 如何突破这个限制(反射)
- 如何避免通过反射实例化(写成 enum)
- 算法(现场提供电脑写代码)
- 找出一个数组中和为给定值的两个数
- 学习相关
- 平时会阅读开源框架相关的书吗
- 短期内有什么技术方面的计划