由于中文参考资料很少,参考链接:

https://www.oschina.net/translate/109-new-features-in-jdk-10

http://chuansong.me/n/2365239553812

1、jdk10.0特性,局部变量类型推断,var保留字,只要编译器可以推断此种类型,你不再需要专门声明一个局部变量的类型。对于JDK10

来讲最为显著的就是引入了局部类型变量推断这个特性

 package com.bie.lesson1;

 public class Student {

     //此处报错,因为var必须作为局部变量使用
//var a = 10; public static void show() {
//只要编译器可以推断此种类型,你不再需要专门声明一个局部变量的类型。
var a = ;
System.out.println(a + "局部变量可以使用var");
} public static void main(String[] args) {
Student.show();
} }

更多使用案例如下所示:

 package com.bie.lesson1;

 import java.util.ArrayList;

 public class Student {

     // 1、此处报错,因为var必须作为局部变量使用
// var a = 10; public static void show() {
// 1、只要编译器可以推断此种类型,你不再需要专门声明一个局部变量的类型。
var a = ;
System.out.println(a + "局部变量可以使用var");
} /**
* 1、增量for循环的使用局部变量类型的定义
*/
public static void showList() {
var list = new ArrayList<Integer>();
list.add();
list.add();
list.add();
list.add();
list.add();
for (var a : list) {
System.out.println(a);
}
} /**
* 1、普通for循环的使用局部变量类型的定义
*/
public static void showArray() {
int[] a = { , , , , };
for(var i=;i<a.length;i++) {
System.out.println(a[i]);
}
} public static void main(String[] args) {
// 1、局部变量类型推断
var student = new Student();
// 2、局部变量类型定义
Student.show();
// 3、局部变量类型增量for循环的使用
showList();
// 4、局部变量类型的普通for循环的使用
showArray();
// 5、Lanbda表达式,函数式编程,局部变量的定义
var read = new Thread(() -> System.out.println("Lanbda表达式的推断,局部变量定义"));
System.out.println(read.getName());
} }

2、Java1.8特性,Java 8的一个大亮点是引入函数式编程即Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读。(如果学习了Scala语言,会发现Scala语言很简洁,Spark就是用Scala开发的。)。

 package com.bie.lesson1;

 /**
*
* @author biehl
*
*/
public interface Calculator { /**
* result the a add b
* @param a
* @param b
* @return
*/
int add(int a,int b);
}

下面使用Lanbda是学习的重点:

 package com.bie.lesson1;

 /**
*
* @author biehl
* @date: 2018年8月12日 下午4:15:39
* @Description Java函数式编程之Lambda使用
*
*/
public class LanbdaLearn { /**
* use the Lanbda,a add b
*
* @param a
* @param b
* @param calculator
*/
public static void sum(int a, int b, Calculator calculator) {
int result = calculator.add(a, b);
System.out.println("result : " + result);
} public static void main(String[] args) {
// 局部变量类型推断
var sum1 = ;
var sum2 = ;
// 备注:小括号代表Caluator接口add抽象方法的参数,大括号代表 add 的方法体,注意方法体最后的;
sum(sum1, sum2, (int a, int b) -> {
return a + b;
}); // Lanbda省略格式
// 可推导即可省略
// Lambda强调的是“做什么”而不是“怎么做”,所以凡是可以根据上下文推导得知的信息,都可以省略。
// 例如上例还可 以使用Lambda的省略写法:
sum(sum1, sum2, (a, b) -> a + b); // 省略规则
// 在Lambda标准格式的基础上,使用省略写法的规则为:
// 1.小括号内参数的类型可以省略;
// 2.如果小括号内有且仅有一个参,则小括号可以省略;
// 3.如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。 } }

待续......

jdk1.8学习、jdk1.9学习、jdk10.0学习和总结的更多相关文章

  1. 个人笔记本安装多个jdk(jdk1.7,jdk1.8,jdk1.9,jdk10.0)出现的问题

    1.个人笔记本已经安装jdk1.7,jdk1.8,(之前没有在意这个问题).最近想学习jdk10.0,安装以后,环境变量变成了jdk10.0,就是cmd输入命令java -version,显示版本是j ...

  2. solr6.0学习

    solr6.0学习(一)环境搭建准备工作:目前最新版本6.0.下载solr 6.0:Solr6.0下载JDK8 下载jdk1.8:jdk1.8[solr6.0是基于jdk8开发的]tomcat8.0 ...

  3. Servlet3.0学习总结——基于Servlet3.0的文件上传

    Servlet3.0学习总结(三)——基于Servlet3.0的文件上传 在Servlet2.5中,我们要实现文件上传功能时,一般都需要借助第三方开源组件,例如Apache的commons-fileu ...

  4. DirectX 总结和DirectX 9.0 学习笔记

    转自:http://www.cnblogs.com/graphics/archive/2009/11/25/1583682.html DirectX 总结 DDS DirectXDraw Surfac ...

  5. [EntLib]微软企业库5.0 学习之路——第一步、基本入门

    话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...

  6. 从零开始学习ASP.NET MVC 1.0

    转自:http://www.cnblogs.com/zhangziqiu/archive/2009/02/27/ASPNET-MVC-1.html <从零开始学习ASP.NET MVC 1.0& ...

  7. Bootstrap3.0学习14

    Bootstrap3.0学习第十四轮(分页.徽章)   前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/340 ...

  8. Bootstrap3.0学习第八轮

    Bootstrap3.0学习第八轮(工具Class)   前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/34 ...

  9. Bootstrap3.0学习第六轮(表单)

    Bootstrap3.0学习第六轮(表单) 前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehyok/p/3404867.h ...

随机推荐

  1. VDB R&D

    VDB Data value visualize: 结论从houdini得知. API常用文字: interior:内部 Narrow-band:窄带 background:窄带外 SDF: XY p ...

  2. 【转】Python 面向对象(初级篇)

    [转]Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...

  3. Linker Scripts3--简单的链接脚本命令2-Assigning Values to Symbols

    1.前言 本章继续讲述简单脚本命令的后半部分 2.Assigning Values to Symbols 你可以给一个符号(symbol)赋值,它会把这些定义的符号放入全局符号表(symbols ta ...

  4. requests库入门06-post请求

    示例相应的接口文档:GitHub邮箱接口文档 先登录GitHub,然后右上角用户下拉框中选择settings,然后选Emails.可以看到当前账户设置的邮箱情况 再看添加邮箱接口的文档描述,可以通过一 ...

  5. 在PHP中使用AES加密算法加密数据及解密数据

    这个算法可以将数据加密后,储存起来,到需要用的时候,用之前加密的秘钥将之还原. 除了这个之外,还有AES这个算法能够将数据很好的加密起来,在传输过程中不容易被破解. 在PHP中,我们必须先安装好mcr ...

  6. 【转】Java内部类详解

    一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类.下面就先来了解一 ...

  7. web@h,c小总结

    问题0:元素内联元素,行内元素,行内块元素.        内联: 宽高M,P都有效        行内元素:无宽高,内容撑开,M,P左右有效        行内块元素:可设宽高,内容撑开,M,P都有 ...

  8. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

  9. springcloud-4:服务注册(hello-service)

    服务端 请见 http://www.cnblogs.com/huiy/p/8668005.html 客户端: 主启动类 import org.springframework.boot.SpringAp ...

  10. Vue项目构建开发笔记(vue-lic3.0构建的)

    1.router.js里面 { path: '/about', name: 'about', // route level code-splitting // this generates a sep ...