0

0

java与php做web开发 最大的区别在那 为什么好多用java的

php中文网

php中文网

发布时间:2016-06-06 20:33:42

|

1622人浏览过

|

来源于php中文网

原创

javaphp做web开发 最大的区别在那 为什么好多用java的

回复内容:

java与php做web开发 最大的区别在那 为什么好多用java的

感觉用PHP做web开发的后台的更多,segmentfault应该就是php的后台,Java做web后台性能更好些,每秒支持的request多些,但java开发周期长,迭代慢,但对于中小的website,性能从来不是关键,PV在没达到几千万、上亿的情况下,如何靠一个小的团队迅速迭代产品才最关键。而且做web后台,性能瓶颈往往在DB。Twitter之前是Ruby开发的,后来因为每天数据太大了,才改成Java了(其实应该是Java+Scala+Clojure)。 对于大部分互联网公司来说,能否快速的迭代产品才是企业生存的核心之道, 而且大多数是混合各种语言的后台,没有说单纯的是PHP或是Java.
从技术上来讲,LAMP(Linux+Apache+MySql+PHP)基本上是互联网的标配,基于PHP的framwork明显更多些。
用PHP的公司: N多中小站点,大点的如Baidu, QQ, facebook,当然,这些公司也用Java
用Java的: ebay, 阿里, Twitter

PHP做的Web应用性能就比Java差吗? 就拿查询MySQL获取结果集并在页面上显示数据为例来分析. HTTP请求由C级别的程序比如Apache/Nginx处理(Java的HTTP服务用的是Java开发的Tomcat等), PHP则调用内置在PHP引擎的C开发的数据库驱动mysqlnd(Java用的是Java开发的JDBC驱动)来操作MySQL, 查询的逻辑这个重点都落在了C/C++开发的MySQL身上, 然后就是把返回结果集放到PHP数组, 经过字符串处理后在页面输出, 这些逻辑并不复杂, PHP负荷并不大. 值得注意的是, PHP内置的大量库函数全部使用C实现, 而Java的核心运行时类库rt.jar则是使用Java实现.

在一些CLI下的压力测试中,因为存在大量的循环,很容易就触发Java的JIT热点编译,这时Java的计算性能上升到C的级别,这样的测试结果只能说Java在计算上的性能碾压动态解释型弱类型的PHP,而不是在Web上.对比具有JIT的机制的HHVM和PHP7的性能也能说明这个问题,在bench.php这个计算脚本的压力测试中,HHVM还是要比PHP7快1到2倍,但在WordPress等真实Web应用的测试中,HHVM和PHP7两者的性能相近.

PHP的运行模式要比Java健壮稳定得多,比如PHP-FPM是经典的多进程prefork模式,主进程会维持指定数量的工作进程数,可以设置工作进程在处理多少个请求后自动重启.反观Java多线程的Tomcat,除了内存膨胀,代码稍有不慎,就有可能让Tomcat崩溃退出,抛出一大堆的错误信息.

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

PHP开启ZendOpcache后,可以把脚本生成的opcode缓存到内存形成opcache供下次请求直接在ZendVM上执行,能带来一定的性能提升.

PHP进程(PHP-FPM,Apache)可以和MySQL/Memcached/Redis建立持久连接,一个PHP进程保持一个MySQL持久连接,省去每次请求都建立连接的开销.但需要注意PHP进程数不要超过MySQL最大连接数这一点,超时或重启MySQL后PHP-FPM在代码mysqli_connect时会自动重连,但会返回"MySQL server has gone away"的Warning信息,可以用@抑制错误输出.

PHP的热部署特性大大方便了开发和运维,这点是Java等其他语言(包括RoR/Python/Node.JS)所不能媲美的.

我是PHPer,也自学过一下JAVA WEB,觉得JAVA很复杂,而PHP实现起来却很简单。我不评价JAVA和PHP谁好,两种都是很好的语言,但PHP在WEB上的确有不少优势。

  1. PHP不需要编译,易于调试
    这是动态语言非常巨大的优点,WEB项目的改动实在太多,编译会浪费很多时间,这使得JAVA难以快速迭代。而现在互联网的发展又非常快,快速迭代的需求是必须的。

  2. PHP有丰富又成熟的框架
    YII, CAKEPHP, Zend Framework, ThinkPHP, CI等都是易于使用又久经磨练的框架。JAVA的WEB框架很成熟,但真正易于使用的很少。这给不少WEB初学者不少门槛,让JAVA程序员的精力更集中于所谓的后台开发,但现在WEB开发人员更偏向全能型,PHPer也由于PHP很简单,他们往往有精力去学习并深化CSS、 JS甚至是LINUX的技术。所以资深点的PHPer可能除了不会做画,什么都能做。

  3. PHP现成开源产品多
    PHP只专注于WEB领域,PHP的产品就是WEB的产品。而PHP又易于使用,所以促进它更易于交流。像主流的BLOG系统workpress,很多做个性BLOG的博主为了可以扩展自己的BLOG也会学一点PHP。我是基于drupal做开发的,对PHP的开源社会情况也有所了解,在大多数情况下,PHP开源项目已经可以满足绝大部分的要求,轮子都有别人做好了,只是学会使用这些开源已经足够你在WEB领域上立足。你甚至有更多时间去泡妹子。

  4. PHP非常易于部署
    PHP无论在LINUX, MAC还是WINDOWS下都很容易部署,LINUX下甚至可能默认有LAMP可以直接使用,这个是其它语言难以超越的。是否易于部署对于初学者很重要,每个初学者都希望可以快速实现自己的Hello World,这会对以后的学习过程增加信心。JAVA初学者总是有比较多的拙败感。

