Web开发语言选择PHP好还是java好

xzljj 2020-11-18 04:05:35
很多朋友都会纠结一个问题,Web开发语言选择PHP好还是java好?如何选择适合的Web开发语言?

PHP与Java作为两种截然不同的程序开发语言,无论是技术层面还是发展空间,亦或是市场份额占比,都有着不同的表现方式,理念上的不同导致了Java和PHP在Web应用开发上显示了不同的结果。若要一定追根到底,深究PHP与Java究竟哪个更好?

简而言之:PHP是一种解释执行的脚本语言,语法和C语言类似,易学易用,不懂电脑的非专业人员稍经学习也能使用PHP;而Java要先编译成Class文件,然后在Java虚拟机上执行,Java开发需要熟悉Java语法以及一些核心的架构,从而实现一种可复用的、跨平台的软件,Java比PHP要难学的多。

一、 语言比较

PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而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是纯面向对象开发,功能强大,分支众多,没有java不能做的软件。C/S也好B/S也好。从功能上讲,没有语言可以和java相比。

PHP属于后起之秀,吸收了java和c以及perl等语言优点,专注互联网领域。WEB领域PHP拥有得天独厚的优势,WEB领域没有语言可以和他比。

Java语言相比PHP有明显的优势,Java使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。PHP只能实现简单的分布式两层或三层的架构,而JAVA可以实现多层架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用Java的web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。

三、数据库访问速度比较

Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。

PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改,而PHP则需要做大量的修改工作。

从数学运算和数据库访问速度来讲,Java的性能也优于PHP。实际上,对于跨平台的大型的企业应用系统来讲,Java几乎已经成为唯一的选择(微软.NET不支持跨平台),但是在于Web网站应用开发来讲,Java却面临着被PHP边缘化的危险,几乎所有的虚拟主机都支持PHP+MySQL,而支持Java的却少之又少,在资源上,网上有不计其数的PHP资源,很多着名的大型网站(例如Facebook、Mediawiki等)都是基于PHP的,而成功的Java网站却寥寥无几。

尽管Java的数学计算和数据库访问都有优势,架构也相当完美,但是PHP却可以简单轻松地支持高强度Web访问,能够快速开发应用,支持PHP的虚拟主机多如牛毛,使得用PHP开发一个网站比用Java开发一个网站要快得多,容易的多。Java所拥有的优点只适合传统的以软件项目为核心的开发模式,而PHP更适合于以客户为核心的SaaS的开发模式,因此,PHP目前在Web网站开发的优势完全是因为Web网站开发的特殊性而导致的,并非编程语言特性所决定。

四、开发成本比较

PHP经典的组合就是:PHP + MySQL + Apache。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。

Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web logic。

五、源代码安全

PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。

Java开发的程序,用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。

六、发展空间对比

安卓势头很勐,但手机安装app数量有限,推广难,也是app面临的大挑战,好在安卓只有JAVA可以做,除此之外就是HTML5了。

中国人口占全球人口19.7%,中国网民占全球网民22.4%,中国网站数量占全球网站数量的0.5%,网站的可发展空间可谓巨大;发达国家互联网对GDP的贡献可达20%,中国互联网对GDP的影响仅为3%。可谓互联网的发展空间巨大,而互联网离不开WEB,WEB离不开PHP。

两者相比,个人觉得PHP的优势更加明显。

综上所述,我个人认为,PHP适合于快速开发,中小型应用系统,开发成本低、易学,能够对变动的需求作出快速的反应,在调试、发布上,PHP也较Java简单。

而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。Java的理念是“一次编写,到处运行”,Java在应用框架底下的架构是无与伦比的,远胜过其他任何语言,Java的框架利于大型的协同编程开发,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。
...全文
2881 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37054724 2020-12-14
  • 打赏
  • 举报
回复
我用C#,我相信微软
Rimifon 2020-11-26
  • 打赏
  • 举报
