Java有着丰富的变量类型,有8种基本数据类型,以及他们对应的包装类型,还有数组集合等众多变量类型。相比之下PHP的数据类型就相对少多了,PHP只有布尔类型(Boolean)、整型(Integer)、浮点型(Float)、数组(Array)、字符串(String)、对象(Object)、资源类型(Resource)和NULL。本文我们先以基本数据类型为主,其他的类型为辅。
type identifier [ = value][, identifier [= value] ...] ;
格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。
下面我就简单的举几个变量声明的例子:
byte a,b,c;
short e = g = 10;
int f = 1000;
boolean h = false;
char i = 'a';
Java的两大数据类型:
- 内置数据类型
- 引用数据类型
内置数据类型
Java语言提供了八种基本数据类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种是布尔型。Java中的数字类型都是无符号(unsigned)的,不像C语言和C++那样还提供有符号的类型。在后续的MySQL学习中,你会发现MySQL中字段的类型里面会有无符号这个属性,这样就会出现MySQL的字段映射成Java变量时,会有取值范围不同的问题。
byte
- byte 占用一个字节的内存;
- 最小值是-128(-2^7), 最大值是127(2^7-1);
- 默认值是0,对应的包装类型是Byte,包装类型的默认值是null;
- 例子:byte a = 10;
short
- short 占用两个字节的内存;
- 最小值是-32768(-2^15), 最大值是32767(2^15-1)
- 默认值是0,对应的包装类型是Short,默认值是null;
- 例子:short a = 1200;
char
- char 占用两个字节的内存,采用 Unicode 编码;
- 最小值是 u0000(即为0);
- 最大值是 uffff(即为65,535);
- char 可以储存任何字符(部分生僻的中文字符可能不行);
- 例子:char letter = 'A';。
int
- int 占用四个字节的内存;
- 最小值是-2,147,483,648(-2^31), 最大值是2,147,483,6478(2^31-1)
- 默认值是0,对应的包装类型是 Integer,默认值是null;
- 一般的整型变量默认为 int 类型
- 例子:int a = -10020;
long
- long 占用八个字节的内存;
- 最小值是 -9,223,372,036,854,775,808(-2^63),最大值是 9,223,372,036,854,775,807(2^63-1),这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L,对应的包装类型是 Long,默认值是null;
-
例子:long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
float
- float 占用四个字节的内存;
- 默认值是 0.0f;浮点数不能用来表示精确的值,如货币,存储货币推荐使用 BigDecimal;对应的包装类型是Float,默认值是null;
- 例子:float f1 = 234.58f;
double
- double 占用八个字节的内存;
- 默认值是 0.0d;double不能用来表示精确的值,如货币,存储货币推荐使用BigDecimal;对应的包装类型是Double,默认值是null;
-
例子:double d1 = 234.05d;double d2 = 467.90;
注意:不带任何标志的浮点型数据,系统默认是double类型。
boolean
- boolean(JVM规范没有明确规定其所占的空间大小;
- 只有两个取值,true和false;
- 默认值false,对应的包装类型是Boolean,默认值是null;
- 例子: boolean b = false;
void
byte、int、long和short还可以使用16进制和8进制的方式标识,默认都是使用10进制。
int decimal = 100;
int octal = 0144;
int hexa = 0x64;
自动类型转换
整型和字符型数据可以混合运算,不同的类型的数据先转化成同一类型,然后进行计算。
低--------------------------------->高
byte->short,char—> int —>float —> long—> double
数据类型转换必须满足下面的规则:
- 不能对boolean类型进行类型转换
- 不能把对象类型转换成不相干类的对象
- 把类型范围大的转换成类型范围小的时候必须使用强制类型转换
- 强制转换的过程中会出现溢出或损失精度
引用类型
- 在Java中引用类型变量指向一个对象,这种变量在定义的时候,被声明成特定的类型,比如 Man、Student等。变量类型一但确定之后类型就不能改变。这一点和动态脚本语言PHP有着很大的不同,PHP中的变量定义后仍能保存其他类型的变量;
- 所用引用类型的默认值都是null;
写于:2018-06-06 14:56
修改:2018-06-06 22:56
最后更新于 2018-06-29 09:15:35
并被添加「java Java学习系列文章」标签,已有 2 位童鞋阅读过。
原文
https://www.ydstudio.net/archives/65.html