仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 669|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA编程:Java 8的一些罕见用法仓酷云

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:15:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。lambda表达式

语法

最经常使用的:
  1. Runnablerunnable=()->System.out.println("Hello!");Threadt=newThread(runnable);t.start();t.join();
复制代码
你还能够这么写:
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();
复制代码
带有参数的呢?
  1. Comparator<String>stringComparator=(s1,s2)->s1.compareTo(s2);
复制代码
扩大成一个完全的表达式:
  1. Comparator<String>stringComparator=(Strings1,Strings2)->{System.out.println("Comparing...");returns1.compareTo(s2);};
复制代码
函数式接口

Lambda表达式使得你能够更松散地表达出双方法类。单一办法类也被称作函数式接口,它能够经由过程@FunctionalInterface来举行注解:
  1. @FunctionalInterfacepublicinterfaceMyFunctionalInterface<T>{booleantest(Tt);}//UsageMyFunctionalInterface<String>l=s->s.startsWith("A");
复制代码
办法援用

办法援用就是更松散,易懂的Lambda表达式,它合用于那些已着名字的办法。来看一个复杂的例子:
  1. publicclassSample{publicstaticvoidmain(String[]args){Runnablerunnable=Sample::run;}privatestaticvoidrun(){System.out.println("Hello!");}}
复制代码
另有一个:
  1. publicstaticvoidmain(String[]args){Samplesample=newSample();Comparator<String>stringLengthComparator=sample::compareLength;}privateintcompareLength(Strings1,Strings2){returns1.length()-s2.length();}
复制代码
StreamAPI基本

stream是一个元素序列,它撑持串行及并行的操纵。
遍历列表
  1. List<String>list=Arrays.asList("one","two","three","four","five","six");list.stream().forEach(s->System.out.println(s));
复制代码
过滤
  1. Predicate<String>lowerThanOrEqualToFour=s->s.length()<=4;Predicate<String>greaterThanOrEqualToThree=s->s.length()>=3;list.stream().filter(lowerThanOrEqualToFour.and(greaterThanOrEqualToThree)).forEach(s->System.out.println(s));
复制代码
排序
  1. Predicate<String>lowerThanOrEqualToFour=s->s.length()<=4;Predicate<String>greaterThanOrEqualToThree=s->s.length()>=3;Comparator<String>byLastLetter=(s1,s2)->s1.charAt(s1.length()-1)-s2.charAt(s2.length()-1);Comparator<String>byLength=(s1,s2)->s1.length()-s2.length();list.stream().filter(lowerThanOrEqualToFour.and(greaterThanOrEqualToThree)).sorted(byLastLetter.thenComparing(byLength)).forEach(s->System.out.println(s));
复制代码
巨细限定
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();0
复制代码
汇合转化成列表
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();1
复制代码
并行处置

用它来遍历文件列表则再罕见不外了:
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();2
复制代码
注重下面给出这个示例的同时,也表露了并行处置的一些弱点。
StreamAPI进阶

映照

遍历文件后前往一个FileSize对象:
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();3
复制代码
终极举行映照的代码:
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();4
复制代码
分组:

按文件名的第一个字母将FileSize对象分组
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();5
复制代码
Reduce

找出文件夹下的最年夜最小文件:
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();6
复制代码
假如你不必要FileSize对象,只必要一个数值的话:
  1. Threadt=newThread(()->System.out.println("Hello!"));t.start();t.join();7
复制代码
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的
谁可相欹 该用户已被删除
沙发
发表于 2015-1-20 18:52:06 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-25 19:14:48 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
柔情似水 该用户已被删除
地板
发表于 2015-1-30 07:33:02 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
乐观 该用户已被删除
5#
发表于 2015-2-2 21:49:39 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
第二个灵魂 该用户已被删除
6#
发表于 2015-2-7 00:34:11 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
只想知道 该用户已被删除
7#
发表于 2015-2-11 03:03:48 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
admin 该用户已被删除
8#
发表于 2015-3-1 18:40:41 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
变相怪杰 该用户已被删除
9#
发表于 2015-3-2 21:19:20 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
精灵巫婆 该用户已被删除
10#
发表于 2015-3-11 06:20:45 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
因胸联盟 该用户已被删除
11#
发表于 2015-3-12 10:18:43 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
透明 该用户已被删除
12#
发表于 2015-3-19 19:55:27 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表