上海卫瓴科技-java方向一面、二面
今天面完二面技术总监面感觉自己凉凉了,写个 面经 看看能不能攒攒人品或者攒个好运也行😖😖😖
2.问项目,问的是一个SSM项目,大概介绍一下项目内容,自己负责的部分,问你负责的部分用到了什么表,表里的字段有哪些,简单介绍一下,这部分没怎么深挖。
一面——技术面
1.自我介绍2.问项目,问的是一个SSM项目,大概介绍一下项目内容,自己负责的部分,问你负责的部分用到了什么表,表里的字段有哪些,简单介绍一下,这部分没怎么深挖。
3.简述一下线程、进程,线程的生命周期和状态
4.创建线程的方式有哪些?
5.说一下线程运行时的数据区域?
6.程序计数器有什么用?
7.sleep()和wait()的区别?
8.了不了解线程池,说说看你的理解?
9.说一下Java中的集合框架,List有哪些,一个个说一下,LinkedList有序是什么意思?你说的有序是数值有序还是物理有序?(我:数值有序吧 面试官:数值有序的话,我们为什么还需要排序呢,如果我输入 1 2 1,你觉得结果会是什么?我:1 1 2吧? 面试官:有序是指物理有序 ...后面有点记不清了)
10.HashMap的初始容量是多少?如果之后我要扩容,怎么扩容?
11.说一下什么是事务,事务的四大特性
12.mysql索引有哪些?平时用哪种索引多一些?
13.说说事务隔离级别?
14.#{} 、 ${}有什么区别?为什么在mybatis中使用#{}比较多?
15.说一下排序算法,我们来共享屏幕写一下快排
16.你写的target = array[start]是要用来做什么?(作为一个枢轴,比它小的左移,大的右移)
17.为什么要递归使用quickSort?
18.在这个快排算法中,创建的对象放在哪里?你的变量数据放在哪里?你这个递归的语句放在哪里?
18.在这个快排算法中,创建的对象放在哪里?你的变量数据放在哪里?你这个递归的语句放在哪里?
一面现在只记得这些,其他记不清楚了,但是面试官问的很详细,是真的很详细。
-----------------------------------------------------------------------------------------------------------------------
二面——技术总监面
1.先做个自我介绍
2.你在学校学过数据结构、数据库是吧?学的怎么样?
3.你参加过数学建模建赛,你主要是负责什么的?能讲讲你们建模的内容吗?
4.开始问项目,问的是我一个java课设的项目;(中国象棋联机版)跟我介绍一下你这个项目。我:balalala
5.你这个项目有客户端和服务器端,你是怎么传送数据的?(我:我是用一个客户端来替代履行服务器端角色,不是真正的网络传输)
6.你客户端和服务器端的代码基本上是一样的?没有考虑代码复用吗?(我:当时没考虑...)
7.项目有用到多线程,能讲讲吗?(我:开始游戏后,启动线程,主要用来执行棋盘上的事件,比如有个鼠标监听,会对棋子的移动进行监听 面试官:那你的线程主要是要负责监听是吗? 我:是的...)
8.怎么判断走棋是否正确?(我:balalala)
9.你的移动判断方法多长?在实际项目中,方法写的太长会出现问题,你有什么办法可以优化一下吗?(我:把每个棋子的移动判断方法单独写出来。面试官:那还是有很多方法被写出来了,有没有其他优化方法? 我:暂时想不到... )
10.项目应该就是问了这些,其他有点想不起来了
11.说说数据库的索引,哈希索引和BTree索引有什么区别?(这个我没想出来,但是还是硬编了 我:BTree索引使用B+树,可以支持更大范围的查找,数量级可以更大,哈希索引多使用在单条记录的查询)
12.BTree用到了B+树,那你说说B+树?为什么要使用B+树,不用别的?(我:提高查找效率,有点类似平衡二叉树...)
13.类似平衡二叉树?你举个例子说一下,哪些用到了平衡二叉树?(我:HashMap的底层数据结构在jdk1.8后使用了数组+链表/红黑树)
14.你有了解过红黑树吗?说一说
15.既然你说了B+树那么多的好处,那为什么HashMap底层数据使用数组+链表/红黑树,而不用B+树?(我:疯狂冒汗,实在是打不上来了...)
16.行吧,那我们做一道题目,一个二叉树除了左孩子、右孩子,还有一个next孩子,这个next孩子指向当前结点的右兄弟结点,若没有右兄弟就指向null,你写一个next的初始化算法,给这个二叉树结点的next都有对应数据。(使用层序遍历实现)
面试官说的代码复用和优化移动算法,之后想了一下,可能是用接口和抽象来实现。最后的算法题也没有写出来,想复杂了,面试官一说用层序遍历时,我整个人恍然大悟,我可真是个榆木脑袋啊!!!怎么就跟卡住了一样,没想到呢!!!😭😭😭😭😭
#面试题目#