老虎证券java开发实习一面
1.自我介绍 讲了下项目
2.计网 http和https区别
3.数据库ACID 事务隔离级别 发生幻读有什么影响? 数据库中select、update等操作的具体过程(我答了先从索引中寻找 并确定访问的行或表是否加锁 再执行操作)
4.java中集合有哪些 ArrayList和Linkedlsit有啥区别? Java中Object类有啥方法?(没答上来啥 但是后面有再cue) 再问了个啥问题我忘了 不会 但是引导着说我看了写源码比如hashMap底层原理 然后就问了我put实现过程 期间答了hashCode()、equals()等方法 ,面试官说这就是Object类的方法,问我还有没有其他的,我说了个compareTo(),面试官说这个问题过了哈哈哈;
5.撕代码了
给定一个有序数组{-4,-2,-1,0,1,4,5} 将其按照绝对值重新排序,输出排序数组{0,-1,1,-2,-4,4,5},时间复杂度O(n),空间复杂度O(n)。
思路:利用原数组有序的性质,先确定数组中绝对值最小的数min,获取其下标index,判断若index==0;那么输出原数组即可,若index==len-1,逆序输出数组即可。不是上述情况的话,将min放到输出数组的第一位,然后维护双指针 ptr1=index-1,ptr2=index+1, 从index向两端遍历原数组即可,挨个将遍历到的数放进输出数组。
进阶:如何优化上述算法 提示优化寻找原数组中绝对值最小元素min的搜索算法,我原来写的是顺序遍历,要优化值O(logn),显然用二分查找即可,但是细节有问题。
6.时间到了 有什么要问的么? 问了问算法思路 面试官说会后自己在处理下细节吧。然后和我说今天二面面试官有事情,后面hr会和我再约面试时间的。面试官很好
#实习##面经##Java工程师##老虎集团#