php和java数据类型和表达式的区别

前段时间学习了下php觉得挺简单的,不过这只是相对java而言,php简单了但是还是很有很多细节问题需要注意,为了顺便巩固下java基础知识,我把java和php做了对比。这次比较的是数据类型和运算符。

一.数据类型

先来看看php的数据类型划分:

基本数据类型:整数类型,小数类型【不分单精度和双精度】,boolean类型,字符串

复合数据类型:数组、对象

特殊数据类型:NULL、资源类型

下面是java数据类型划分

基本数据类型:数值类型(整数类型【byte,short,int,long】 浮点类型【float,double】)、字符型char、布尔类型

复合数据类型:数组、类、接口

注:php是一种类似js的弱类型语言,变量不需要任何数据类型修饰符,但是java要明确指定数据类型

另外php的小数类型要注意精度的问题,请看下面一段程序:

<?php
    echo "<br/>".PHP_INT_SIZE;
    echo "<br/>".PHP_INT_MAX;

    //浮点数的精度是14位,从左边第一位不是0的数字开始算起

    $c=2.13568974566125311;
    $d=2.00000012345678;

    echo "<br/>".$c;
    echo "<br/>".$d;
?>

下面是输出结果:

就如注释写的那样,php的精度是14位,要从左边第一个不为0的数字算起

php中的boolean还有一点特殊之处,下面几种情况php会把结果看成是false

  • the 布尔值 FALSE 自身
  • the 整型值 0 (零)
  • the 浮点型值 0.0 (零)
  • 空 字符串, 以及字符串 "0"
  • 不包括任何元素的数组
  • 不包括任何成员变量的对象(仅PHP 4.0 适用)
  • 特殊类型 NULL (包括尚未设定的变量)
  • 从没有任何标记(tags)的XML文档生成的SimpleXML 对象

二 运算符的比较

算数运算符方面,java和php基本一致,但是算术运算符有一点差异那就是php中有 ===和 !==。对于第一种是比较严格的要求数据类型和值相同;对于位运算符也基本和java一致,但是php没有无符号右移;php中多了一种赋值运算符 .=,在php中.可以看成连接符

对于java和php运算符的优先级,虽然不用死记硬背但是可以记住几个最简单的例如自增++自减--的优先级高于加减乘除,括号的优先级最高

到了这里建议对于位运算符不了解的可以看看这篇文章:

http://blog.csdn.net/walkcode/article/details/1024235

上面的总结可能会有遗漏,希望大家指出。

php和java数据类型和表达式的区别,布布扣,bubuko.com

时间: 2024-11-01 00:19:51

php和java数据类型和表达式的区别的相关文章

JAVA -数据类型与表达式---变量与赋值

变量 程序中所管理的大部分信息,都是用变量表示的.下面讨论如何在程序中声明和使用变量. 变量(variable)代表保存数据的内存单元,变量名是内存单元的符号地址.变量声明要求编译器分配足够大的内存单元来保存指定类型的值,并且要定义一个变量名用于访问相应的内存单元 重点概念:变量代表保存数据的内存单元,变量名是内存单元的符号地址. 赋值语句 variable = 0 这条语句称为赋值(assignment)语句,因为它对变量赋值.执行这条语句时,先计算赋值运算符(=)右边的表达式,然后将计算结果

JS与JAVA数据类型的区别

JavaScript与Java数据类型的区别 阅读目录 Number String Boolean Null Undefined Object 今天开始正式认真学习js,虽然在平常j2ee开发中也经常用到JS但并不精通,这次随笔记下js与Java数据类型的不同之处 回到顶部 Number 与java不同,js作为弱类型语言即使在浮点数与整数上也未作明确区分,Number值可以是var a = 5 or  5.5,以及其他进制如八进制 var a  = 070.甚至是科学计数 var a = 3.

Java数据类型(二)、Java运算符、流程控制

一.程序写作(创建对象的初始化过程) 1.目的/结果:输出一段话"..." 2.步骤: (1)创建一个基础类,main: (2)创建一块内存空间,用来存储这段话 ①先定义属性,name,sex,age等: ②再定义方法,需要重新创建新的class类,但不需要新的ma方法: (3)调用系统方法/库方法println,实现输出结果 ①在原有的类中创建新对象,将新的class类中的方法调用过来: ②运行,输出所有的内容. //---------------------------------

JavaScript的基础数据类型和表达式

Java Script的基础数据类型和表达式 基本的数据类型: number(数值)类型:可分为整数和浮点数 string(字符)类型:是用单引号“'”或者双引号“"”来说明的. boolean(布尔)类型:布尔类型的值true(对)或false(错). null和undefined:null表示一个“空”的值,undefind表示值未定义, &&:与运算,只有所有都为true,&&运算结果才是true. ||:或运算,只要其中一个true,||运算结果就是tru

java中==与equel的区别

转载自:http://xiashengchao.iteye.com/blog/753409 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同. equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同. ==比较的是2个对象的地址,而equals比较的是2个对象的内容. 显然,当equals为t

Java中的==和equals区别

引言:从一个朋友的blog转过来的,里面解决了两个困扰我很久的问题.很有久旱逢甘霖的感觉. 中软国际电子政务部Jeff Chi总结,转载请说明出处. 概述:        A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同:当用于引用类型的时候,是比较对象是否相同.        B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的.        C.基本类型没有equals方法,equals只比较值(对象中的

java中==与equals的区别

值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同. equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同. ==比较的是2个对象的地址,而equals比较的是2个对象的内容. 显然,当equals为true时,==不一定为true: 一.String中的equals和== 1. public

java中equals和==的区别 (转)

java中equals和==的区别  值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同. equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同.  ==比较的是2个对象的地址,而equals比较的是2个对象的内容. 显然,当equals为true时,==不一定为true: 一.String中

java中==和equal的区别

今天看到了一篇写的很好的博客,所以就转来了 转载地址:http://xiashengchao.iteye.com/blog/753409 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同. equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同. ==比较的是2个对象的地址,而equals比较