标题中的“LeetCode”是指一个在线编程挑战平台,专门用于提升程序员的算法和编程技能。在这个平台上,用户可以解决各种编程题目,其中很多是与数据结构和算法相关的。在Java 1.7中做一些leetcode问题表示作者正在使用Java 1.7版本来解答这些挑战,这可能是为了熟悉或复习Java语言的基础,或者准备面试等目的。而“希望以后迁移到Java 1.8”则暗示作者计划在未来将项目升级到Java 8,因为Java 1.8(也称为Java 8)引入了一些新的特性和改进,比如Lambda表达式、Stream API和方法引用来提高代码的简洁性和效率。

Java 1.7(也称为Java 7)是一个重要的Java发行版,包含了一些关键的更新,如try-with-resources语句,用于自动关闭资源;多捕获异常处理,使得一个catch块可以捕获多种类型的异常;以及类型推断,使得泛型的使用更加方便。然而,随着Java 1.8的发布,许多开发者转向了新版本,因为它引入了更多的现代化特性。

Java 1.8(Java 8)的主要特性包括:

  1. Lambda表达式:这是一种简洁的匿名函数表示方式,可以作为参数传递,也可以作为方法的结果返回。Lambda改善了处理函数接口的方式,使得编写回调函数和事件处理变得更加简单。

  2. Stream API:Stream API提供了一种新的处理数据的方式,类似于集合操作,但更注重于计算。它允许对大量数据进行并行操作,极大地提高了性能。

  3. 方法引用:允许直接引用已存在的方法,而无需编写额外的lambda表达式。

  4. 日期和时间API:Java 8引入了全新的java.time包,替代了旧的Calendar和Date API,提供了更加直观且易用的日期和时间操作。

  5. 默认方法:接口中可以定义具有实现的默认方法,这使得接口升级不会破坏现有的实现类。

在实际开发中,从Java 1.7升级到Java 1.8可能涉及到代码的重构和测试,以确保所有功能在新版本下仍能正常工作。迁移过程需要注意兼容性问题,同时充分利用新版本带来的性能提升和编程便利性。