仓酷云

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

[学习教程] JAVA编程:基于范型的java函数式编程(一)

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:40:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。编程|函数注:在您浏览本篇的时分,但愿你对JavaGeneric(范型)可以有所懂得和分明。


记:周末在给javaparty讲FP中,良多人仿佛对fp其实不体贴,也以为java中fp的感化不年夜。实在这是个很年夜的看法毛病,范型的开展,对java的函数式编程撑持很年夜,对Functor的影响也十分年夜。Functor在算法、逻辑、前提盘算、划定规矩引擎等等方面,城市有很年夜的作为,这个影响可就会深远的多了。――估且以此篇的初步,叫醒java开辟者对FPinJava的从头熟悉。


周六给javaparty讲了java中的函数编程(FunctionalProgramminginJava),但因为本人筹办的不充实,讲的其实不深切。估且再写点blog增补一下。固然,接上去的日子里,也盘算挤点工夫再深切研究以下Functor,感到这个使用,未来会很普遍,即便java是一个OO言语,是面向形态的命令式编程(Imperativeprogramming)言语。



关于Java言语来讲,FP并非其一个专长。可是Functor倒是一个很不错的新新亮点,固然Functor这个观点其实不新,早在C++的STL就已被提出来了:Afunctorisafunctionthatcanbemanipulatedasanobject,oranobjectrepresentingasingle,genericfunction。――透过这个形貌,我想我们能够较为这么说:Functor=FunctionObject。以是,在OO言语中,地道的Function是不存在的,在Java言语中,Function也是一个对象,这个对象就是Functor。

可是,在java中,Functor却由于java5对范型(Generic)的撑持,终究破土而出,成为一个新新亮点。而我也信任,这个亮点不会只是偶然的闪灼,势必在将来的良多使用中,显现出明亮的一面。



Functor次要由三品种型:谓词(predicate),函数(function),历程(procedure)。谓词的盘算了局只前往布尔值;函数的盘算盘算前往一个对象;历程则只卖力盘算,没有前往了局



predicate
returnabooleanvalue

function
returnanObjectvalue

procedure
dontreturnanything




Functor自己有一元二元三元・・・之分。固然,我对最为罕见的就是一元(UnaryPredicate,UnaryFunction,UnaryProcedure)和二元(BinnaryPredicate,BinnaryFunction,BinnaryProcedure)。



下面都是一些很笼统的观点,那末一个Functor究竟甚么模样呢?



起首让我们来看一个例子,经由过程这个例子来一步步分明Functor的用途,分明甚么是Functor:



publicstatic<T>List<T>select(Collection<T>source,UnaryPredicate<T>selector){

List<T>result=newArrayList<T>();

for(Titem:source){

if(selector.test(item)){

result.add(item);

}

}

returnresult;

}




这个例子就是Functor的典范使用,使用Functor中的一元谓词,机关了一个select算法。


(未完,待今天持续)writedby胡长城(银狐999)


用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。
admin 该用户已被删除
沙发
发表于 2015-1-21 12:33:13 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
小魔女 该用户已被删除
板凳
发表于 2015-1-26 12:17:12 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
乐观 该用户已被删除
地板
发表于 2015-1-28 09:55:06 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
再见西城 该用户已被删除
5#
发表于 2015-2-5 14:01:00 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
因胸联盟 该用户已被删除
6#
发表于 2015-2-9 08:13:22 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
蒙在股里 该用户已被删除
7#
发表于 2015-2-27 04:54:11 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-1 19:43:46 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
兰色精灵 该用户已被删除
9#
发表于 2015-3-3 19:00:57 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
金色的骷髅 该用户已被删除
10#
发表于 2015-3-11 12:26:33 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
精灵巫婆 该用户已被删除
11#
发表于 2015-3-11 17:45:04 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
若天明 该用户已被删除
12#
发表于 2015-3-14 23:11:55 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
第二个灵魂 该用户已被删除
13#
 楼主| 发表于 2015-3-20 13:16:15 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
柔情似水 该用户已被删除
14#
发表于 2015-3-27 07:09:23 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
深爱那片海 该用户已被删除
15#
发表于 2015-3-29 04:42:13 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
不帅 该用户已被删除
16#
发表于 2015-4-6 09:04:08 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
愤怒的大鸟 该用户已被删除
17#
发表于 2015-4-7 13:09:39 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
18#
发表于 2015-4-7 19:17:22 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
海妖 该用户已被删除
19#
发表于 2015-4-24 00:19:32 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
飘灵儿 该用户已被删除
20#
发表于 2015-5-1 09:09:26 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-23 06:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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