Java语言与PHP语言因为都可以做web应用开发,所以总有入门学习这2种语言的入门者会问Java和PHP哪一个好。讨论语言的好坏是一件不太明智的事情,我认为只能去说那一种编程语言更加适合干什么,人与动物最大的区别就是人会使用工具,而用适合的工具去干适合的事就会事半功倍,相反的就会事倍功半,就像杀鸡用牛刀,大炮打蚊子,听上去用的工具很牛逼,实际上在杀鸡和打蚊子这两件事情上牛刀、大炮真的还不如菜刀和电蚊拍好使。

应用面不同:

Java虽然目前被主要用作企业级应用编程,且多采用BS(浏览器对服务器)架构,但其可以说比较全能,桌面应用,嵌入式,移动端,服务器都可以用Java语言进行编程。

PHP是专注于动态网页技术。

语言类型不同:

Java是强类型编译语言,而强类型语言最显著的特征就是变量在使用前必须进行数据类型声明和赋值,而未经声明的变量是无法进行使用的。编译型语言因为经过编译器编译所以在执行效率上出色。

PHP是弱类型解释语言,其变量不用声明数据类型,且未经赋值可以直接使用。解释语言无需进行编译,因此在执行效率上要比编译语言差。

语法运算符有不同:

PHP中有“===”符号,表示的意思是检查左右两边类型及值是否相等,而Java中没有这个符号,和其作用相同的是equals方法,此方法是Java中的所有类的顶级父类object中的方法,要使用这个方法必须在使用这个方法的子类中对其进行覆盖重写,否则其作用于“==”符号相同。

在循环语句中PHP有foreach语句专门来进行数组的遍历,而Java中没有此语句,但有增强for,其作用与foreach基本相同。

面向对象支持不同:

Java是完全面向对象的语言,在编程上要求程序员必须面向对象进行编程。

PHP虽然也支持面向对象,但并不强制要求使用面向对象进行网页构架,使得PHP在网页编程中更加自由。

输出方式不同:

Java在输出上只有2种方式,一种是System.out.print()和System.out.println()语句,将信息打印到控制台上,前者是打印不换行,后者是打印并换行。另一种是通过API获得输出流将信息输出到文件、另一台电脑、或者是网页上。

PHP输出的信息都将输出在网页上,而且有多种输出语句。如echo、vardump、print等。

都有较好的跨平台性:

Java语言虽然是编译语言,但并不将源代码编译成特定平台上的机器码,而是编译为Java字节码文件,再由特定平台上的JVM(java虚拟机)运行,虽然比直接编译为机器码执行效率有所下降,但这种方案成功的实现了跨平台性与执行效率之间的平衡,而且随着目前硬件水平的不断提高,这种差距几乎可以忽略不计。

PHP是解释语言,它的运行是靠解释引擎来解释运行,解释引擎可以跨平台使用。但因为没有经过编译,因此每执行一次就需要解释一次,所有执行效率要比Java差。

总结:

这两种语言在制作动态网页方面各有所长,PHP制作网页成本较低,多适合资讯类网站及个人动态网站的搭建。

Java因其安全性,多线程,同步机制,跨平台执行效率多适合涉及数据安全及资金流转等方面的网站搭建,因此使用Java的多是一些大中型公司的企业级开发。

JAVA 与 PHP 的不同和相同的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. 【a501】算24点

    Time Limit: 1 second Memory Limit: 32 MB [问题描述] 几十年前全世界就浒一种数字游戏,至今仍有人乐此不疲.在中国我们把这种游戏称为"算24点&quo ...

  2. 【Qt程序】基于Qt词典开发系列<十二>呼叫讲述

    我们知道,win7系统自带有讲述人,即能够机器读出当前内容,详细能够将电脑锁定.然后点击左下角的button就可以.之前在用Matlab写扫雷游戏的时候,也以前调用过讲述人来进行游戏的语音提示. 详细 ...

  3. Delphi 7验证XML合法性(利用DTD、XSD)

    拥有正确语法的XML被称为“形式良好”的XML.通过DTD验证的XML是“合法”的XML.DTD(文档类型定义)的作用是定义XML 文档的合法构建模块.它使用一系列的合法元素来定义文档结构.XML S ...

  4. Erlang 学习笔记

    http://wenku.baidu.com/link?url=AUQR8Hn-e-fEB_lqjXsd8XfapWj1qAK7J05JoBXFib_LlSk5qSOTia8HIxNV1XkeZi-k ...

  5. 小强的HTML5移动开发之路(25)—— AppCan开发环境

    一.工具下载: 官方下载地址:http://www.appcan.cn/experience.html 按照安装指导默认安装即可 二.建立项目 启动AppCan SDK 建立项目 填入在appcan官 ...

  6. Java循环输出一个菱形与阶乘倒数

    package javafirst; public class HomeWork { public static void main(String[] args){ System.out.printl ...

  7. Linux的设备文件名与硬盘分区已经挂载点的关系

    以CentOS6.3为例. 选择的硬盘设备名是/dev/sda,即第一块STAT硬盘,然后在该硬盘分了3个主分区和1个扩展分区,设备名分别是/dev/sda1,/dev/sda2,/dev/sda3, ...

  8. TableLayout表格布局

    1.本节学习路线图 路线图分析: 从上面的路线图,可以看出TableLayout的用法还是很简单的,无非就是确定表格的行数,以及使用 那三个属性来设置每一行中的第某列的元素隐藏,拉伸,或者收缩即可! ...

  9. 【HLSL学习笔记】WPF Shader Effect Library算法解读之[BandedSwirl]

    原文:[HLSL学习笔记]WPF Shader Effect Library算法解读之[BandedSwirl] 因工作原因,需要在Silverlight中使用Pixel Shader技术,这对于我来 ...

  10. 转:PyQt4学习资料汇总 from coderzh

    一个月前研究了下PyQt4,感觉比较不错.相比wxpython,界面美观了很多,并且将界面设计与代码逻辑很好的分离了开来.关于PyQt4的资料也不少,这里我将我找到的资料汇总一下,以防自己以后忘得一干 ...