码上未来IT培训老师直接接听

400-029-09** 400-029-0997 转 36015
查看完整号码
扫码拨号
微信扫码拨号

关于Java的相关面试题(十八)

作者:码上未来CodingFuture 来源:码上未来CodingFuture 2023年01月03日 更新

程序员面试干货来啦,今天小编就先为大家整理出5道大厂面试时常见关于 Java 的面试题。看看你能答对几道题呢!多多掌握此类面试题,就会增加面试通过的机率哦,后续还有其他类的面试题,请持续关注哟!1.Vector 和 ArrayList 的区别和联系 相同点: 1 )实现原理相同 --- 底层都使?数...

程序员面试干货来啦,今天小编就先为大家整理出5道大厂面试时常见关于 Java 的面试题。看看你能答对几道题呢!多多掌握此类面试题,就会增加面试通过的机率哦,后续还有其他类的面试题,请持续关注哟!
1.Vector 和 ArrayList 的区别和联系 相同点: 1 )实现原理相同 --- 底层都使⽤数组 2 )功能相同 --- 实现增删改查等操作的⽅法相似 3 )都是⻓度可变的数组结构,很多情况下可以互⽤ 不同点: 1 ) Vector 是早期 JDK 版本提供, ArrayList 是新版本替代 Vector 的 2 ) Vector 线程安全, ArrayList 重速度轻安全,线程⾮安全⻓度需增⻓时, Vector 默认增⻓⼀倍, ArrayList 增⻓ 50% 2.HashMap 和 Hashtable 的区别和联系 相同点: 实现原理相同,功能相同,底层都是哈希表结构,查询速度快,在很多情况下可以互⽤ 不同点: 1 、 Hashtable 是早期提供的接⼝, HashMap 是新版 JDK 提供的接⼝ 2 、 Hashtable 继承 Dictionary 类, HashMap 实现 Map 接⼝ 3 、 Hashtable 线程安全, HashMap 线程⾮安全 4 、 Hashtable 不允许 null 值, HashMap 允许 null 值 3.HashSet 的使⽤和原理( hashCode() 和 equals() ) 1 )哈希表的查询速度特别快,时间复杂度为 O ( 1 )。 2 ) HashMap 、 Hashtable 、 HashSet 这些集合采⽤的是哈希表结构,需要⽤到 hashCode 哈希码, hashCode 是⼀个整数值。 3 )系统类已经覆盖了 hashCode ⽅法 ⾃定义类如果要放⼊ hash 类集合,必须重写 hashcode 。如果不重写,调⽤的是 Object 的 hashcode ,⽽ Object 的 hashCode 实际上是地址。 4 )向哈希表中添加数据的原理:当向集合 Set 中增加对象时,⾸先集合计算要增加对象的 hashCode 码,根据该值来得到⼀个位置⽤来存放当前对象,如在该位 置没有⼀个对象存在的话,那么集合 Set 认为该对象在集合中不存在,直接增加进去。如果在该位置有⼀个对象存在的话,接着将准备增加到集合中的对象与该位置 上的对象进⾏ equals ⽅法⽐较,如果该 equals ⽅法返回 那么集合认为集合中不存在该对象,在进⾏⼀次散列,将该对象放到散列后计算出的新地址⾥。如果 equals ⽅法返回 true ,那么集合认为集合中已经存在该对象了,不会再将该对象增加到集合中了。 5 )在哈希表中判断两个元素是否重复要使⽤到 hashCode() 和 equals() 。 hashCode 决定数据在表中的存储位置,⽽ equals 判断是否存在相同数据。 6 ) : K 是函数, X 是哈希码, Y 是地址 4.TreeSet 的原理和使⽤( Comparable 和 Comparator ) 1 ) TreeSet 集合,元素不允许重复且有序 ( ⾃然顺序 ) 2 ) TreeSet 采⽤树结构存储数据,存⼊元素时需要和树中元素进⾏对⽐,需要指定⽐较策略。 3 )可以通过 Comparable( 外部⽐较器 ) 和 Comparator( 内部⽐较器 ) 来指定⽐较策略,实现了 Comparable 的系统类可以顺利存⼊ TreeSet 。⾃定义类可以实现 Comparable 接⼝来指定⽐较策略。 4 )可创建 Comparator 接⼝实现类来指定⽐较策略,并通过 TreeSet 构造⽅法参数传⼊。这种⽅式尤其对系统类⾮常适⽤。 5. 集合和数组的⽐较(为什么引⼊集合) 数组不是⾯向对象的,存在明显的缺陷,集合完全弥补了数组的⼀些缺点,⽐数组更灵活更实⽤,可⼤⼤提⾼软件的开发效率⽽且不同的集合框架类可适⽤于不 同场合。 具体如下: 1 )数组的效率⾼于集合类 . 2 )数组能存放基本数据类型和对象,⽽集合类中只能放对象。 3 )数组容量固定且⽆法动态改变,集合类容量动态改变。 4 )数组⽆法判断其中实际存有多少元素, length 只告诉了 array 的容量。 5 )集合有多种实现⽅式和不同的适⽤场合,⽽不像数组仅采⽤顺序表⽅式。 6 )集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的⽅法和属性调⽤即可实现各种复杂操作,⼤⼤提⾼软件的开发效率。 希望这些面试题对你有所帮助!下一期我们会有关于其他大厂面试题。别忘了关注我们的公众号哦,预防走丢! 最后愿你前程似锦,在冬深 在初春 在夏至在秋末 在码上未来! 码上未来,成就你更好的未来!
END
添加微信咨询
夏老师 @大连码上未来IT培训

资深职业咨询规划师

微信号:155******12

立即咨询

“大连码上未来IT培训”是码上未来科技(大连)有限公司在教育宝平台开设的店铺,若该店铺内信息涉嫌虚假或违法,请点击这里向教育宝反馈,我们将及时进行处理。

机构评分

环境:5.0师资:5.0服务:5.0效果:5.0

公示信息

店铺名称:大连码上未来IT培训

单位名称:码上未来科技(大连)有限公司

账号名称:mswl(158******92)

所属城市:辽宁大连

入驻时长:6年

在线客服:在线聊

微信咨询

返回顶部