java基本数据类型
在讲解这个知识之前,我们先来明确下变量。
变量是什么呢?
变量就是在内存中开辟一个空间在存储数据,也就是说要存储数据就得在内存中申请一个空间,而空间的分配则由系统根据变量的类型来决定的。
在JAVA中,有两大数据类型:
1.基础数据类型
2.引用数据类型
一.基础数据类型
在JAVA里,系统为我们提供了八种基础数据类型,分别为六种数字类型(byte,short,int,long,float,double),一种字符类型(char),一种布尔类型(boolean)。
byte(字节型):
byte数据类型是8位的,带有符号。
最小值是-128(-2^7),最大值是127(2^7-1),默认值是0.
byte是int类型的1/4大小,可以用来替代不超过以上范围的整数来节约内存空间。
short(短整型):
short数据类型是16位的,占2个字节,带有符号。
最小值是-32768(-2^15),最大值是32767(2^15 - 1),默认为0。
short也可以用来替代整型,它是整形的1/2大小。
int(整型):
int数据类型是32位的,占4个字节,带有符号。
最小值是-2,147,483,648(-2^31),最大值是2,147,485,647(2^31 - 1),默认值为0。
一般使用的整型变量都使用的int类型。
long(长整型):
long数据类型是64位的,占8个字节,有符号。
最小值是-9,223,372,036,854,775,808(-2^63);最大值是9,223,372,036,854,775,807(2^63 -1);
由于数字整数默认的是int类型,所以在定义长整型的时候通常会在数字后面加上大写的L,ex:long num = 3L;
float(单精度浮点型):
float数据类型是32为的,占4个字节,用来存储小数,但因为小数默认是double类型,所以在定义float类型的时候需要这样: float f = 1.4F;
double(双精度浮点型):
double数据类型是64位的,占8个字节,用来存储小数,小数默认类型为double。
char(字符型):
char类型是一个单一的字符,可以存储任何字符。
boolean(布尔型):
boolean只有两个值:true 和 false。
默认值为false。
二.引用数据类型
类的构造方法创建了引用数据类型的变量,引用数据类型的类型一旦被声明就不能被更改,我们常见的数组,字符串,对象都是引用数据类型。
这里会涉及到引用数据类型在内存中存放的方式:
内存中有栈和堆(数据结构里的知识),栈用来存储基本数据类型,因为基本数据类型大小是固定的;而堆则用来存储引用数据类型,因为引用数据类型的大小系统并不知道,而是根据我们定义的大小来分配。
而创建引用数据类型变量时,变量本身是存储在栈里的,而变量的值则是某个存储在堆里的对象的地址,从严格意义上来讲,JAVA只有传值而没有传址,JAVA所传递的只是变量本身的值,只不过引用类型的值是一个地址,跟C语言的传址有本质的区别。