基本数据类型和引用数据类型
基本类型:8个
char boolean byte short int long float double
整数类型 | byte short int long |
浮点类型 | float double |
字符类型 | char |
布尔类型 | boolean |
引用类型:3个
类 接口 数组
基本类型所占字节
序号 | 数据类型 | 位/大小 | 可表示数据范围 | 默认值 | 备注 |
---|---|---|---|---|---|
1 | byte | 1/8 | -128 ~ 127 | 0 | 2^8/2 0 - 127 -128 ~ -1 |
2 | short | 2/16 | -32768 ~ 32767 | 0 | 2^16 |
3 | int | 4/32 | -2147483648 ~ 2147483647 | 0 | 2^32 |
4 | long | 8/64 | -9223372036854775808 ~ 9223372036854775807 | 0 | 2^64 |
5 | float | 4/32 | -3.4E38 ~ 3.4E38 | 0.0 | |
6 | double | 8/64 | -1.7E308 ~ 1.7E308 | 0.0 | |
7 | char | 2/16 | 0 ~ 255 | ‘\u0000’ | '\u0000’是Unicode码的字符,代表一空格 |
8 | boolean | - | true或false | false |
tbd
char为什么0-255
float/double为什么取这个范围
区别
1.存储位置不同
-
基本数据库类型,不牵扯内存分配问题
被创建时,栈上给其划分一块内存,数值直接存在栈上
在方法中定义的非全局基本数据类型变量的具体内容是存储在栈中的 -
引用数据类型,开发者为其分配空间
栈上给其引用(句柄)分配一块内存,对象的具体信息都存储在堆内存上,后由栈上引用指向堆中对象地址
具体内容都是存放在堆中的,而栈中存放的是其具体内容所在内存的地址
2.传递方式不同
都是值传递,
基本数据类型传递的值是数值
引用数据类型传递的值是地址