回复
最近用 JScript.NET 编写网页,发现对 json 支持好的,也就是 JScript.NET,JScript(ASP)、node.js 和 php 了。 C#、Java 这些 强类型语言,解析JSON字符、读写JSON对象都比较痛苦。
  • 打赏
  • 举报
回复
什么乱七八糟的,GC只是自动内存管理,并不能调高性能,实际上GC对于需要快速响应的应用还是一个障碍,因为GC的时机是不确定的,由虚拟机根据内存使用情况决定何时GC,一旦开始GC,应用程序是被挂起的,时间可能十几毫秒到数百毫秒不等,甚至更长
老王就是我 2020-11-20
  • 打赏
  • 举报
回复
引用 12 楼 小灰狼 的回复:
[quote=引用 9 楼 老王就是我 的回复:][quote=引用 5 楼 早打大打打核战争 的回复:]实际上,只要涉及到硬件操作、性能要求高、GUI复杂的应用,都不适合用java做,比如哪个视频编码器/解码器是用java写的?
java性能不低,java的gc是非常棒的设计,相同的代码,运行次数越多,执行效率越高。性能主要看码农的技术水平[/quote] 性能是相对而言的 Java系统里,特别是涉及到分布式、多主机通信之类的问题。其性能瓶颈主要体现在数据库设计、数据查询、缓存、通信延时之类的问题,相比而言,纠结1000万次加运算法耗时1秒还是2秒之间的差距(甚至是1秒和10秒)就显得没那么重要了。 比如你的平台好,处理同样一个业务,在本地CPU上处理只需要0.001秒,而我的平台没你那么牛,需要0.1秒,你比我快100倍,但业务都离不开数据库,所有的数据库处理所花时间需要1秒,甚至于还要和银联来个对接,可能需要花1秒,以及其它通信。两相比较下来,从用户角度来看,我的平台和你的平台性能其实没什么差别。所以,平台之间的差距还是先放一边,集中精力把数据库优化一下才是该干的事。[/quote] 数据库、缓存与业务处理语言无关,标题讨论语言,我也只谈语言,没涉及其它。php也一样要搞分布式、多主机通讯,两者要实现的需求没有太大差别,而php没有gc,运行速度受限于服务器性能,并发数大致固定,PHP的执行效率大致一样,但java的执行效率是越来越高的。
老王就是我 2020-11-20
  • 打赏
  • 举报
回复
引用 12 楼 小灰狼 的回复:
[quote=引用 9 楼 老王就是我 的回复:][quote=引用 5 楼 早打大打打核战争 的回复:]实际上,只要涉及到硬件操作、性能要求高、GUI复杂的应用,都不适合用java做,比如哪个视频编码器/解码器是用java写的?
java性能不低,java的gc是非常棒的设计,相同的代码,运行次数越多,执行效率越高。性能主要看码农的技术水平[/quote] 性能是相对而言的 Java系统里,特别是涉及到分布式、多主机通信之类的问题。其性能瓶颈主要体现在数据库设计、数据查询、缓存、通信延时之类的问题,相比而言,纠结1000万次加运算法耗时1秒还是2秒之间的差距(甚至是1秒和10秒)就显得没那么重要了。 比如你的平台好,处理同样一个业务,在本地CPU上处理只需要0.001秒,而我的平台没你那么牛,需要0.1秒,你比我快100倍,但业务都离不开数据库,所有的数据库处理所花时间需要1秒,甚至于还要和银联来个对接,可能需要花1秒,以及其它通信。两相比较下来,从用户角度来看,我的平台和你的平台性能其实没什么差别。所以,平台之间的差距还是先放一边,集中精力把数据库优化一下才是该干的事。[/quote] 数据库、缓存与业务处理语言无关,单从平台性能来说,java比php要好。标题讨论语言,我也只谈语言,没涉及其它
小灰狼 2020-11-20
  • 打赏
  • 举报
