蚂蚁金服 Java 开发岗面试挂了以后,流泪总结了这份大厂常问面试题!
面试官也放弃了,直接问,项目中用到 Map 集合吧,用到过哪些 Map。自己就说了个最熟悉 HashMap。但是面试官好像不太想问这个,又问有没有用到过排好序的 Map,当时自己脑子短路了,没想 TreeMap 是排序的,当时竟然一时想不出有排好序的 Map,就说了没有排好序的 Map,但是可以实现 Compareble 接口来实现排序。肯定面试官也很无语,这送分题都不会啊!
又问 HashMap put 方法的时间复杂度,我说因为 HashMap 底层是数组加链表实现的,如果没有 hash 碰撞时间复杂度就是 O(1),有碰撞最坏情况就是 O(n)。然后看到我建立上有写线程池,就问了下创建线程池的具体参数的含义,这个没啥难的,然后又问线程池的缓存队列,然后又问是否自己去实现过缓存队列。最后一问完全不知道咋回答,因为平时都是直接使用现成的。
继续发问,问了下 JDK bin 目录下的工具除了 java javac 还有没有用过其他的。又问项目除了开发,有没有用到优化方面的。我想肯定是想问 JVM 方面的了。就说了下自己在测试环境服务老是启动没多久就挂了,自己调整了下堆内存的大小。其实当时只是试探性的加大了堆内存,根本没有怎么去分析过。
面试官问,你是根据什么觉得要去调整堆内存大小的,自己当时就慌了,因为没有实际做过,所以就说自己在启动项目的时候加了输出 GC 日志的命令,看到有很多 Full GC,所以就调整了。感觉面试官不是很满意。然后又问我你知道 JVM 垃圾回收机制吗?自己其实对 JVM 垃圾回收这一块还是挺熟悉的,但是这么一问自己一时不知道怎么回答,就把垃圾收集器说了一下,但是感觉不是很对。后来回来百度 JVM 垃圾回收机制,感觉都有说到 JVM 内存结构,对象可达性分析,垃圾回收算法,垃圾回收器都有讲到。其实自己这块挺熟悉的,但是一笼统的问 JVM 垃圾回收机制当时一直在想我该回答哪一块的内容。
最后面试官问了如果你要让现在做的项目更好,你会添加一些什么功能,但我想
了很久也没有想出来。面试官应该也很无语,但是不得不说面试官全程都是态度非常好,电话面试都能感受到面试官是一个又谦虚又有真才实学的人。
[](
)最后
=====================================================================
通过这次电话面试,我觉得自己还有很多底层知识需要巩固学习,所以最近一直在到处搜集一些 Java 学习资料以及互联网大厂面试题,在这里我也免费分享给准备面试的 Java 程序员朋友们,需要的自行领取!!
[最全学习笔记大厂真题+微服务+MySQL+分布式+SSM 框架+Java+Redis+数据结构与算法+网络+Linux+Spring 全家桶+JVM+高并发+各大学习思维脑图+面试集合](
)
评论