java 数据类型
整数 : byte 8位 -2^7-2^7-1,short 16位 -2^15-2^15-1
int 32位 -2^31-2^31-1 long 64位 -2^63-2^63-1 在java 中默认 整数类型位int
byte a1 = 126; short a2= 256;int a3=3600 long a4 = 45631321L :因为整数默认类型为int 所以 定义long a4 = 45631321L 需要加L 这属于小容器装载大容器,存在四种整数类型是为了节省内存空间。
小数: float 单精度 32位 double 双精度 64位 java默认小数位双精度 浮点运算存在问题
float b1=32.0f or float = (float)32.0不加f 同上 double b2=32.0
布尔值:boolean d1=true; boolean=false
字符:char c1 = '中'; char c2='a';char c3 ='9'
char c4 =97 System.out.println(c5)//a 定义字符类型 直接写数字 返回数字对应的ascll编码 采用char c6=‘\u4e2d’(\u为转义字符 java中对unicode码对sacill做了扩展) 0x61 (0x开头为十六进制)0123(0开头为八进制)0b1010101(0b开头为二进制)
想要直接输出\ char c8 = '\\';
数据类型的强制转换 byte -->int
short-->int-->long-->float-->double
char-->int
有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后进行计算 boolean 布尔值不能参与转换
-1的有符号右移y以为 -1>>1 有符号负值补1右移
1000 0001 取反 1111 1110(第一位代表符号1为负值0为正值)补码1111 1111 右移(补1)1111 1111 然后 取反 补码 1000 0001 所以-1有符号右移 结果为-1
-1的无符号右移(无符号)
正数右移(补0) 无符号唯一(正负数全部补0)