首页 > 编程语言 >PHP与Java的区别分析

PHP与Java的区别分析

时间:2024-04-07 23:32:47浏览次数:23  
标签:php java 区别 数据库 开发 Java PHP

一、语言特点

php: 一种的像Python的动态弱语言类型的服务器脚本语言,不需要编译代码;它是专为Web开发目的而开发和设计的,而且简单容易上手。

Java: 是一种通用的面向对象编程语言,属于强势优选语言类型,在执行前必须先正确编译。是面向对象的和人类可读的;支持服务器端和客户端;可用于开发独立应用程序或基于Web的应用程序,上手比PHP难。

二、语法

1.PHP是一种脚本语言,代码在服务器上执行,而结果以纯文本返回浏览器。

2.PHP能够运行在各种不同的平台中:比如windows,linux,MaxOS等。

3.PHP的脚本能够存放在文档的任何位置,且以 结尾。

4.PHP的注释: PHP支持三种注释方式:

A.双斜杠 例如://这是申明一个变量

B.#符号 例如:#这是申明一个变量

C./**/ 例如:/这是申明一个变量/

java同样支持三种注释方式:

A.双斜杠 例如: //这是申明一个变量

B./**/ 例如: /这是申明一个变量/

C./***/ 例如: /**这是申明一个变量/

5.PHP中的大小写敏感问题: 在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感,而变量则是大小写敏感的。

而在java中,所有函数名,关键字,类,变量等都是大小写敏感的。

6.PHP的变量申明:PHP类似于Javascript,两者都属于是若引用类型,申明的时候不用指明其类型。 而java则是强引用类型,申明时必须指明其类型。

PHP中申明变量的方式是:$X = 7; 注意: java和PHP变量的命名规则相同。

7.PHP中变量的作用域:

A. global (全局的): 只能在函数以外进行访问

B. Local(局部的): 只能在方法体重进行访问

C.static (静态的)

java中全局变量允许在方法中进行访问。

8.global关键字: 可以在函数体内使用global关键字对全局变量进行访问。

例如:

}

myTest();echo $y; //输出 15

?>

9.PHP中的echo和print的差别:

echo能够输出一个以上的字符串,速度比print稍快

print只能输出一个字符串,并返回1 (与之不同,java可以使用print输出一行语句)。

注意: PHP中print能够在双引号中输出变量,而java中双引号中不能输出变量。

例如:

echo "Study PHP at $txt2";

同样的也能输出数组中的任意元素:echo "My car is a {$cars[0]}";

echo与print在有无括号的情况下都能使用。例如:echo与echo();

10.PHP中的类: 就其实现过程与java相同,都是用了关键字class ,但其中的数据声明却不相同。

{var $color;function Car($color="green") {$this->color = $color;

}functionwhat_color() {return $this->color;

}

}?>

11.PHP中的字符串可以使用双引号或者是单引号表示。但是在java中只能使用双引号。

例如:“string" 'string'

12.java中有内部类的概念,php没有;

13.java中一个类下面有方法重载的,php只能重载父类的方法;

14.运行机制不同:

15.java是强类型,php是若类型,比如方法入参、返回等,java必须要指定值的类型;

16.java里有 8种基本数据类型,和对应的引用类型,php没有引用类型,在java中判断两个变量的值是否相等,必须先转成基本数据类型,不然可能比较的就是两个变量引用值,php则不用;

17.java和php构造方法不能继承,java用super,php用parent可调用父类构造方法。

三、开发成本

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

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

四、系统架构设计

对于Web开发两者的区别:

php: 采用面向过程的开发方法,适合快速开发,WEB领域php拥有得天独厚的优势,但可拓展性、需求应变性较差,而且只能实现简单的分布式两层或三层的架构,对于大型的系统负荷站点,只能采用分布计算。

Java: 使用的是面向对象的系统设计方法,所以用Java进行开发前期需要做大量的系统分析和设计的工作,Java可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。

五、安全性

php: 开发的程序的源代码都是公开的,安全性低。

Java: 开发的程序,最后用户拿到的只是一些编译好的class类,安全性高。

六、访问数据库速度

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

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

五、性能

有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。

在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了2000020000的回圈。而PHP测试的是20002000循环(少一个数量级),却分别用了63秒。

数据库测试中,二者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete: JSP 需要 13秒,PHP 需要 69 秒。

当并发时php的性能是不如Java的,上面的测试是网上找的,本人没有测试过,估计是PHP是每次请求完都会释放所有的内存,断开数据库连接,这样会导致每次请求都需要重新连接数据库这样会占用一部分资源,而Java则是有一个数据库线程池中,需要时直接从连接池获取资源,在并发时会比php节省更大的资源。

八 总结

综上所述,就Web开发而言,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。

而且Java本身一开始就不是专门给WEB开发用的,所以Java开发电子商务的成本要远远高于PHP开发出来的同类软件产品。但也正由于Java开发的成本较高,往往也是做一个同样的产品,达到同样的效果,Java需要付出比PHP开发多出N倍的时间及经济成本,直接的造成了巨大的时间及成本浪费,因此开发时还是需要根据实际需要去选择语言。

标签:php,java,区别,数据库,开发,Java,PHP
From: https://blog.csdn.net/qq_21886255/article/details/137474638

相关文章

  • 【附源码】java毕业设计实验室管理系统
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在当前的教育与科研环境中,实验室不仅是学术研究、科技创新的重要基地,也是培养学生实践能力和科学素养的关键场所。随着科学技术的不断进步和实验项目的日......
  • 【附源码】java毕业设计室内设计类网站
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在当今社会,室内设计不仅仅是一种职业或技能,它已经融入了人们的日常生活,成为提升居住和工作环境品质的重要方式。随着经济的发展和人们审美水平的提高,对室......
  • 狂神说Java Web学习笔记_HTTP
    HTTP详解HTTP超文本传输协议(HyperTextTransferProtocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。文本:html,字符串….超文本:图片,音乐,视频,定位,地图…….默认端口:80HTTPSHTTPS(全称:HyperTextTransferProtocoloverSecureSocketLayer),是以安全为目标的HTTP......
  • 狂神说Java Web学习笔记_Maven
    Maven项目架构管理工具我们目前用它就是为了方便导入jar包,可以帮你自动导入一个jar包所依赖的其他jar包。Maven的核心思想:约定大于配置配置环境变量配置阿里云加速镜像maven安装目录的conf/settings.xml在<mirrors></mirrors>标签中添加mirror子节点<mirrors......
  • 狂神说Java Web学习笔记_Java Web基本概念
    JavaWeb基本概念静态Web动态WebWeb服务器技术讲解ASPPHPJSP/ServletB/SC/SWeb服务器TomcatTomcat实际运行JSP页面和ServletIISTomcat详解Tomcat目录结构分析配置server.xml是服务器核心配置文件,在这里可以设置端口号、设置域名或IP、默认加载的项目、请求编......
  • day21java学习打卡:匿名对象的使用
    /* *一.理解“万事万物皆对象” *1.在java语言范畴中,我们的都将功能,结构封装到类中,通过类的实例化, *来调节具体的功能结构 *  >Scanner,String *  >文件:File *  >网络资源:URL *2.涉及到Java语言与前端HTML,后端的数据库交互时,前后端的结构在ja......
  • Java学习Day2——关于类的概述
    一、昨天的实践:术语随机生成器//术语生成器publicclassPhraseOMatic{ publicstaticvoidmain(String[]args) { //创建三个词库 String[]wordListOne={"24/7","multi-Tier","30,000foot","B-to-B","win-win", "fron......
  • java方法重载
    packagechapter07;abstractclassAnimal{abstractvoideating()}classDogextendsAnimal{@Overridevoideating(){System.out.println("狗吃骨头!");}}classPandaextendsAnimal{@Overridevoideating(){......
  • Java多线程
    Process进程系统资源分配的单位Thread线程CPU调度和执行的单位1.继承Thread类packagedemo01;//创建线程方式一:继承Thread类,重写run()方法,调用start开启线程//线程开启不一定立即执行,由cpu调度publicclassTestThread1extendsThread{@Overridep......
  • 使用JavaScript设置Tab栏自动切换
    在下面代码中设置了tab栏可以进行周期性的切换时间时5秒,也可以鼠标移到相应的位置进行切换。在允许过程中出现:Cannotreadpropertiesofundefined(reading'className')报错,不知道时什么原因还没有解决,希望大佬来指点一下!!!!<!DOCTYPEhtml><htmllang="en"><head><meta......