与javascript不同,Java是强类型语言,在定义变量前需要声明数据类型。主要分两种数据类型:基本数据类型和引用数据类型。
1、基本数据类型分析:
基本数据类型 | 数值型 | 整数型 | byte字节类型 | 占8位,用于表示最小数据单位,取值范围为-128~127(代表以存储数字的大小) |
short 短整型 | 16位,很少用,取值范围为-32768 ~ 32767 | |||
int 整数类型 | 32位,常用,取值范围为-2147483648 ~ 21474836487 | |||
long 长整形 | 64位,常用,取值范围为-2^63-1~2^63-1,所有整数默认都为int类型,所以在定义的long型数据后面加L或l。小于32位数的变量,都按int结果计算 | |||
浮点型 | float 浮点类型(单精度) | 32位,后缀F或f,1位符号位,8位指数,23位有效尾数。取值范围为-1.4E-45~-3.4E+38,0,1.4E-45~3.4E+38 | ||
double 双精度类型(双精度) | 64位,最常用,后缀D或d,1位符号位,11位指数,52位有效尾数,取值范围为-4.9E-324~-1.7+308,0,4.9E-324~1.7+308 | |||
char 字符型 | Java中的char类型使用Unicode字符集,在内存中是以16位无符号数据表示,取值范围:0~65535 | |||
boolean 布尔型 | 8位,取值范围:true和false,取其他值报错 |
1、引用数据类型分析:
指的是那些保存在堆内存中的对象,意思是,变量中保存的实际上只是一个指针,这个指针指向内存堆 中实际的值;按引用访问,当查询时,我们需要先从栈中读取内存地址,然后再顺藤摸瓜地找到保存在堆内存中的值;
主要包含:类、接口和数组等。当写代码的时候经常会实例化个对象,例如new Person(),运行的时候会在堆内存中存储这个对象的信息,当Person p=new Person(),此时运行的时候会在栈内存中存储堆中那个对象的地址。