一、 语言比较
PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以java不如php好学。
Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行。Java的Web开发首先最容易想到的就是JSP(现在已经到JSP2.0),原来的java的Web开发都是用servlet来实现的,用servlet来开发需要程序员在java的源文件中嵌入大量的html代码。所以后来就出现了JSP,JSP可以方便的嵌入到html文件当中,其实jsp文件在服务器上执行的时候首先会被应用服务器转换成servlet,然后再编译执行。Jsp可以通过servlet和JavaBean的支持产生强大的功能。JavaBean 是一种可复用的、跨平台的软件组件。使用javabean可以方便的实现java代码和html的分离,能够增强系统的功能和软件的复用性。
Java的Web开发属于SUN公司定义的J2EE其中的规范。而且在J2EE中包括了java的Web开发的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于做大型的企业级的应用。
二、数据库访问比较
Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。
PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。
三、系统设计架构比较
采用Java的Web开发技术,需要使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。所以用Java进行开发前期需要做大量的系统分析和设计的工作。
四、跨平台性
Java和PHP都有很好的跨平台的特性。几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上。
五、 开发成本比较
PHP最经典的组合就是:PHP + MySQL + Apache。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。
Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web logic。
六、分布式多层架构比较
PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用java的Web开发技术实现了MVC的设
计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。
下面简要的说一下Struts,它实质上是在JSP Model2的基础上实现的一个MVC(Model、View、Controler)框架。JSP Model2体系结构是一种联合使用JSP 与Servlet 来提供动态内容的方法。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由Servlet实现的,视图由一组JSP文件组成。采用Struts可以明确角色的定义和开发者与网页设计者的分工。而且项目越复杂,其优势越明显。
七、源代码安全
PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。
Java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。
八、性能比较
有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒。数据库测试中,二者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒。
项目 PHP JAVA
可复用性 低 高
开发速度 快 慢
易维护性 差 优
可移植性 优-Linux Windows、Unix
安全性 低 高
开发费用 低 高
多层架构 差 优
数据库访问 接口不统一 接口统一
可扩展性 差 优
面向对象 差 优
综上所述,我个人认为,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。
===========================PHP的优势=======================
PHP很专一,用于创建动态网页的服务器端的脚本语言。作为一种为Web而特别设计的语言,PHP带来了许多商业机构渴望的特性。
·学习周期短,比较简单
·快速的开发时间
·非常高的性能
这对于缺乏熟练编程人员,时间又非常紧迫的公司来讲,具有非常重要的意义。跨平台性很好,PHP可以在所有主要的操作平台(UNIX,Windows,甚至是大型机)上运行,而且生来就支持各种流行的数据库。这决定它是一种进行Web开发的非常理想的选择:曾有运用PHP技术的网上商店称,他们只需雇佣业余的程序员,几天内就能够开发出可重用的代码。那些熟悉诸如C,C++或Java等语言的程序员们,也总是发现他们能够在几个小时之内就能够进
行PHP编程。 ,可想而知,转行去php非常简单
“PHP是构建在Web开发人员现实需求之上的....不同于其它笨重的,高负荷的方法,PHP非常轻便,是为Web开发度身定做的。它可以比其它同类技术更快,更容易的解决复杂的问题。”
Java作为一种新的编程语言,最初用于运行嵌在浏览器中的客户端应用程序。在过去短短几年中,“applet”所暴露的问题迫使SUN和其它Java开发人员为该语言寻找新的出路。其中最为突出的就是服务器端编程,它允许Web站点连接数据库并产生其它服务器端的应用程序,即“servlets”。SUN最终推出了Java Server Pages(JSP)作为编写servlets的手段。与PHP一样,JSP在不同平台间也具有高可移植性(尽管PHP支持任何32位以及32位以上的平台,而JSP只能在安装了Java虚拟机的平台上运行)。 然后,一个没有编程背景的新手会发现,使用servlets编程是一件极为困难的事,原因在于该语言的复杂性以及JSP系统复杂的设计方式。
JSP的性能也存在许多待改进的地方:ZDnet的在线刊物eWeek最近的一项调查发现,PHP的运行速度差不多是JSP的3.7倍。可以说,JSP是Web环境中非常差的一种解决方案,这是因为它每秒钟只能处理很少的事务,而且响应速度相当的慢。
ZDnet的eWeek杂志还提到:
“JSP是一项相对较新的技术,从开发工具、资源、人才方面来看,还未具有完全的市场成熟度。”......由于JSP是基于Java的,而Java由是一种强类型的语言,所以我们不得不声明变量的类型,并在需要的地方手工转换类型。这使得JSP成为业余程序员最难于学习的一种脚本语言。
PHP与Java协同工作
JSP仅仅是一种能够访问Java对象的语言罢了,认识到这一点很重要。而PHP也可以整合Java,这意味着,PHP可以象JSP一样,成为一种能够调用Java逻辑的脚本语言。但与JSP不同的是,PHP还可以调用其它组件模型,如Microsoft的COM,而且增加对新的对象模型的支持也极为容易。可见,PHP的扩展能力是无穷的。而另一方面,JSP完全依赖于Java。
IBM程序员Sam Ruby联合使用PHP和Java。通过PHP对Java的良好支持,使得Java对象如同常规的PHP对象一样,透明地被创建和使用。
AutionWatch网站使得各种规模的商业团体都可以从其动态竞价环境中获益。它每月的访问人数在二百六十万以上;已有三十多万个注册用户;每个月进行一百二十万次拍卖。 他们曾尝试使用Java,但还是选择了PHP,就因为它更容易使用,开发速度更快。
编程顾问Reuven Lerner曾在各种语言之间作过比较。他对PHP的评价:
“这是门容易学习的语言。美工和Web设计师可能会说他们并非程
序员,但事实上,他们在大型项目中,越来越多的使用了JavaScript,VBScript以及其它一些简单的编程语言。与Perl相比,PHP更加正规和明确;对一个新手来说,PHP比Java更容易掌握。确实,PHP有点象JavaScript(如果存在服务器端版本的话)。任何人,不管有无编程经验,都可以在很短的时间里学会并使用PHP。这一点也许VBScript可以做到,但Perl和Java肯定不行.....PHP绝对是一个非凡的,强大的系统。无怪乎能够成为创建Web站点的流行语言.....我认为,PHP将成为Java和JSP强有力的竞争对手,我会在某些客户和公司内部项目中极力推荐PHP。”
PHP:一直在前进
JSP有Sun作为其后盾,因此不断获得媒体的关注。但有趣的是,尽管没有任何宣传攻势,PHP的流行度仍然以8-11%的速度在增长,远远大于服务器端应用程序4%的月增长率。有六百五十万个站点使用了PHP。39%的Apache服务器上配置了PHP;而Perl占了11%的市场分额,名列第四。Apache保持着59%的Web服务器市场占有率;Microsoft次之,仅28%。
使用PHP的著名公司有:Unilever、Philips、NTT、Cisco、 Japan Airlines、 Air Canada、 Lufthansa、GE Marketplace、 Wallstreet:Online Germany、 AuctionWatch、 VillageVoic、 Dialpad以及BMC,等等很多,世界上前四十的网站中就有二十多个是用php语言开发的。