在 java 中有 8 种基本数据类型和 3 种引用数据类型
8 种类型
4 种整型
byte 1 字节 -128 - 127
short 2 字节 -32,768 —— 32,767
int 4 字节 -2,147,483,648 ——2,147,483,647(超过20亿)
long 8 字节 -9,223,372,036,854,775,808——9,223,372,036854,775,807
2 种浮点类型
float 4 字节 -3.40292347E+38-3.40292347E+38(有效位数 6 – 7位)
double 8 字节 -1.79769313486231570E+308-1.79769313486231570E+308(有效位数15位)
1 种 Unicode 编码的字符单元
char 2 字节 整个 Unicode 字符集
1 种真值类型
Boolean 1 字节 true/false
注意: java 中所有的数据类型所占据的字节数与平台无关,java 没有任何的无符号类型
3 种引用类型
在java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。
类(class)
接口(interface)
数组(array)
类型简单对比
基本数据类型 | 引用数据类型 |
---|---|
在栈中进行分配 | 在堆中进行分配,堆的读写速度远不及栈 |
变量名指向具体的数值 | 变量名指向存数据对象的内存地址,即变量名指向hash值 |
变量在声明之后java就会立刻分配给他内存空间 | 它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址 |
基本类型之间的赋值是创建新的拷贝 | 对象之间的赋值只是传递引用 |
“==”和“!=”是在比较值 | “==”和“!=”是在比较两个引用是否相同,值比较需要自己实现equals()方法 |
基本类型变量创建和销毁很快 | 类对象需要JVM去销毁 |
网友评论