仓酷云

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

[学习教程] 发布一篇浅谈Java 7的闭包与Lambda表达式之好坏

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:05:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
头几天Oracle推出了Java7官方的闭包与Lambda表达式的第一个完成,这基础上也是终极在正式版中的款式了。看了这个完成以后,我的第一感到即是“丑”,固然不扫除这是由于看惯了其他言语中完成的原因。厥后再细心看了看又想了想,发明Java7的完成也并不是毫无可取的地方,但仿佛又感应某些做法上有一些成绩。总之全部历程很是风趣,决意将我的设法纪录上去,但愿能够吸惹人来一同会商一下。
Java7中的Lambda表达式
Java7中的Lambda表达式有两种情势,起首是第一种:
#int() func1 = #()(3); // "func1.()" returns 3
#int(int) func2 = #(int x)(x + 1); // "func2.(3)" returns 4
#int(int, int) func3 = #(int x, int y)(x - y); // "func3.(5, 3)" returns 2
然后是第二种,寄义与下面等价:
#int() func1 = #(){ return 3; };
#int(int) func2 = #(int x){ return x + 1; };
#int(int, int) func3 = #(int x, int y){ return x – y; };
假如Lambda的body是“单个表达式”的话,即可以利用“小括号”,并省往最初的return关头字;如果body中必要包括多条语句的话,则必需利用“年夜括号”,而年夜括号外部能够包括多条语句,就像一个普通的办法体一样。这两种写法在C#中也有对应物,如在“单个表达式”的情形下:
// C#
Func<int> func1 = () => 3; // "func1()" returns 3
Func<int, int> func2 = x => x + 1; // "func2(3)" returns 4
Func<int, int, int> func3 = (x, y) => x - y; // "func3(5, 3)" returns 2
第二种,即多条语句:
// C#
Func<int> func1 = () => { return 3; };
Func<int, int> func2 = x => { return x + 1; };
Func<int, int, int> func3 = (x, y) => { return x &ndash; y; };
Java和C#的Lambda表达式都由两部分构成:“参数列表”和“表达式体”,可是它们有以下区分:
在Java中参数列表和表达式体之间没有分开标记,而C#利用“=>”分开。
关于“单个表达式”的Lambda来讲,C#能够无需利用括号包括表达式体,而Java必需利用小括号。
假如只要单个参数,那末C#的参数列表能够省往小括号,而Java必需保存。
C#对参数列表会举行“范例揣度”,而Java必需写清参数范例。
<p>
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点
谁可相欹 该用户已被删除
9#
发表于 2015-3-27 07:37:45 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
小妖女 该用户已被删除
8#
发表于 2015-3-19 04:22:57 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
山那边是海 该用户已被删除
7#
发表于 2015-3-11 17:42:21 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
再现理想 该用户已被删除
6#
发表于 2015-3-4 06:13:14 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
金色的骷髅 该用户已被删除
5#
发表于 2015-2-14 11:58:27 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-6 00:07:27 | 只看该作者
是一种为 Internet发展的计算机语言
只想知道 该用户已被删除
板凳
发表于 2015-1-29 08:43:52 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
活着的死人 该用户已被删除
沙发
发表于 2015-1-20 14:12:18 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-22 01:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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