`
384444165
  • 浏览: 259701 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(From原博客)正好最近想问的一个问题,今天看到了答案 PHP和JAVA

阅读更多
省事起见直接贴过来了:


PHP和JAVA比较
发布时间:2010.07.13 09:33      来源:赛迪网     作者:mt

【赛迪网讯】一、 语言比较
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-java-bridge_7.2.1_documentation.zip

    PHP-Java-Bridge(简称PJB)就是这样一个解决方案,它提供了一个高效的接口,使得PHP能够无缝调用Java类和方法。本文将详细解析PHP-Java-Bridge 7.2.1版本的相关知识,以及如何在项目中集成和使用。 一、...

    java和php通信

    当我们创建一个ServerSocket实例并指定一个端口号时,Java应用就会在这个端口上等待来自客户端的连接。一旦有连接请求到来,ServerSocket会创建一个Socket对象来处理该连接,允许数据的双向传输。 以下是创建Java...

    PHP通过javabridge6.2.1调用 Java的说明及源代码(可运行)

    首先,JavaBridge是PHP与Java之间的一个桥梁,它允许PHP脚本直接调用Java类和方法,从而实现PHP应用与Java服务的集成。在PHP中使用JavaBridge,你需要确保你的环境已经安装了Java运行时环境(JRE)以及PHP Java...

    From Java to Ruby

    《From Java to Ruby》这本书是Java开发者转向Ruby语言的一份宝贵资源。它引导读者了解从传统的Java编程环境过渡到Ruby的动态世界时所...对于希望拓宽视野和提升编程技能的Java开发者来说,这是一个值得探索的新领域。

    装载问题-分支限界算法-java实现

    通过分析输出结果,可以看到java实现能够正确地解决装载问题,并输出最优的解决方案。 优点 java实现的优点包括: 1. 使用FIFO队列可以提高搜索效率。 2. 剪枝函数可以减少搜索空间,提高搜索效率。 3. java实现...

    php+java的配置方法总结

    编写一个PHP脚本来测试Java类的调用。示例代码如下: ```php <?php $system = new Java("java.lang.System"); print "Java version=" . $system->getProperty("java.version") . " \n"; print "Java vendor=" . ...

    java技术综合考试答案

    这只是一个基本的Java技术面试的概述,实际面试中可能会涉及到更多Java语言特性和框架、设计模式、并发编程、集合框架、IO/NIO、网络编程、数据库连接池、Spring Boot、MyBatis等知识点。全面掌握这些内容将大大增加...

    HttpPost_from.java java http-post form表单客户端请求代码

    java http-post form表单客户端请求代码,拿过去直接应用即可

    Java Web开发常见问题.pdf

    在Java Web开发过程中,中文乱码问题是开发者经常遇到的一个挑战。这些问题主要源于Java默认的Unicode编码与HTML页面及表单默认的Latin-1编码之间的不兼容,以及在不同的环境中(如服务器、数据库、浏览器)使用了...

    Starting Out with Java From Control Structures through Objects(6th) 无水印pdf

    Starting Out with Java From Control Structures through Objects(6th) 英文无水印pdf 第6版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn...

    java2登录窗口原代码+数据库

    Java2登录窗口原代码结合数据库的应用是开发许多应用程序的基础,特别是在构建用户认证系统时。这个主题涵盖了许多重要的IT知识点,包括编程语言、GUI设计、数据库交互等。以下将详细阐述这些关键点: 1. **Java...

    JAVA汉诺塔的问题

    汉诺塔问题是一个经典的递归问题,源自印度的古老传说,它涉及到三个柱子和一堆大小不一的圆盘。目标是将所有圆盘从一个柱子(起始柱)移动到另一个柱子(目标柱),同时遵守以下规则: 1. 每次只能移动一个圆盘。 ...

    java代码操作数据转移,把一个数据库里的东西移动到另一个数据库,自动建库建表

    在IT行业中,数据库迁移是一项常见的任务,特别是在Java开发中,我们经常需要将数据从一个数据库迁移到另一个数据库,比如从测试环境迁移到生产环境。这个过程不仅涉及数据的复制,还包括了数据库结构(如表、索引等...

    Calling R from Java

    1. **创建REvaluator实例**:首先,需要创建一个`REvaluator`类的实例,这个类是R-Java接口提供的用于执行R表达式的核心类。 ```java import org.omegahat.R.Java.REvaluator; REvaluator evaluator = new ...

    Java Game Development with LibGDX: From Beginner to Professional.pdf

    Learn to design and create video games using the Java programming language and the LibGDX software library. Working through the examples in this book, you will create 12 game prototypes in a variety ...

    JAVA练习from 19 to 21

    总的来说,"JAVA练习from 19 to 21" 是一个逐步提升Java编程技能的过程,从基础到进阶,旨在帮助学习者建立扎实的Java编程基础,并逐步熟悉面向对象编程的思想,为解决更复杂的问题做好准备。通过完成这些练习,...

    利用Java实现复制Excel工作表功能

    今天,我们将介绍如何使用Java实现复制Excel工作表功能,包括在同一个工作簿内复制工作表和在不同工作簿间复制工作表两种情况。 复制工作表 在实际应用中,我们经常需要复制工作表以便更好地组织和管理数据。使用...

    java和js互调

    Java和JavaScript互调是移动应用开发中的一个重要概念,特别是在Android平台上。Android系统广泛使用Java作为主要的编程语言,而Web内容则通常由JavaScript处理。在许多情况下,开发者需要在原生Android应用中嵌入...

Global site tag (gtag.js) - Google Analytics