php和java有什么区别

清浅
发布: 2019-05-06 16:31:55
原创
5878人浏览过

php与java的区别有:在运行机制上php是直接对文本代码进行解释编译而java则先被编译成字节码再在虚拟机中进行二次编译;在处理并发上,java是采取单进程多线程的方式,php是多进程

php和java有什么区别

(1)运行机制

Java代码被编译成字节码后,会在虚拟机里由JIT进行二次编译成为本地码,据传言其执行速度可以和C++相媲美,经过我自己测试,用Java实现一个简单的Memcache协议的缓存服务器,在Java 1.6下运行,和memcache本身相比,同样数据量的存取时间比大概是3:2,虽然有差距,但是比想象的要好很多。Java 1.7在JIT方面做了大量的改进,性能比Java 1.6还要好。

PHP是直接对文本代码进行解释执行,即便有opcode缓存技术,仍然有不可逾越的性能鸿沟。PHP的opcode类似于java的class字节码,仍是解释执行。

立即学习PHP免费学习笔记(深入)”;

(2)处理并发

Java在并发处理上采取单进程多线程的方式,web应用会随着web server的启动而启动,而来自web 浏览器的请求将被分配给线程池内的闲置线程处理,也就是说当有请求到达的时候,进程是准备好的,线程是准备好的,Java要做的仅仅是业务逻辑处理了。

PHP在并发处理上时采取多进程的方式,在web server里没有物理的web应用概念,每个请求都相当于一个独立的应用,而进程也随着请求的到达才启动,而随着请求的结束而消亡。在Fast CGI环境下,有类似于线程池的进程池技术,对性能提高有很大的帮助。然而一方面web server和Fast cgi通讯仍需要通过socket,多出了一定的IO损耗,另一方面进程池内的进程间也很难进行通讯,所以在并发处理上仍然无法和Java相比。

(3)数据库应用

Java可以采用数据库连接池技术,节省下数据库连接过程带来的时间损失。

PHP没有这个好处,原因来自上面的第二条。

在数据库接口上java有JDBC,PHP有PDO,这两个很类似。然而Java有非常多的ORM技术框架(如Hibernate)使数据库操作变得异常简单,而PHP的运行方式决定了它是ORM的禁区(当然也可以做ORM,只是做到什么程度是由你对ORM带来的性能损耗的忍受程度决定的)。

(4)缓存技术

Java是单进程,很多缓存可以直接在Java的heap中做,而无需借助外在的工具,当然也有很好的缓存框架,比如Ehcache,因为没有网络IO,所以性能非常高。

PHP多进程单线程决定了它只能借助外来的缓存服务器,比如Memcache.

(5)热部署

Java的热部署能力很弱,如果希望修个BUG而不停服是很难做到的。PHP天然热部署。

(6)开发成本

一个好Java程序员所需的知识储备更多,开发、调试所需的周期较长,好点的web server也都是收费的。PHP免费、web server也免费。

(7)安全性

这个要看你怎么来定义安全性,如果是代码安全,java class反编译很容易,这点上来说两者差不多。Java有安全配置机制可保证一些“非法操作”无法执行,这点上来说PHP较弱。然而Java很容易因为一个BUG导致整个应用宕掉,PHP就安全的多。

以上就是php和java有什么区别的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号