1、java中的数据类型
数据类型 | 默认值 | 大小/字节 | 范围 |
---|---|---|---|
byte 字节类型 | 0 | 1 | -128~127 |
short 短整形 | 0 | 2 | -32768~32767 |
int 整数类型 | 0 | 4 | -2147483648~2147483647 |
long 长整型 | 0L | 8 | -9223372036854775808~9223372036854775807 |
float 单精度浮点型 | 0.0f | 8 | -3.4E38~3.4E38 |
double 双精度浮点型 | 0.0d | 8 | -1.7E308~1.7E308 |
char 字符型 | ‘u0000’ | 2(一个字符能存一个汉字 | 0~65535 |
String (or any object) 引用类型 | null | ||
boolean | false | 未明确大小,理论上是1/8 | true或false |
声明:类型 命名 = 值;
float:是32位的,一个符号位,8个指数位,23个尾数位
double:64位,一个符号位,11个指数位,32个尾数位
2、引用数据类型
-
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
-
对象、数组都是引用数据类型。
-
所有引用类型的默认值都是null。
-
一个引用变量可以用来引用任何与之兼容的类型。
例子:Site site = new Site(“Runoob”)。
3、java常量
常量在程序运行时是不能被修改的。
在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:
final double PI = 3.1415927;
4、类型转换
1)自动转换
必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
byte->short,char -> int -> long -> float -> double
2)强制转换
转换的数据类型必须是兼容的。
(type)value type
5、隐含强制类型转换
- 整数的默认类型是 int。
- 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。