菜鸟网络一面

1.自我介绍

首先做一下自我介绍,使用过什么技术之类的

我回答是工作了多少年,使用过spring mvc ,mybatis,数据库用过mysql,oracle之类的。技能点大体列举了一边

2.项目经验

介绍一下你最近参与的项目

我回答了我之前做过的移动营销的项目,介绍了大体是做什么业务的.

看了你写的工作职责有做项目组的难点模块代码攻克,可以聊一聊这部分的吗?

我回答包括

1.优化了一个全局异常处理 追问了怎么做的(ControllerAdvice) 

2.将我们的通信报文模块做了分层,区分为连接,发送报文,报文解析等.

3.用了策略模式去搭建理财产品的购买,赎回等操作

工作中应该遇到代码审核之类的事情,你觉得可以审核什么

1.命名 驼峰,最好不要中文和英文混搭

2.数据库表的 idx t_ _bak 之类的命名

3.比如说做了全局异常 就最好不做代码的catch 捕获异常之类的

3.Spring框架

可以介绍下Spring MVC吗?

问题比较大,我就介绍了一下 DI(IOC) 和 AOP

说一下AOP的理解

聊了一下AOP可以做日志啊 还有权限之类的事情。说了一下基于注解的 Aspect before 之类的注解还有含义

那谈一下AOP是用什么实现的

Spring AOP可以使用JDK的或者cglib去实现AOP 这里感觉是不是有第三种实现 不过我不知道了

JDK和CGLIB实现有什么区别吗?

介绍了JDK是自带的 基于接口实现的 官方说速度稍微慢一些的

CGLIB是基于字节码实现的 不过需要继承 不需要接口 速度会稍微快一点 不过需要继承额外的包

4.数据库调优

慢sql怎么解决

说可以看解释计划,去尽量使用索引 避免全表扫描

怎么查找慢sql

oracle会有全局的sql执行时间统计 慢sql不仅是执行慢 还需要结合频次

如果有多个字段查询 怎么调优

组合索引,最左原则

为什么数据库有最左原则

索引使用的是B+树的原因

B+树可以介绍下吗?

介绍了B+树和B树的区别 叶子节点存储数据 非叶子节点不存储数据 具体的不按照套路出牌一时忘记了

PS:不问我和B树的区别都不好发挥了

 

5.Linux调优

用过什么linux命令调优的

1.网络的用过 netstat 查看网络状态

2.cpu 用top

3.io 用过iostat

4.使用jconsole可以查看JVM详细信息

查看网络状态的时候聊到打开连接不关闭,应该是什么状态

回答ESTABXXX 不记得了 关闭是CLOSED

连接的默认时间是三十分钟,怎么解决这个问题呢

一时没想起来,提醒后记起来了用 socket的超时时间设置去解决

6.JAVA底层

平时有没有读过什么源码

读过集合类的源码 其它的不知道

那可以介绍一下常用的集合类和实现吗?

LIST SET QUEUE MAP介绍了一下 

可以介绍一下HashMap的底层源码和put做了什么事情吗

哈系桶+链表

HashMap怎么做扩容的

0.75的散列因子 size*2

怎么防止扩容

设置合适的初始大小

HashSet的实现

回答和HashMap的哈希桶原理一样 加了set的去重 源码没有看 这个被问出来了 我也不是很确认

7.面试者提问环节

没有问题 等待下一轮面试 如果有的话

猜你喜欢

转载自www.cnblogs.com/reload-sun/p/12216782.html