面试官是真的好。。。一直在说我紧张,安慰我不要紧张,还给我引导和提示。其实我就是不会而已😭
自我介绍
基础知识
在java中用到的集合类
list、map、set的应用场景
list和map查询的速度谁快谁慢
map不同版本下的实现方式(还是要好好看map)
解释一下map的桶结构
hashcode的作用
hashset和hashmap对加入的值有什么要求
hashmap中的hashcode计算的是key还是value
hashcode的计算方法有什么要求
hashmap插入的value要注意什么
hashcode和equals重写的方法
你的项目中使用数据库的时候如何编写的代码使用或实现事务
在写代码的时候最常见的报错
oom?(看来这个以后不能乱说。。。)
下标越界
如何避免下标越界?给初学者一些建议
引导:什么情况下容易产生下标越界的这个错误
循环、快慢指针、i+2
什么时候会用到快慢指针,归并排序
算法题:
给一个大小为100,没有重复的数组,找出其中相加和为100的数字对
解1:快速排序然后首位匹配
两部分的时间复杂度分别是多少,总共是多少
如果用暴力解法时间复杂度是多少?——n方
如果用java现有的结构有没有其他解法呢?
解2:用一个set的容器,因为数组中的数都不重复,第一次遍历把所有的值都put进去,第二次遍历查找是否contains(100-x)
时间复杂度是多少?因为只要两次循环,所以时间复杂度是n😂(我想到contains方法肯定也会耗费时间了,但是不知道时间复杂度,所以故意没说,面试官想了一会,好像没想出哪里不对,有点无语,放我过去了😂)
最后面试官说还不错,,,但是我实在太紧张了,所以发挥的不太好,如果下一轮还这样的话就不能保证怎么样了
这面试官也太好了,还替我找理由 /捂脸笑哭