转载自:http://bbs.csdn.net/topics/370028531
作了6年多Java开发,暮然回首,发现PHP也听吸引人的。
最近化了70多大洋买了本号称“PHP圣经”的书才开始学习PHP,现在来和Java作一个简单的比较:
1,代码:Java更优美。PHP中有诸如“::”“->”“__set”的操作符,Java中是没有的。
2,面向对象:Java是面向对象的老牌编程语言,优于PHP。Java中一个文件就是一个类(除内部类),因此,Java的类结构层次更清晰。PHP类中的__get、__set和Java中的getter、setter比较,由于我不太熟悉PHP的框架也就不评论了,Java编程中getter、setter被广泛地应用于各种框架,简化了开发工作。
3,模式:Java有各种编程模式,有有面向接口编程,AOP,IoC。PHP介绍模式的书比较少。
4,框架:Java各种框架层出不穷,从MVC到ORM到Spring这样的多功能组件应有尽有。PHP有我所知道的ZendFramework。
5,功能:开发web应用,Java能实现的PHP都能实现,这点是PHP吸引我的地方。桌面应用和手机应用PHP就不行了。
6,部署:PHP比Java容易得多,而且市面上支持PHP的虚拟主机也多价格也比JSP主机便宜许多。对比使用PHP和java感觉就像window和linux,当然Java开发小型应用并不难。
总结,PHP经过这么多年的发展,正在走向成熟,也可以和Java配合开发出高效的分布式的应用。欢迎补充。
---------------------------------------------------------------------------------------------------------------------------------------
评论:
1、Java 都在类中,所以不需要“->”来表示对象成员;php 中“.”被另作他用,所以就不能用“.”表示了。Java 有命名空间,所以也不需要“::”来表示方法的来源
2、php 从一开始就是面向过程的,虽然后来应跳巢的 Java 程序员的需要,加入了面向对象的成分。但 php 的运行环境和方式确定了 php 不适合使用继承层次较多的类。PHP类中的__get、__set和Java中的getter、setter 作用相当
3、模式是一种理论、一种方法,在 php 中也可以使用,但不能生搬硬套
4、框架是应用程序模板。php 同样有各种框架,只是 Java 的应用范围远比 php 来的大。自然 Java 的框架要多于 php
5、php 从一开始就是为 web 应用而开发的。简单易用是他的特点,而 php 的容错能力强的特点反倒比你们 Java 程序员批评为“不严谨”