至于题主说用JAVA的多,的确是这样,大学教育也更偏向于JAVA,PHP很少在大学里开课,所以会JAVA比PHP多并不奇怪。 但在WEB领域上PHP的确是很好的解决方案,企业用JAVA实现WEB项目我觉得可能有两个原因:一是JAVA比PHP更好招人,二是他们已经存在一个JAVA成熟的WEB解决方案,就没有理由去重构使用PHP的方案。

我一直做 Java,学 PHP 头一天,教程里头教我写一个访问计数器,结果竟然要把访问次数写文件里头。。。这有必要吗。。。放内存不行吗。。。我就去找,硬是没找到,敢情这俩思维方式完全不一样。。。

悟智写作
悟智写作

易开即用的AI写作平台

下载

在做Web开发的时候,一般都要求要快,快速的上线,快速的迭代。然后慢慢再趋向一个稳定状态去发展,说到快,不得不承认用PHP来开发能节约不少时间,这也是刚开始一些创业公司或者一些初创项目选择PHP的很大一部分原因。
你可能要问的是PHP和JAVA在Web开发上都有哪些优缺点,下面我回答的却不是这些,但却是决定开发语言很重要的一个因素。
在开发之前语言的选择,还常常忽略一个很重要的问题。有时候我们以一个程序员的身份很难考虑到一些客观因素,这需要有经验的技术管理者来决定。在定一个项目用哪种语言开发的时候,必须要考虑到团队成员对这门语言的熟悉程度,还有你所在的城市,以及业务自身等等。
假如你的团队都是一群JAVA大牛,那么你还会要求他们去用PHP来做开发吗?
假如你的团队成员对JAVA和PHP都很了解,那你要考虑在后期人才补充上面。你所处的城市是怎样的环境,要调查这个人才市场中哪门语言的使用者相对较多。(想象一下在小城市用较新一点的语言做开发如Go,那招不来人的样子。)
今年最新的调查结果显示:在北上广深这些城市,JAVA是职位多人多,而PHP是职位多人少。
等等:-)

总的说,java语言本身规范性要优于PHP, 而且java还有一个“容器”的概念,php则不存在。
但是规范性优就意味着相比PHP要死板,
单单从开发角度,java 开发每项功能可能会走 entity->dao->service->action 这一个流程
php 是一种动态语言,最偷懒的时候 一个Model类和一个Dao类可以兼容所有数据表的映射不需要重复去写
所以 单说开发效率上 并不是一个级别的
动态语言有一些特新在快速开发上 是java这类编译语言无法望其项背的

首先,我是动态语言的支持者,当然项目中用什么语言主要还是看老大们熟悉哪个,踩过的坑哪个多,能够快速解决问题。

区别

区别,一个静态语言,一个动态语言,区别就是动态语言的生产效率高于静态语言,静态语言可以在编译期避免一些低级错误。

生产效率高的例子,
动态语言通过反射等黑魔法,可以快速实现一些静态语言只能靠编译器级别的底层修改才能实现的特性(比如AOP、IOC、DI),一个动态语言开发者只要了解那个新特性是做什么的就可以快速的实现它,而不需要进行底层修改,所以动态语言框架特别多,新特性层出不穷,Ruby on Rails就是例子。

静态语言编译期类型检查,
其实这个特点,对动态语言并没有什么吸引,在有了IDE等工具的支援,以及TDD开发方式的流行后,编译期类型检查就很鸡肋了。

为什么好多用java的

现实是PHP比Java用的多,开发和部署都比Java快很多

就个人来看,Java代码比PHP好维护。

解释型语言 编译型语言 的区别

用go好了,无论开发效率还是运行效率都要优于JAVA,并且和php一样好学,即便有坑,也不是出外语言本身

反正大型网站都是用Java的,更看重其性能和可维护性。

其实这个问题很简单,也不需要过多的数据对比啊什么的,只需要去招聘网站搜一下就知道啦,比如拉勾网,其实这两种技术都有很广的应用度。

相关文章

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

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

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

705

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

233

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

117

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

22

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

61

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

30

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

669

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

58

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3.7万人学习

C# 教程
C# 教程

共94课时 | 9.8万人学习

Java 教程
Java 教程

共578课时 | 68.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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