因为近期一次大公司的招人的机会,作者有幸参加了一次大公司的面试,体验了一套完整的流程:
大体面试过程是这样的:
第一轮:
机试:因为公司用的是自己的框架,所以对基础考究的比较深入:
这里记录四道面试题,有兴趣可以想一想如何解决:
第一题:写一种单例模式的实现方式(这里作者用的静态内部类的方式,因为随处都可以找到,这里就不附上代码了)
第二题:判断一个数组a[] 和b[] 判断在a中但是不在b数组中的数,并返回一个int[] 数组的方式(这里作者使用set的方式,判断是否contains的方式)
第三题:数羊,一共有32只羊,16只山羊,16只绵羊,请问如何排序才能保证,每次从1开始数到7被丢下去的都是山羊
第四题:
4. 现有一个繁殖数列,数列最大值为maxNum(数字maxNum将由出题程序随机生成);请
- 根据数列的最大值maxNum推算出一个最大长度的繁殖数列,并将其放入数组作为返回结果
- 例如:给出最大数 1200, 子序列为
-
1,1199,1200
-
450,100,550,650,1200
-
28,18,46,110,174,284,485,742,1200
-
...
- 最大长度可能有多个,给出一个即可
第五题:
5. 最短路径的方案个数
* 假设有A,B,C三个点,求A到C并经过B的最短路径个数思路
* 先求出A到B之间的个数,然后求出B到C之间的个数,然后将两个数相乘即可!
第二轮面试:
1.请阐述你用到的集合,一般是collection里面的list,set,map 及其子类,并阐述一些线程安全的注意事项
2.hashMap和hashTable之间的区别,以及hashMap的解决方式(可以加锁,或者使用currentHashMap的方式,解决线程安全的问题)
3.请说出工作中常用的一些工具类,BeanUtils,ExcelUtils,StringUtils,FileUtils,DateUtils之类的东西(这里是作者常用的)
4.请问是否有过远程调试的经历(项目上线之后如何调试,一般是看日志,然后在本地想办法复现)
5.判断字符串中包含数字的方法(这里提供三种思路,1.遍历使用String的contains方法,2.使用正则表达式,3.可以将string转化成char[] 数组的方式,然后判断ASCII 码是否在67-92之中)
第三轮面试:
第三轮面试本来之前说好的是面试题,没想到临时变卦说,改成了机试题,具体题目如下:
1.求一个当x = 7.5时f(x) = 1.2xxx + 6xx + 3.2的导数的值
2.计算一个斐波拉契数列的32位的值,具体 1,1,2,3,5后一个数等于前一两个数之和的数据
3.计算一个小正方体的剩下的块数(这里有图展示,就列举出来了)
这里告诉大家面试结果,哈哈哈,我没过,但是我很开心(可能因为是大公司吧,然后硬性要求比较多,因为毕业年限不够,所有,没有过(作者才毕业3个月),公司招聘要求是2年以上,至于其它2个人没有过我就不知道了,反正还是很开心的),写到这里突然想到,可能这是一次尝试,虽然失败了,但是还有再来一次,很多次的资本,因为年轻经得起折腾,还能继续谋求新的工作,更多的是,希望能有一个好的自主学习的能力和持续性的动力吧,这样才能走的更远。