WeTest 导读Java 9预计今年也会正式发布,Java 8这个最具变革性且变革性最适于GUI程序的版本,Android终于准备正式支持。从自己开发JavaFx的感受,说一说Java 8应该使用的新特性。程序员,你应该拥抱变化。 (注:本文不讲具体语法,具体语法请下载下方分享的《Java 8实战》。) James Lau(google的产品经理):We’ve decided to add support for Java 8 language features directly into the current javac and dx set of tools, and deprecate the Jack toolchain. With this new direction, existing tools and plugins dependent on the Java class file format should continue to work. Moving forward, Java 8 language features will be natively supported by theAndroid build system.
我们决定弃用 Jack 工具链,改为直接在最新的 javac 和 dx 工具集中增加对 Java 8 语言功能的支持。经过这番改弦易辙,依赖于 Java 类文件格式的现有工具和插件仍可继续工作。今后,Java 8 语言功能将得到 Android 构建系统的原生支持。 一、GUI桌面类软件特点GUI图形界面的应用程序有几个特点:
● 基于消息驱动模型
● 强交互,实时性要求高
● 用户触发执行与用户触发结束
四、Stream流处理Use stream operations to express refined data processing queries.用流Stream以表达式的方式来完成数据处理。我自己的理解是,以数据库的操作方式来完成数据的处理。Java 8的Stream内置了许多类似于数据库的操作filter、sort、map、reduce等。 Stream优点:
● 以数据库操作数据的方式,专注于如何做这个某个步骤,表达式的方式
● 高并发(看到map、reduce就应该能想到了)
举个用法的例子,业务时获取所有在线的可测试的手机:
注:Stream的写法的确对原因的思维方式会造成一定的冲击,不过写过了,加上有一定数据库使用基础的话理解起来非常容易。Stream高性能的特点的确感受不深,因为处理大量数据的情况毕竟是少数。 五、OptionalA container object which may or may not contain a non-null value.一个可能包含null指的对象包装器。null不可避免,能避免的是NullPointerException。null最大的罪在于它可以代表任何类型。下面这两个接口,不去看你的注释,我并不知道你是否可能会返回null。在业务需求变化如此快的今天,贴切非常容易出现对返回值不做检查的情况,任何人都会偷懒。Optional的处理逻辑是,强迫你去检查。如果我的返回值是Optional,这个接口显式的告诉你可能返回的是null值,这个在GUI程序里面特别常见。