这次面试的是一家上市公司,主要是做支付、交易这块的。
笔试:
最后两道解答题
1.写个方法:翻转字符串
2.写个单例模式
一面:
大致内容是
- 先来一段自我介绍
- 讲一下JDK中的线程池
答:JDK的Excutors提供了一些默认线程池,但这些线程池的等待队列是无界的,阿里的编程手册上也不建议使用,一般使用ThreadPool类手动创建。
- 编码中用过哪些设计模式
- 有没做过sql优化,怎么做的
- 讲下ArrayList与LinkedList的区别
答:主要区别是数据结构上的差异,ArrayList内部结构是数组,LinkedList是链表。
- 结合简历上的项目了解下之前的项目情况和负责的模块
- 平时有什么爱好
答:编程、看书、打游戏
- 什么游戏,LOL么
答:不,一般玩FPS。(哈哈)
一面问的问题主要是之前的项目经验,和一些JDK的基础部分,整个过程比较轻松,面试官是个年轻人,对于问题也没刨根问底,接下来就是悲剧的二面了。
二面:
二面是个中年男子面试,较为严肃,节奏一直把控他那边,有点难受,不像一面那样缓和。
- 为什么从上家公司离职
- class与interface有什么不同
- java常用集合类有哪些
- mysql有哪些存储引擎,区别有哪些
- 简历上写了熟悉springframework,那说下spring主要提供了什么
答:aop和ioc两块功能
- IOC是什么,实现原理是什么(真想把熟悉二字改为用过。。。)
- springMVC请求过程
- redis有哪些命令操作符
- 说下redis sub/pub实现原理
- springcloud是怎么运用的
- eurake注册发现机制是怎么实现的
几个原理的提问回答的磕磕绊绊,有些基础内容也记忆的不牢固,一段时间的问答后面试官说看来不太合适,基础需要加强。
spring这块确实没有系统看过,原理这块答的不好,redis之前也是简单用了下,翻了翻《redis的设计与实现》,导致一些基础命令都答不上来。之后要补足基础浏览源码,目前暂时先记一下这些套路的面试题吧~