数据类型
1.目的:为了限制当前变量中存储的数据(变量中的地址必须是可兼容的);
为了限制当前变量空间的大小
2.分类:
一.基本数据类型
1.整数:
- byte型(1字节 2^8种数据可用 128正+128负 (-128~-1 和0~127)(-128~127))
- short型(2字节 2^16 -2^15~2^15-1)
- int型(4字节 2^32)
- long型(8字节 2^64) 正的到负的先取反后加1 负到正减1取反
整数常量默认为int类型 强转:大转小对于整数之间进行加法运算时得到的值是int型, 之所以分为四类:原因是主要看数字的取值范围
整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则
容量小的类型可自动转换为容量大的数据类型(类型自动提升)
byte,short,char → int → long → float → double
byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型
整型溢出:最大数+1才溢出; byte->short->int->long->float->double;在整数/浮点数进行运算时,谁最大就是谁。
2. 浮点数:float(4字节),double(8字节) 【浮点型常量默认double类型】
3.字符 :char(2字节 0~65535指字符的编号)
在计算机当中,如何存储字符的?--字符是一些符号,字母,数字,标点符号 它主要是以图像符号的方式存储或者表示信息的
char c1=97 //将字符的编号给字符变量那么在打印这个字符变量时,去码表中找到编号相对应的字符,然后再去打印
char c2='A' //无论如何赋值,一旦打印的是字符变量,结果一定是字符
注:字符变量在参与运算时,是以编号身份参加
eg:char c3='a';
System.out.println(c3+1);//输出为98
常用ASCII码
a 97 小写字母范围: 97~ 97+25
A 65 大写字母范围: 65~65+25
0 48 数字范围: 48~48+9
4.布尔 true/false (在java中并没有给boolean一个明确的大小,主要与底层虚拟机相关)
如果Boolean是一个变量的话,大小是1个字节;如果是一个数组的话,每个空间是4个字节
二:引用数据类型
字符串(String也不存在具体的大小,它是根据字符串的内容决定)