仓酷云

标题: JAVA编程:基于范型的java函数式编程(一) [打印本页]

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




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2