基本数据类型
基本数据类型 | byte | short | int | long | float | double | char | boolean |
包装类型 | Byte | Short | Integer | Long | Float | Double | Character | NA |
默认值 | 0 | 0 | 0 | 0L | 0.0f | 0.0f | NA | false |
位数 | 8 | 16 | 32 | 64 | 32 | 64 | 16 | 1 |
最大值 | 2ⁿ-1 (n=7) | 2ⁿ-1 (n=15) | 2ⁿ-1 (n=31) | 2ⁿ-1 (n=63) | 3.4028235E38 | 1.7976931348623157E308 | 65,535 | NA |
最小值 | -2ⁿ (n=7) | -2ⁿ (n=15) | -2ⁿ (n=31) | -2ⁿ (n=63) | 1.4E-45 | 4.9E-324 | 0 | NA |
- byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一, 但是需要考虑数据大小
- Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 一般地整型变量默认为int类型;
- 这种类型主要使用在需要比较大整数的系统上;
- float在储存大型浮点数组的时候可节省内存空间;浮点数不能用来表示精确的值,如货币;
- 浮点数的默认类型为double类型,double类型同样不能表示精确的值,如货币;
- char类型是一个单一的16位Unicode字符;char数据类型可以储存任何字符;
位运算符
& 按位与操作符,当且仅当两个操作数的某一位都非0时候结果的该位才为1。 (A&B),得到0000 0000,即0
| 按位或操作符,只要两个操作数的某一位有一个非0时候结果的该位就为1。 (A | B)得到0001 1110,即30
^ 按位异或操作符,两个操作数的某一位不相同时候结果的该位就为1。 (A ^ B)得到0001 1110,即30
〜 按位补运算符翻转操作数的每一位。 (〜A)得到11111111 11111111 11111111 11110101,即-11
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到00101000,即40,相当于10*4
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到00000010,即2,相当于10/4,余数忽略
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
注意:
&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,被称为“短路效应”;而&则还是继续执行,直到整个条件语句执行完为止。