java的JDK1.8有什么新特性?
Java8(又称为jdk1.8)是Java语言开发迄今为止的一个最主要和用户最多的一个版本。
Java8是Oracle公司于2014年3月18日发布,它不仅支持函数式编程,而且还拥有新的日期API,StreamAPI等操作,下面胖虎带领大家一探究竟Java8的一些新特性。
ava8API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如筛选,排序,聚合等操作。
java8添加了接口的默认方法,简单说,默认方法就是接口可以有实现方法,而且不需要实现类去实现的方法。
Java函数式编程语言是什么?
函数式编程语言的核心是它以处理数据的方式处理代码。这意味着函数应该是第一等级(First-class)的值,并且能够被赋值给变量,传递给函数等等。
事实上,很多函数式语言比这走得更远,将计算和算法看得比它们操作的数据更重要。其中有些语言想分离程序状态和函数(以一种看起来有点对立的方式,使用面向对象的语言,这通常会将它们联系得更紧密)。
Clojure编程语言就是一个这样的例子,尽管它运行于基于类的Java虚拟机,Clojure的本质是函数式语言,并且在高级语言源程序中不直接公布类和对象(尽管提供了与Java良好的互操作性)。
Java8的函数式编程怎么样?
很多编程语言早就引入了lambda表达式而java语法又比较繁琐,被很多人嫌弃.于是java8新增了特性支持lambda表达式.例如:不用lambda表达式写的匿名内部类list names = arrays.aslist("jack", "tom", "jerry");collections.sort(names, new comparator() { @override public int compare(string s1, string s2) { return s2.compareto(s1); }});采用lambda表达式简化上面的代码list names = arrays.aslist("jack", "tom", "jerry");collections.sort(names, (s1, s2) -> s2.compareto(s1));当然了java8中lambda表达式还有其他用法,但我比较喜欢它的简洁
为什么要给Java 8中加入函数式编程
public class a{public a(int a,b){if(a>b)system.out.println(a);elsesystem.out.println(b);}public a(double a,double b,double c){system.out.println(a*b*c);}public a(string s1,string s2){if(s1.equals(s2))system.out.println("equal");elsesystem.out.println("no equal");}public static void main(string[] args){new a(1,2);new a(3.3,1.0,2.8);new a("welcome","beijing");}}