面试新东方,java集合框架把我问懵了

今天视频面试了新东方,笔试题还算可以,涵盖面很广,多数都是牛客网上的题,笔试用了30分钟吧。有想知道笔试题的小伙伴私聊,这里就不展示了。

由于疫情期间,没去现场面试,是在钉钉上进行的视频面试。两个人都相互带着口罩,讲实话挺不舒服的。由于网络原因,一开始的通话质量不清晰,我感觉会影响面试效果。

常规自我介绍,说一下做过的项目,哪里出彩,之前公司是哪些等等。然后面试官看了看我的简历后,也没问业务,开始让我介绍一下集合框架。我印象中的集合框架就是collection,List、Map,这些算是项目中经常用到的,用来存取数据的。

然后让我以list举例,说说他的子集还有什么,Map的子集、实现接口都有什么。我承认我当时懵了,常用的arraylist、hashmap还算了解,面试题上见过,hashtable、hashset、set等,但是细细追问我一定答不上来,我就以list举例,简单说了说数据结构,和自己的源码。因为自己研究过hashmap源码及其数据结构,就深入地说了一下hashmap源码及设计。以为这样就可以了,面试官继续追问,讲讲set和list的区别。

list,set一个是有序集合,一个是无序集合。list可以存相同数据,set不能存相同数据。这些我还是知道的,但是面试官问set的源码,我只能承认自己没看过,set用的不多。

然后又问linklist的数据结构和源码,数据结构时链表结构,linklist的查询速度比arraylist速度慢,但是对元素进行操作的话,效率比arraylist高,因为他是链表的数据结构,每个元素会记录他的前一位和后一位,定位某一元素很便捷,不需要像arraylist那样遍历。接下来又是问源码,为什么这样设计。我只能承认这个用的很少,没看过源码。

关于集合框架后面又问到了hashtable和hashmap 的区别,哪个是线程安全的,为什么线程安全。我自己最近写项目的时候用到了

ConcurrentHashMap这是个线程安全的map,源码没来得急看,项目太紧,但是搜了一下他的特点,也算应付过去了。

还问了collection和collections的区别,前者是集合接口,后这是集合工具类。这个我还是知道的。

还问了treemap和treeset的数据结构,这两个我依稀记得做界面树结构的时候用过,用自己的经验糊弄过去了。

集合也就是告一段落了,也发现自己每天都在用集合框架,但是对于集合的整个体系了解的并不深入。

我会陆续整理一下java集合框架的整体知识和各个子集、接口、实现类的特点和源码分析。

接下来的面试过程就十分快了,问问用过哪些分布式框架、redis的数据结构、mysql数据隔离级别、mysql数据库默认隔离级别、spring有哪些传播行为。

我当时感觉自己凉了,半个小时后视频面试结束了。面试没通过,原因是分布式知识了解的太少。

作为一个传统项目开发人员,对这个结果我无力反驳,自己学习和实际项目经验上,自己的分布式经验确实不够,隔行如隔山。随着互联网的高速发展,项目架构正在不断进化,但是传统行业的技术变革有些跟不上时代的脚步。

这次面试虽然没有通过,但是激发起了我对分布式架构和新技术的向往,我想去互联网公司,我要努力学习新技术了。

 

你可能感兴趣的:(面试)