回复
引用 9 楼 老王就是我 的回复:
[quote=引用 5 楼 早打大打打核战争 的回复:]实际上,只要涉及到硬件操作、性能要求高、GUI复杂的应用,都不适合用java做,比如哪个视频编码器/解码器是用java写的?
java性能不低,java的gc是非常棒的设计,相同的代码,运行次数越多,执行效率越高。性能主要看码农的技术水平[/quote] 性能是相对而言的 Java系统里,特别是涉及到分布式、多主机通信之类的问题。其性能瓶颈主要体现在数据库设计、数据查询、缓存、通信延时之类的问题,相比而言,纠结1000万次加运算法耗时1秒还是2秒之间的差距(甚至是1秒和10秒)就显得没那么重要了。 比如你的平台好,处理同样一个业务,在本地CPU上处理只需要0.001秒,而我的平台没你那么牛,需要0.1秒,你比我快100倍,但业务都离不开数据库,所有的数据库处理所花时间需要1秒,甚至于还要和银联来个对接,可能需要花1秒,以及其它通信。两相比较下来,从用户角度来看,我的平台和你的平台性能其实没什么差别。所以,平台之间的差距还是先放一边,集中精力把数据库优化一下才是该干的事。
hookee 2020-11-19
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
实际上,只要涉及到硬件操作、性能要求高、GUI复杂的应用,都不适合用java做,比如哪个视频编码器/解码器是用java写的?
第46个站台 2020-11-19
  • 打赏
  • 举报
回复
当然是JAVA了
  • 打赏
  • 举报
回复
没有java不能做的软件?你用java写个硬件驱动试一试?写个xbox、ps5游戏试一试?写个UEFI固件试一试?...
r00_a2lBUR 2020-11-19
  • 打赏
  • 举报
回复
java好一些,不用再去学php
similing 2020-11-19
  • 打赏
  • 举报
回复
引用 10 楼 老王就是我 的回复:
[quote=引用 7 楼 similing 的回复:]我要提出一些不同的看法,我的观点就是:应对各种需求有各种不同的解决方案,一口咬定某个语言比另一个语言强是在耍流氓。 首先我要反驳楼主的几个观点: 1.题主说的《Java使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。PHP只能实现简单的分布式两层或三层的架构,而JAVA可以实现多层架构。》这句是不对的。 编程的设计模式是与编程的语言无关的,设计模式中的不管是MVC模式,工厂模式等等能实现类、类的分包、引入的编程语言都可以实现。PHP有命名空间可以对类进行分类,能使用use关键字引入包,可以通过composer进行包管理,无一不证明PHP能够采用面向对象的开发方法与实现多层架构。 这个问题与其说是开发语言的问题,不如说是对开发语言认知的问题。 2.题主说的《PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改,而PHP则需要做大量的修改工作。》这里还是设计模式的问题,PHP可以把连接数据库,执行数据库语句等等一系列内容弄成驱动,和java的jdbc等等有异曲同工之处。数据库访问代码的通用性不强本质原因是设计模式没搞好。 3.题主说的《没有java不能做的软件》楼上都说了,这里我就不解释了。但这里要说明一点:跨平台有跨平台的优势,单平台有单平台的优势。PHP就是专门来做网站的,而java不是,如果非要来比,php的json_encode用java写需要多少行代码?rsa签名用php需要多少行代码?java呢?解析个json使用java强数据类型是有多痛苦?php解析起来怎么样? 4.题主说的《PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。》是错误的,php是可以使用zend等加密方式处理代码的,javaweb的.class也是可以被反编译的。 5.安卓开发不止java和h5,几乎所有编程语言都可以开发安卓,例如python,c++等等,只不过java是开发安卓的官方语言,官方的SDK是java的。 6.大型系统也是可以使用PHP的,诸如百度本身选型就采用的PHP开发。 总结起来,开发网站不管大型还是小型PHP和JAVA都是可选项,没有什么好不好。提升认知,不要纠结于谁更好。我的结论是: JAVA网站适合以下情况开发: 1.网站修改可能性极小 2.稳定性要求较高(政府官网,12306等) 3.运行效率要求较高(淘宝,京东等) 4.网站可能运用到非web能力(如SocketServer等) PHP网站适合以下情况开发: 1.网站需要或经常需要改动(百度) 2.稳定性要求不高(普通商城,博客,营销网站,公司官网) 3.未掌握java开发技术时 4.对开发时间要求短的(在同等架构资源积累条件下,PHP较JavaWeb开发网站效率要快很多)
php解析json简单,这个我就要反驳一下了,java解析json可以非常简单,只要你不嫌弃后续调用痛苦,可以直接转map,后续调用一次次get,至少解析这一步不会多痛苦。 json_encode()就能简单调用,不过是php官方把解析函数封装成通用工具,同理可得,你自己写的解析方法也可以封装成通用方法,或者直接引用jackson,同样也是一行代码[/quote]你说的没错,如果单纯解析的话有封装的包很容易,是我举例有疏忽。
老王就是我 2020-11-19
  • 打赏
  • 举报
