我来谈谈PHP和JAVA在web开发上的的区别

这里的标题写的是谈谈PHP和JAVA的区别,其实是委婉的说法,其实别人是想听PHP好还是JAVA好!!! 从而从中找到存在感!!!

  因为由于我是从多年的php开发转到java开发的。所以最,不时的有好几个同事问我,你觉得java好还是php好。我每次的回答都是,各有千秋吧,各有各的好处,这是最实际的答案。

  然后临了,去想想到底都有什么差别。今天我就来仔细总结下,php与java到底有啥差别吧。

    1. php即写即用的。

       也就是说每次只有一改动完成,用户立马看到效果,而java则慢多了,代码改动完成后,要重新编译,然后重启jvm,中间耗费的时间可是不少啊,而且重启jvm过程可是会造成用户响应中断的哦。

    2. php写东西快。

      php可以说是非常敏捷的,一个需求给到,只要不考虑后期的性能和用户量问题,那是相当快速的,甚至你都可以不用框架,直接写也会非常快的,写一个增删改查功能,可能也就30-50行代码就搞定了。而java就慢多了,首先要想一下用什么框架,目前基本上就是spring了,然后就是配置各种数据库,过滤器,servlet,决定是用mybatis还是hibernate,然后考虑代码之间的传递,然后考虑事务。。。 然后不停调试,一改代码可能就是几分钟的等待时间,可想而知。

    3. php的表面思路更清晰。

      什么是表面思路,就是你看到的东西就是真正做出来的东西,比如echo "hello world",就是输出hello world,而java则不同,你可能是写response中,可能是写在modelattribute中,也可能就是return了该字符串,然后不知道怎么的,它就显示到页面上了。

    4. php占用内存少。

      php是进程式处理问题的,占用内存相当少,可以说,你在一台机器部署50个项目没有任何问题,只要访问量不上来,搞得定。而java就不行了,java每启动一个项目,本身就得耗尽许多内存,比如在一台8g内存的机器上,一般跑上2个项目就差不多了。

    5. 说了这php的好处,难道java就没有好处吗?那是不可能的。

    6. java组件多。

      我个人觉得单是这一点就盖过其他所有优点了,因为组件多,意味着用的人多,群众的眼睛是雪亮的。所以,java一定是好的,它已经积淀了太多的东西,不是一门新型语言能够随便替代的。你想要做什么,好好搜索java组件,可能都有你需要的功能,特别对于当下最流行的大数据产业,java更是占据一方。而php在这种场景就有点无能为力了。

    7. java线程池,连接池,异步化方便。

      其实这一点和第一点也很相似,也是因为组件多,所以要使用线程池连接池都很方便,这对于高并发高性能的场景来说,是绝对必要的。因为java的运行原因就是多线程的,所以不用每次都去初始化很多基本的东西,这省去了太多的时间,也因此大家可以忍受服务器启动的缓慢过程,因为只有一次。而php则是多进程的,每次都需要重新加载所有需要的代码,也因此无法将一些常用数据保存在内存,连接池也不大好做,异步操作更是一个大短板。

    8. java是真正意义上的逻辑清晰。

      因为,java中,你可以从一个进入可以借助IDE工具分析到最深层次的逻辑操作,对于每个字段,都可以清晰明了,这其实是接口和完全对象的一个使用优点。而php则做不了或者说很少有人费那劲去做这种事情,php可以说是半面向对象半面向过程开发,所以,在调用过程中插入几个自定义的函数调用是很正常的,那么你再想通过简单的IDE去分析调用链就不那么容易了。比如,对于第三方提供的接口,php就很难清楚的看出接口返回了什么,除非你把它打印出来,但是打印出来也不一定对,因为有些返回值的数据不一定有体现。这对于理解代码来说,增加了一个大大的门坎。

    9. 虽说java编译比较烦,但是可以为你提前发现错误。

      java的编译的确比较耗时,但是如果有明显的错误,编译是不会通过的,这就给你一个重新检查代码的机会。而php则不会,不管你写得多烂,都不会给你提示什么,而许多时候,往往就因为少写了个;分号,导致你排查数小时。

    10. java远程调用方便,rmi,hessian,dubbo。

      不管怎么样,远程和本地调用都很方便的知道相关的信息,而且java的同语言调用不是采用纯粹的http调用,而且维护一定的连接,从而大大提高性能。而php也有远程调用,但是相对来说就弱许多了。

  其实没有问题是没有绝对的好坏的,存在即合理。只是应用场景不一样罢了。

