您的位置 首页 java

Java面试技术问答宝典(19)——说出 JDK 1.7 中的三个新特性?

我们参加 Java 培训学习都是希望能够毕业后找到满意的工作,然而培训机构只是推荐就业,我们仍然需要进行面试,提高面试技术问答的正确率有助于增加面试官的满意度。本系列全面汇总了企业Java面试的技术问题,希望能够帮助大家。

本文列举的技术问题有:

  • 用哪两种方式来实现集合的排序?
  • 说出 jdk 1.7 中的三个新特性?
  • 说出 5 个 JDK 1.8 引入的新特性?
  • ArrayList 源码分析?

更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~

71、用哪两种方式来实现集合的排序?

你可以使用有序集合,如 TreeSet 或 TreeMap,你也可以使用有顺序的的集合,如 list,然后通过 Collections.sort() 来排序。

72、说出 JDK 1.7 中的三个新特性?

虽 然 JDK 1.7 不 像 JDK 5 和 8 一 样的 大版 本 ,但 是, 还 是有 很多 新的 特 性, 如try-with-resource 语句,这样你在使用流或者资源的时候,就不需要手动关闭,Java 会自动关闭。 Fork -Join 池某种程度上实现 Java 版的 Map -reduce。允许 Switch 中有 String 变量和文本。菱形操作符(<>)用于类型推断,不再需要在变量声明的右边申明 泛型 ,因此可以写出可读写更强、更简洁的代码。另一个值得一提的特性是改善异常处理,如允许在同一个catch 块中捕获多个异常。

73、说出 5 个 JDK 1.8 引入的新特性?

Java 8 在 Java 历史上是一个开创新的版本,下面 JDK 8 中 5 个主要的特性: Lambda 表达式 ,允许像对象一样传递匿名函数 Stream API,充分利用现代多核 CPU,可以写出很简洁的代码 Date 与 Time API,最终,有一个稳定、简单的日期和时间库可供你使用 扩展方法,现在,接口中可以有静态、默认方法。 重复注解,现在你可以将相同的注解在同一类型上使用多次。

74、ArrayList 源码分析?

(1)ArrayList 是一种变长的集合类,基于定长数组实现,使用默认构造方法初始化出来的容量是 10(1.7 之后都是延迟初始化,即第一次调用 add 方法添加元素的时候才将elementData 容量初始化为 10)。

(2)ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。ArrayList 扩容的长度是原长度的 1.5 倍

(3)由于 ArrayList 底层基于数组实现,所以其可以保证在 O(1) 复杂度下完成随机查找操作。

(4)ArrayList 是非 线程 安全类,并发环境下,多个线程同时操作 ArrayList,会引发不可预知的异常或错误。

(5)顺序添加很方便

(6)删除和插入需要复制数组,性能差(可以使用 LinkindList)

(7) Integer .MAX_VALUE – 8 :主要是考虑到不同的 JVM ,有的 JVM 会在加入一些数据头,当扩容后的容量大于 MAX_ARRAY_SIZE,我们会去比较最小需要容量和 MAX_ARRAY_SIZE 做比较,如果比它大, 只能取 Integer.MAX_VALUE,否则是 Integer.MAX_VALUE -8。 这个是从 jdk1.7 开始才有的

更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~

文章来源:智云一二三科技

文章标题:Java面试技术问答宝典(19)——说出 JDK 1.7 中的三个新特性?

文章地址:https://www.zhihuclub.com/175287.shtml

关于作者: 智云科技

热门文章

网站地图