大公司面试喜欢问的Java问题都有哪些?
来源:互联网 发布:c语言小游戏五子棋 编辑:程序博客网 时间:2024/05/01 05:48
进入一线互联网公司是很多程序员的梦想,但是很多人好不容易有机会面试却遗憾以失败告终,大公司的面试题目真的有那么难吗?有没有什么共性呢?
最近看了一些大公司Java面试的题目,发现确实有不少共性,比方说对于JAVA集合类的使用都比较重视,比方说基础知识都是必考项目,比方说几乎都会有一道测验品行的题目......小编为大家总结了技术层面大公司面试时的一些共性问题,空闲的时候就学起来吧,现在正是跳槽旺季,也是大公司的招聘需求最高的时候,希望能够对大家接下来的面试有所帮助。
接口:Collection
中所周知,Collection是最基本的集合接口,一个Collection代表一组Object,也就是Collection的元素(Elements)。有的Collection允许相同的元素但有些却做不到,同理于一部分能排序有些部分却不支持。Java SDK提供的类都是继承自Collection的“子接口”,例如List和Set,但是不提供直接继承自Collection的类。
用Iterator模式实现遍历集合
Collection有一个很重要的方法:iterator(),返回一个Iterator(迭代器),用于遍历集合的所有元素。Iterator模式能够把访问逻辑从不同的集合类中抽象出来,以达到避免向客户端暴露集合的内部结构的目的。比较典型的用法就是:
Iterator it = collection.iterator(); // 获得一个迭代器
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
另外,由Collection接口衍生出来的两个接口是List和Set。
List接口
List属于有序的Collection,通过这个接口可以精确的控制每个元素插入的位置。用户可以通过索引来访问List中的元素,这就类似于Java的数组。接下来我们还会提及set,二者不一样的地方就在于,List是允许有相同元素的。
除此之外不得不提,List还提供了另外一个listIterator()方法,返回一个ListIterator接口,跟标准的Iterator接口相比,ListIterator多了一些add()之类的方法,并且能够添加、删除、设定元素,并且可以向前或者向后遍历。
另外不得不提的就是,实现List接口的常用类有LinkedList、ArrayList、Vector、Stack等等。
Set接口
Set是一种不包含重复的元素的Collection,也就是说任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。显然,Set的构造函数是有约束条件的,传入的Collection参数不能包含重复的元素。
另外需要重点强调的就是:一定要小心操作可变对象(Mutable Object)。如果说一个Set中的可变元素改变了自身状态导致Object.equals(Object)=true可能会导致某些问题出现。
关于Java集合类的问题和重要知识点还有很多,不仅仅是理论上的,还有很多实际操作中的经验问题,这些对于面试都是十分重要的。由于时间和篇幅的限制,小编就先为大家总结到这里,接下来小编还会为大家持续推送Java集合类的问题和知识点,助力新年面试新工作拿到心仪offer。
另外大家对于面试或者Java方面的只是还有什么疑问,有哪些点是希望小编进行总结推送的,欢迎留言讨论,小编将尽力满足大家的需求。当然,如果你有更好的想法或建议,也欢迎留言讨论,我们一直坚持独乐乐不如众乐乐,好的idea当然要分享出来才能吧价值最大化。
欢迎关注微信公众号【中软卓越北京EEC】
- 大公司面试喜欢问的Java问题都有哪些?
- JAVA集合类(大公司面试喜欢问的)
- JAVA集合类(大公司面试喜欢问的)
- JAVA集合类(大公司面试喜欢问的)
- JAVA集合类(大公司面试喜欢问的)
- JAVA集合类(大公司面试喜欢问的)
- JAVA集合类(大公司面试喜欢问的)
- JAVA集合类(大公司面试喜欢问的)
- 【JAVA集合类(大公司面试喜欢问的) 】
- JAVA集合类(大公司面试喜欢问的)
- Java集合类(大公司面试喜欢问的)
- JAVA集合类(大公司面试喜欢问的)
- 黑马程序员 JAVA集合类(大公司面试喜欢问的)
- 各大互联网公司java开发面试常问问题
- 面试的时候喜欢问的跟公司有关的问题
- 网络工程师面试时喜欢问的问题
- 2017年JAVA后端web开发工程师面试各大公司比较【热门的公司基本都有】
- 大公司c#&.net转型java的原因有哪些?
- 四大非关系型数据库类型,你知道多少
- apt-get和dpkg区别
- 腾讯2016研发工程师编程题(两题)
- vue.js 微信浏览器不支持lambda表达式
- Eclipse-设置字体、配置JRE和Maven
- 大公司面试喜欢问的Java问题都有哪些?
- UILabel的详解
- css sprite简单快速的教程。
- java如何计算程序运行时间
- 工作小计
- 使用MVP+Retrofit+rxjava让你的代码更简洁
- pandas 自定义函数方法
- 论专注
- 第十六周:108. Convert Sorted Array to Binary Search Tree