分享
 
 
 

学Java,观GP

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

下笔之时,学Java已经有5天了。用惯了C++,现在看Java,有一种故人之感。Java和

C++有很多相同的地方,也有一些不同的地方。其实,仔细想一下,这些区别并不能够说明那个更好,主要是两种语言的设计思路不同,实现的目标不同:C++侧重效率,Java注重安全。他们的差异也就由此展开,当然,我写这篇文章并不是为了说明他们的不同,只不过有感于一件事,记得好像Java声称可以支持GP(也许是下一个版本,也许已经实现了,只不过我刚开始学,也没看到相关的书籍,不太清楚现在的情况),有点疑惑:STL之父曾经为了实现STL,曾经在Java里面进行了试验,结果以失败告终,不知道这次GP引入Java是采用的什么技术。

用过STL的人都知道,这是C++里面实现GP的一个典型范例。那么究竟什么才是GP呢?GP的实现由那些技术支持呢?

首先我们说Generic 一般这么定义:Abstract of Genreic Concepts。GP是Generic

Programming的缩写,意思是:Abstract Of Generic Concepts And The Subsequent Ins

tantiation,也有人说GP就是Programming With Concepts。从这些定义我们可以看出,在GP里面的Concept居于一个非常重要的地位,那么什么是Concept呢?按照《范型编程与STL》一书的定义就是:一组“描述某个型别”的条件。你可以把Concept想象成一组型别条件,也可以想象成型别的集合,甚至可以想象成一组合法的程序,无论如何他们在本质上都是相通的。如果我们按照正式规格系统来定义Concept,也许Concept就是:a set of many-sorted algebas,这是严格的以数学逻辑来定义的。个人认为GP就是一种思想,思想的核心就是通过静态的算法和动态的操作,以紧密的方式,低耦合的特性,来实现程序设计中的类型无关性。

在C++中GP的实现是通过模板+多继承来实现的,当然更基础的就是运算符重载。C++中模板通过编译期间的时间损失来获取运行效率的提高,同时通过编译器进行参数传递的类型检测,具有较高的安全性。这也就是为什么STL之父选择C++来实现自己的STL的一个很重要的地方,毕竟语言直接支持可以是实现更加方便,也更有效率。

当然,并不是说GP只能在C++里面实现,GP是一种思想,应该独立于任何语言的,Java不是也宣称要加入GP么?不过C++里面引入GP的确本身具有很大的优势,语言本身的特性(模板+多继承)使得C++具有得天独厚的优势:在无损效率的同时具有很高的安全性。

那么Java通过什么来支持GP呢?我有点疑惑。Java里面没有模板,也没有多继承,当然Java里面的单继承也许更加有优势,另外Java里面有很好的RTTI机制(至少比C++里面的RTTI功能强多了,也许是C++里面的实在太弱了)。不过也有一些问题需要考虑,例如Java里面的基本类型不是对象,单根特性对他们没有什么用处,这就比较让人头疼。另外单根+RTTI本身不是与法本身实现的,是通过OOP的理论+类库体系来实现的,这看起来也许更加的直观,但是RTTI运行期的特性毫无疑问会是一个巨大的障碍,如果说Java不在乎效率,更侧重安全的话,这一点似乎也无关痛痒,但是RTTI并没有像C++那样有编译器进行类型检查,相反他绕过了类型检查机制,欺骗了编译器,安全性问题浮现出来,这个安全的保证非常不情愿的回到了程序员的手里。这是一个让人非常郁闷的地方。

也许java有自己的一套方法,那让我们拭目以待吧。

注:现在据说Java要引入模版,那就和C++差不多了吧:)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有