开发语言大PK:php和Java哪个更好?
Java通过jdbc来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。
PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用java开发的web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而php则需要做大量的修改工作。
2语言比较
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就特别适合于做大型的企业级的应用。
3系统设计架构比较
采用java的web开发技术,需要使用的是面向对象的系统设计方法,而php还是采用面向过程的开发方法。所以用java进行开发前期需要做大量的系统分析和设计的工作。
4跨平台性
java和php都有很好的跨平台的特性。几乎都可以在不作任何修改的情况下运行在Linux或者windows等不同的操作系统上。
5性能比较
有人做过试验,对这两种种语言分别做回圈性能测试及存取oracle数据库测试。
在循环性能测试中,jsp只用了令人吃惊的四秒钟就结束了www.lafei333.cn20000*20000的回圈。而php测试的是2000*2000循环(少一个数量级),却分别用了63秒。
数据库测试中,二者分别对oracle 8进行1000次insert,update,select和delete:jsp需要13秒,php需要69秒。
6分布式多层架构比较
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可以明确角色的定义和开发者与网页设计者www.huafanyun.cn 菲华国际
www.yiqianou.cn/的分工。而且项目越复杂,其优势越明显。
7源代码安全
php开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。
java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。
8开发成本比较
php最经典的组合就是:php + mysql + apache。非常适合开发中小型的web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。
java的web应用服务器有免费tomcat、jboss等,如果需要更好的商业化的服务有:web sphere和web logic。
9java和php在web开发方面的比较
综上所述,我个人认为,php适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用java开发的系统要比php开发的系统的价格要高。
对于学习有困难不知道如何提升自己可以加扣:578024144 进行交流得到帮助,获取学习资料
开发语言大PK:php和Java哪个更好?的更多相关文章
- java、python、golang等开发语言如何快速生成二维码?
免费二维码生成途径非常多!比如比较有名的草料二维码,如果只是简单的使用,用它就足够了.但是如果想大规模的生成,那就不太合适了.再者很多工具都没办法在二维码中加入logo(像微信二维码一样). 接下来, ...
- 【转载】谷歌酝酿将苹果Swift作为安卓APP主要开发语言
TNW中文站 4月8日报道 安卓操作系统的软件开发语言是Java,而在过去几年中,有关Java的版权,谷歌(微博)和甲骨文之间发生了长期的诉讼.最新外媒消息称,谷歌正在考虑将苹果开发的Swift作为未 ...
- JAVA开发语言基础
很多时候我们都不知道,为什么android最开始要用java作为基础语言 看看知乎上都是怎么回答的 为什么java最初成为android开发的基础语言 ------------------------ ...
- 大数据全栈式开发语言 – Python
前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做“Fullstack JavaScript”,是关于用JavaScript进行前端.服务器端,甚至数据库(MongoDB) ...
- 为什么说Python 是大数据全栈式开发语言
欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...
- 弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
自从 2011 年发布以来,Kotlin 凭借强大的功能在开发者中的欢迎程度与日俱增.且在一年前,Google 宣布 Kotlin 正式成为 Android 官方开发语言,由此引发了从 Java 迁移 ...
- 你还在把Java当成Android官方开发语言吗?Kotlin了解一下!
导语:2017年Google IO大会宣布使用Kotlin作为Android的官方开发语言,相比较与典型的面相对象的JAVA语言,Kotlin作为一种新式的函数式编程语言,也有人称之为Android平 ...
- 软件测试人员需要精通的开发语言(4)--- Java
接下来说下,当下最火的语言 - Java.Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台 ...
- C、C++、python、Java、php、C#六种编程语言大PK 哪个好学习?
作为程序员吃饭的工具,编程语言之间也形成了某种鄙视链,各大论坛里弥漫着剑拔弩张的气氛,众口难调.也难怪有很多初学者会有疑惑,为什么会有这么多编程语言,我到底应该学什么语言? 其实各种语言都各有千秋.接 ...
随机推荐
- springMVC源码浅析
因故,需要学习springmvc,现在demo已经跑起来.列文分析springmvc并简单对比struts2. springmvc的核心对象dispatcherServlet.struts2的核心对象 ...
- sql语句书写升降序
1, desc:降序,明天今天昨天,zyx...cba,.....321 sql语句:select * from SC_BackDiggingInfo where WriteDate<='201 ...
- 查看数据库中有哪些活动的事务,对应的会话id,执行的语句
select dbt.database_id, DB_NAME(dbt.database_id) '数据库名', dbt.transaction_id, at.name, at.transaction ...
- poj 3294 Life Forms
后缀数组的题目,把后缀连接起来,这个还是先二分答案,然后选取一段连续的height值,判断这些height代表的后缀有没有覆盖一半以上的字符串. 得出答案的长度之后还要在枚举连续的heigh,判断有没 ...
- 【iOS-Android开发对照】 之 APP入口
[iOS-Android开发对照]之 APP入口 [图片 Android vs iOS] 提纲 对照分析iOS,Android的入口, iOS,Android的界面单元 为什么要有那样的生命周期 继承 ...
- [TypeScript] Understanding Decorators
Decorators are a feature of TypeScript that are becoming more and more common in many major librarie ...
- labview中层叠式顺序结构与平铺式顺序结构有什么不同?
也就看着不同,平铺式看着直观,但比较占地方,程序复杂了就显得过大.二者可互相转换,从这点也可以看出它们没有本质不同!
- POSIX字符类型
[:alnum:] 字母与数字 [:alpha:] 字母 [:blank:] 空格与制表符 [:cntrl:] 控制字符 [:digit:] 数字 [:graph:] 可打印的与可见的(不包括空格)字 ...
- 菱形实现气泡Bubble,菱形画箭头,菱形画三角形
菱形实现气泡Bubble,菱形画箭头,菱形画三角形 >>>>>>>>>>>>>>>>>>&g ...
- burp
http://www.2cto.com/Article/201406/310929.html