原文地址:https://www.cnblogs.com/jthb/p/8157776.html

时间: 2024-10-24 22:20:11

我来谈谈PHP和JAVA在web开发上的的区别的相关文章

为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架 由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或 者springMVC这样的框架,而不是使用servlet加jsp这样的技术呢?特别是现在我们web的前端页面都是使用velocity这样的模板语 言进行开发,抛弃了jsp,这样的选择又会给我们java的web开发带

PHP和Java在Web开发下相比较

比较PHP和Java的Web开发(推荐相关JAVA教程).以下就几个主要方面进行的比较: 一. 语言比较 PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点.语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发.而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法.所以java不如php好学. 二. 数据库访问比较 Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库.访问数据库的接口比较统一. PHP

Java的web开发用什么框架好

在做Java的web开发时,不同的公司,不同的程序员可能都会采用不同的框架,使用不同的框架有什么区别,又有哪些好处呢?今天武汉java培训专家带大家和大咖一起来学习一下其中的要领:今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做Java的web开发,会选择struts2或者springMVC这样的框架,而不是

java servlet结合Oracle搭建java的web开发环境

一. 首先在电脑上安装了 oracle数据库, 安装ORACLE数据库按常理说,直接下载安装就行了,但是中途是遇到了问题的,原因就是我的系统是Win7 64 oracle的client客户端不支持 win7 64,即使是64的系统也只能下载32位的client安装,这里搞的我重用ghost还原了下系统.(其实后面发现它是可以完全卸载的) 二.我电脑上是一直都安装有ecplise的,但是没有安装java的web开发环境,下面我说下安装方法吧 ecplise菜单栏----Help-->Install

Java在Web开发语言上败给了PHP(转)

PHP的主要语言开发者之一.Zend公司的创始人之一Andi Gutmans最近在blog中直言不讳地批评了Java语言.他指出,目前Java厂商试图在JVM上提供动态语言实现的路子根本不对,Java已经输掉了Web开发语言的战争,PHP是事实上的标准和胜利者. Gutmans的这篇文章在技术界引发了强烈争议,很对人对此有不同的意见,我在这里就阐述一下我对PHP和Java两种语言的看法. 我早先曾经在<Perl.PHP.ASP.JSP技术比较> 一文中对比过PHP和Java的异同,简而言之,P

【JAVA】WEB开发实际任务——记录

一 Ext namespace 解析 对于java中的包,我们都认为主要是为了类名重复而引入的一种管理类的方法.同样,因为js定义的类太多,难免会定义重复的类名.特别是在今天这个需要共同协作完成项目的世界里.Ext.namespace正是为此而生. Ext.namespace('com.company'); 就是定义了一个com.company的包. com.company.ClassA = function(){}:就是定义了com.company包下面的一个Class.你一定会问,既然定义了

java之web开发过滤器

我们通常上网的时候都会遇到一个问题,看到一个视频之类的,想要点开观看,点击之后,网页 提醒你:您尚未登录,是否要登录?然后巴拉巴拉跑去输账号密码. 那么这就是一个过滤器的功能,当你要访问一个资源的时候(通常理解为链接),服务器会进行 分析,当前的访问者是否符合一定条件(通常就是检测一下是不是会员,是否已经登录),符合 条件的话,服务器会跳转到指定链接,不满足的话也会友情提醒:您不是会员,您尚未登录等等. 如何实现呢,还是以用户登录为例子吧,看下面~~~ 1.三个页面 登录页面,登录成功页面,登录

web开发上传和下载(转)

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请 求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common- fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,st

web 开发常见问题--GET POST 区别

首先,get和post是什么? --两种 HTTP 请求方法:GET 和 POST HTTP Request Methods GET.POST 专业名称是 HTTP Request Methods.但 HTTP Request Methods 不只是 GET 和 POST,完整列表如下: GET POST PUT DELETE HEAD OPTIONS TRACE CONNECT PATCH REST 使用前四个:GET.POST.PUT.DELETE.因些这四个也是经常被一块提及的 Http定