目录
编码方式为Unicode:
1字(word)=2字节(byte)=16位(bit)
1位(bit):代表二进制中的0或1,即一位二进制数
基本数据类型:
byte:
1byte=8bit
最小值:-128(-2^7);
最大值:127(2^7-1);
默认值是:0;
short:
2byte=16bit
最小值:-32768(-2^15);
最大值:32767(2^15 - 1);
默认值是:0;
int:
4byte=32bit
最小值:-2,147,483,648(-2^31);
最大值:2,147,483,647(2^31 - 1);
一般地整型变量默认为 int 类型;
默认值是:0;
long:
8byte=64bit
最小值:-9,223,372,036,854,775,808(-2^63);
最大值:9,223,372,036,854,775,807(2^63 -1);
默认值是:0L;
float:
4byte=32bit
最小值:1.4E-45;
最大值:3.4028235E38;
默认值是:0.0f;
double:
8byte=64bit
最小值:4.9E-324;
最大值:1.7976931348623157E308;
浮点数的默认类型为double类型;
默认值是:0.0d;
char:
2byte=16bit
最小值:\u0000(即为0);
最大值:\uffff(即为65,535);
默认值是:‘\u0000';
boolean:
1byte=8bit
只有两个取值:true 和 false;
默认值是:false;
引用数据类型:
类(class)、接口(interface)、数组(Array)
所有引用数据类型的默认值都是null。
差异:
基本数据类型 | 引用数据类型 |
在栈中进行分配 | 在堆中进行分配,堆的读写速度远不及栈 |
变量名指向具体的数值 | 变量名指向存数据对象的内存地址 |
变量在声明之后java就会立刻分配给他内存空间 | 它以特殊的方式(类似C指针)指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址 |
基本类型之间的赋值是创建新的拷贝 | 对象之间的赋值只是传递引用 |
“==”和“!=”是在比较值 | ==”和“!=”是在比较两个引用是否相同,需要自己实现equals()方法
|
基本类型变量创建和销毁很快 | 类对象需要JVM去销毁 |