首先到了现场,核对所带材料信息,银行这方面要求很多,由于之前太多客观因素,导致面试当天的中午才准备完,其次,由于准备材料耽误的时间,导致没有时间再去进行复习,必须避免这种情况。
材料审查完,进行笔试,与之前不同的是,笔试过程中,如果被点到名字,就要去面试,面完回来继续笔试,第一次遇到这种情况,所幸,我做完了题,才被点到。
笔试题:
- Java基础考察,如类型转换问题,代码调用顺序问题,锁问题,集合问题等
- 逻辑题,根据已给出的图或者数字找规律
- 简答题:
(1)什么是单元测试,在开发过程中与其相关的工作有哪些
(2)Socket通信时,客户端与服务端进行了哪些操作
(3)列举出两种多线程的使用方式,给出一种常用的锁
(4)集群部署时,Session管理的方法有哪些,优缺点
(5)两张表,一张部门表,一张员工表,写SQL语句查询出各个部门各有多少个员工
面试:
- 自我介绍
- 为什么想跳槽
答:技术感觉达到瓶颈,想学到更多的新东西 - 达到瓶颈,没有自学么?
答:自学了,学了Redis,MongoDB等技术,并且将其应用到了项目里 - 熟悉哪几种数据库?
答:Oracle,MySQL
接着问:Oracle的优化了解么?
答:了解一些,加适当索引
接着问:如何加索引?
答:主键索引,外键索引,常用字段加索引
接着问:什么情况下会导致索引失效
答:查询时,加索引的字段,并没有按照相应的顺序进行查询,会导致失效(这里忘了什么情况下,需要复习)
接着问:关于项目中,你提到系统做过优化,那是怎么优化的?优化效果怎么样?
答:数据表加适当索引,优化效果将原来的5秒优化到3秒左右
接着问:3秒也很慢,不继续优化了?
答:觉得跟项目所选的框架有很大关系,因为用的hibernate框架,而且表与表之间有很多关联关系,导致查询时,会将关联表数据查出来,所以会导致速度比较慢,针对这一点,后期,做了项目的架构设计,采用mybatis进行替换,效果会好一些 - Redis的高可用性是怎么做的?
答:目前我所接触到的系统使用的是Redis主从,其他的方法我不是很清楚(这里还是有问题,需要复习) - 解释一下什么是死锁?
这里解释的不是很清楚,但是大致意思还是说明白了,但是表述很成问题,需要注意
接着问:怎么处理死锁?
答:不是很清楚 - 学过数据结构,能不能写出二叉查找算法
答:学过数据结构,但是很久时间没接触算法,目前写不出来。(需要注意)
总结
这次面试,事前准备不是很充分,自己对于常见面试的Redis,死锁等问题还是不够了解,需要继续学习