回复
引用 7 楼 similing 的回复:
我要提出一些不同的看法,我的观点就是:应对各种需求有各种不同的解决方案,一口咬定某个语言比另一个语言强是在耍流氓。 首先我要反驳楼主的几个观点: 1.题主说的《Java使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。PHP只能实现简单的分布式两层或三层的架构,而JAVA可以实现多层架构。》这句是不对的。 编程的设计模式是与编程的语言无关的,设计模式中的不管是MVC模式,工厂模式等等能实现类、类的分包、引入的编程语言都可以实现。PHP有命名空间可以对类进行分类,能使用use关键字引入包,可以通过composer进行包管理,无一不证明PHP能够采用面向对象的开发方法与实现多层架构。 这个问题与其说是开发语言的问题,不如说是对开发语言认知的问题。 2.题主说的《PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改,而PHP则需要做大量的修改工作。》这里还是设计模式的问题,PHP可以把连接数据库,执行数据库语句等等一系列内容弄成驱动,和java的jdbc等等有异曲同工之处。数据库访问代码的通用性不强本质原因是设计模式没搞好。 3.题主说的《没有java不能做的软件》楼上都说了,这里我就不解释了。但这里要说明一点:跨平台有跨平台的优势,单平台有单平台的优势。PHP就是专门来做网站的,而java不是,如果非要来比,php的json_encode用java写需要多少行代码?rsa签名用php需要多少行代码?java呢?解析个json使用java强数据类型是有多痛苦?php解析起来怎么样? 4.题主说的《PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。》是错误的,php是可以使用zend等加密方式处理代码的,javaweb的.class也是可以被反编译的。 5.安卓开发不止java和h5,几乎所有编程语言都可以开发安卓,例如python,c++等等,只不过java是开发安卓的官方语言,官方的SDK是java的。 6.大型系统也是可以使用PHP的,诸如百度本身选型就采用的PHP开发。 总结起来,开发网站不管大型还是小型PHP和JAVA都是可选项,没有什么好不好。提升认知,不要纠结于谁更好。我的结论是: JAVA网站适合以下情况开发: 1.网站修改可能性极小 2.稳定性要求较高(政府官网,12306等) 3.运行效率要求较高(淘宝,京东等) 4.网站可能运用到非web能力(如SocketServer等) PHP网站适合以下情况开发: 1.网站需要或经常需要改动(百度) 2.稳定性要求不高(普通商城,博客,营销网站,公司官网) 3.未掌握java开发技术时 4.对开发时间要求短的(在同等架构资源积累条件下,PHP较JavaWeb开发网站效率要快很多)
php解析json简单,这个我就要反驳一下了,java解析json可以非常简单,只要你不嫌弃后续调用痛苦,可以直接转map,后续调用一次次get,至少解析这一步不会多痛苦。 json_encode()就能简单调用,不过是php官方把解析函数封装成通用工具,同理可得,你自己写的解析方法也可以封装成通用方法,或者直接引用jackson,同样也是一行代码
老王就是我 2020-11-19
  • 打赏
  • 举报
