数据类型
1 B(字节) = 8 bit 计算机以字节为存储单位。
1 KB = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB
1 TB = 1024 GB
1 PB = 1024 TB
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节 | -128 至 127 |
短整型 | short | 2个字节 | -32768 至 32767 |
整型 | int(默认) | 4个字节 | -231 至 231-1 |
长整型 | long | 8个字节 | -263 至 263-1 |
单精度浮点数 | float | 4个字节 | 1.4013E-45 至 3.4028E+38 |
双精度浮点数 | double(默认) | 8个字节 | 4.9E-324 至 1.7977E+308 |
字符型 | char | 2个字节 | 0 至 216-1 |
布尔类型 | boolean | 1个字节 | true,false |
类型转换
byte < short = cha r< int < long < float < double
自动类型提升
相当于小萝卜放大坑
格式:大的数据类型 变量名 = 小类型的数据;
例如:double b = 10;
强制类型转换
相当于大萝卜放小坑
格式:小的数据类型 变量名 = (小的数据类型)大类型的数据;
例如:int a = (int)10.0;
有一个常见的面试题如下:
面试题
byte b1 = 10;
byte b2 = b1 + 100;//报错 需要强制类型转换 byte b2 = (byte)(b1+100);
这里之所以会报错是因为b1是一个byte型的整型变量,100默认是int型的整型变量,b1+100就是一个int类型的变量了,赋值给byte类型的自然就会出错了。解决方法就是使用强制类型转换byte b2 = (byte)(b1+100);
赋值运算符
=,+=,-=,*=,/=,%= 等号两本,先按照指定的运算符进行计算,然后将结果转换为等号左边的类型,再赋值给等号左边
同样是上边的例子这样写就不会报错:
byte b = 10;
b += 20; // 等价于b = (byte)(b+20);
逻辑运算符
对布尔值进行计算
&& 并且 有假则假
|| 或者 有真则真
! 取反 真变假 假变真
^ 异或 相同为假 不同为真
&&和&区别
&&具备短路功能而&不具备.
因为都代表并且的意思 ,也就是只要有一个条件是假的 结果一定是假的
使用**&&进行判断 第一个条件如果是假的 不再判断第二个条件 直接得出结果
使用&**进行判断 即使判断了第一个条件为假,也需要判断第二个条件 才会得出结果
位运算符
<< 左移 M<<N 相当于 M*2^N
>> 右移 M>>N 相当于 M/2^N
这个速度比幂运算要快!!!!
计算2^8: 2<<2
;