数据类型
-
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
-
弱类型语言
- 要求变量的使用要不需要严格符合规定,所有变量都必须先定义后才能使用
-
Java的数据类型分为两大类
-
基本类型
-
整数[byte,short,int,long],小数[float,double],字符[char],布尔[boolean]
-
获得基本数据类型[boolean除外]占据的位数: 封装类的类名.SIZE
-
获得基本数据类型[boolean除外]的取值范围: 封装类的类名.MIN_VALUE,封装类的类名.MAX_VALUE.[byte取值范围: -128到127]
-
基本数据类型的封装类: Byte,Short,Integer,Long,Float,Double,Character,Boolean.[除字符和布尔外,基本数据类型的首字母大写,即为封装类的类名]
-
|----整数:
byte:
占据位数:8[1b]
取值范围:-128--->127
short:
占据位数:16[2b]
取值范围:-32768--->32767
int:
占据位数:32[4b]
取值范围:-2147483648--->2147483647
long:
占据位数:64
取值范围: 省略
为什么在long类型数据末尾添加"l" 或 "L":
1.整数中的默认数据类型为int: 即单独指出1个整数时的类型为int.
2.通常在编写long类型数据时,会在数据末尾添加上"l" 或 "L",以说明此整数为long类型.
辅助案例:
int num=2147483647;
long L1= 2147483648L; //2147483648作为int类型,超过了int的取值范围,所以报错. 2147483648L指出数据类型为long
long L2=1L; // 1作为int类型,没有超过了int的取值范围
-
|----小数
介绍:
根据精确度分为: double[双精度],float[单精度] [取值范围: 正无穷 --- 负无穷 ]
double:[双精度]
1.double数据类型占据64位[8b] 2.double的取值范围最大,可以容纳整个宇宙中数据. 3.double可以精确到小数点后的第17位.
float:[单精度]
1.float占据的位数为32位[4b] 2.float可以精确到小数点后第8位 3.小数中的默认类型为double: 单独1个小数的类型为double. 因此,float类型数据末尾必须添加"F"或"f".
-
|----字符:
介绍:
-
字符: 指1个符号,写为 char,数据必须被单引号包裹.
-
字符串: 指N个符号,写为String,数据必须被双引号包裹.
备注: 'A' "A" 根本引号 区别 是字符 字符串 -
特性:
1.char类型占据位数:16 ,取值范围: 0---->65535
2.编写字符:
a.直接写符号
b.编写ASCLL码
c.编写Unicode码
示例:
char c1='A';//直接写符号
char c2=65;//编写ASCLL码: Java系统参照ASCLL码表,将数字转为字符
char c3='\u0041';//编写Unicode码: Java系统参照Unicode表,将Unicode转为字符
-
-
|----布尔类型:[非此即彼的这种数据]
介绍:
1.布尔类型中只有2个数据: true,false
2.布尔类型占据1位空间,取值为true,false(不会转换为0\1)
示例:
boolean b=true;
System.out.println(b);
-
|----默认值:
介绍:
当没有给变量赋值时,系统会自动给变量赋予一个值,该值称为默认值.[全局变量才会默认值]
问题:
局部变量含有默认值吗?
没有. 局部变量在使用之前,必须被赋予1个值.
- 默认值:
整数默认值: 0
小数的默认值: 0.0
字符的默认值: 空字符 / 0 //空字符不是null,null属于引用类型
布尔的默认值: false
-
-
引用类型
- 类
- 接口
- 数组
-