回复
引用 5 楼 早打大打打核战争 的回复:
实际上,只要涉及到硬件操作、性能要求高、GUI复杂的应用,都不适合用java做,比如哪个视频编码器/解码器是用java写的?
java性能不低,java的gc是非常棒的设计,相同的代码,运行次数越多,执行效率越高。性能主要看码农的技术水平
老王就是我 2020-11-19
  • 打赏
  • 举报
回复
明显文不对题,你这是明显得出结论,不应该发帖而应该发成博客
similing 2020-11-19
  • 打赏
  • 举报
回复
我要提出一些不同的看法,我的观点就是:应对各种需求有各种不同的解决方案,一口咬定某个语言比另一个语言强是在耍流氓。 首先我要反驳楼主的几个观点: 1.题主说的《Java使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。PHP只能实现简单的分布式两层或三层的架构,而JAVA可以实现多层架构。》这句是不对的。 编程的设计模式是与编程的语言无关的,设计模式中的不管是MVC模式,工厂模式等等能实现类、类的分包、引入的编程语言都可以实现。PHP有命名空间可以对类进行分类,能使用use关键字引入包,可以通过composer进行包管理,无一不证明PHP能够采用面向对象的开发方法与实现多层架构。 这个问题与其说是开发语言的问题,不如说是对开发语言认知的问题。 2.题主说的《PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改,而PHP则需要做大量的修改工作。》这里还是设计模式的问题,PHP可以把连接数据库,执行数据库语句等等一系列内容弄成驱动,和java的jdbc等等有异曲同工之处。数据库访问代码的通用性不强本质原因是设计模式没搞好。 3.题主说的《没有java不能做的软件》楼上都说了,这里我就不解释了。但这里要说明一点:跨平台有跨平台的优势,单平台有单平台的优势。PHP就是专门来做网站的,而java不是,如果非要来比,php的json_encode用java写需要多少行代码?rsa签名用php需要多少行代码?java呢?解析个json使用java强数据类型是有多痛苦?php解析起来怎么样? 4.题主说的《PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。》是错误的,php是可以使用zend等加密方式处理代码的,javaweb的.class也是可以被反编译的。 5.安卓开发不止java和h5,几乎所有编程语言都可以开发安卓,例如python,c++等等,只不过java是开发安卓的官方语言,官方的SDK是java的。 6.大型系统也是可以使用PHP的,诸如百度本身选型就采用的PHP开发。 总结起来,开发网站不管大型还是小型PHP和JAVA都是可选项,没有什么好不好。提升认知,不要纠结于谁更好。我的结论是: JAVA网站适合以下情况开发: 1.网站修改可能性极小 2.稳定性要求较高(政府官网,12306等) 3.运行效率要求较高(淘宝,京东等) 4.网站可能运用到非web能力(如SocketServer等) PHP网站适合以下情况开发: 1.网站需要或经常需要改动(百度) 2.稳定性要求不高(普通商城,博客,营销网站,公司官网) 3.未掌握java开发技术时 4.对开发时间要求短的(在同等架构资源积累条件下,PHP较JavaWeb开发网站效率要快很多)
小灰狼 2020-11-19
  • 打赏
  • 举报
回复
引用 3 楼 早打大打打核战争 的回复:
没有java不能做的软件?你用java写个硬件驱动试一试?写个xbox、ps5游戏试一试?写个UEFI固件试一试?...
+1 没有Java做不了的软件,这牛皮吹得快破了,再狂热的粉也不至于如此捧杀 不过,如果说Java做不了,则PHP估计也做不了,这话算是比较得体了

2,099

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