网站首页 > java教程 正文
前言
话说Java9的出来了这么久,也一直没有机会去好好的了解了解,忙里偷闲,去官网上翻了翻doc,然后看了几篇文章,自己稍微整理了一下,分享一些自己比较中意的新特性看法,希望能够帮助到一些志同道合的童鞋。
新特性
JShell
哦哟,这个说起来就厉害了,入Java的坑也算有些年头了,这些年习惯了C++或者Java的编程模式:编辑、保存、编译、运行和调试,一接触到类似Ruby On Rails的时候,就感觉很幸福,毕竟他提供的应用控制台能够以交互的模式去运行应用,做一些临时性的操作就会很方便,这类就叫做交互式编程。终于让我们值得欢呼的就是现在Java也支持了交互式编程环境,从控制台直接启动jshell,输入执行Java代码,测试一些东西的时候是不是相当的方便,而且,再也不要教别人撸Java的时候告诉他public static void main是干啥的啦,哈哈哈哈哈
改进的Stream API
一直一来Java标准库都在改进这个API,细心的打字员可能早已经发现,这些年Java越来越重视函数式编程,Java8里面就扩充了很多的新功能。毕竟函数式编程代码简洁明了,而且编写并行程序非常的简单。关于Stream的使用方法这里不做展开描述,大家只需要知道Stream并不是某种数据结构,它只是数据源的一种视图。这里的数据源可以是一个数组,Java容器或I/O channel等。
接下来看一个小程序,控制台打印1到99:
IntStream.iterate(1, i -> i < 100, i -> i + 1).forEach(System.out::println);
如上所示,iterate 方法的新重载方法,提供了一个判断条件什么时候结束迭代,第二个参数则是一个Lambda,当元素到达100的时候返回true,用起来简直不要太爽哟。
私有接口方法
还有一个值得一提的就是Java9中可以向接口添加私有辅助方法,因为当接口中有几个默认方法且代码相同的时候,我们通常会进行重构然后把方法私有化,使其可复用。但是默认方法是不能私有的。
官方的示例中很好的描述了这种情况:
public interface MyInterface { void normalInterfaceMethod(); default void interfaceMethodWithDefault() { init(); } default void anotherDefaultMethod() { init(); } // This method is not part of the public API exposed by MyInterface private void init() { System.out.println("Initializing"); }
当我们在项目中大批量使用默认方法开发API的话,那么私有接口方法可以帮助我们快速的进行构建。
集合工厂方法
这几年Java对开发者越来越友好,Jva9中添加了集合工厂方法,比如Set.of以及List.of方法,这是一个高度优化的过程,而且,实例化集合,我们通常要用到几个add,代码重复度较高,有兴趣的童鞋可以去尝试尝试。
结语
酒香不怕巷子深,虽然这些年对Java一直处于又爱又恨的程度,虽然使用Java开发之前曾立过“坚持不用辣鸡Java”的誓言,但是不得不承认,时代在进步,每一种语言都在朝各自擅长的领域继续奔跑着,还是那句话,人生苦短我用python,给我再来一次的选择,我选js。(逃
猜你喜欢
- 2024-09-11 Java 9最终发布可能会推迟8周,到9月21日
- 2024-09-11 JAVA9模块化详解(一)——模块化的定义
- 2024-09-11 java 9 更新内容整理(java基础知识点整理)
- 2024-09-11 轻松上手Java 9模块化开发核心原则与实践
- 2024-09-11 Java 9 揭秘-模块化系统(二)(java9安装教程)
- 2024-09-11 Java9系列第8篇-Module模块化编程
- 2024-09-11 Java 9揭秘-模块依赖(十二)(java9模块化为啥没大规模使用)
- 2024-09-11 Java 9揭秘-模块依赖(七)(java9是什么版本)
- 2024-09-11 Java9新特性Jigsaw和Jshell(java9 模块化 系统)
- 2024-09-11 Java9新特性中的模块化到底是什么
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)