变量
例byte:8bit
8 7 6 5 4 3 2 1
0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
8号位为符号位,0表示正数,1表示负数。
int4个字节32个比特位,因为最左边第一位为符号位(1表示负数0表示正数)所以为2^7
当出现1000 0000应该表示-0但是0000 0000为+0两者出现重复所以规定1000 0000=-128=-2^7
所以byte取值范围为:-2^7-> +2^7-1
变量名28 | 表达式 | 字节 | 取值范围 | 注释 |
整型(int)
|
int
num
=
10
| 4 | -2^31 -> 2^31-1 | |
长整型(long)
|
long
num
=
10L
| 8 | -2^63 -> 2^63-1 | 使用 10 初始化也可以, 10 的类型是 int |
双精度浮点型(
double
)
|
double
num
=
1.0
| 8 |
不能单纯的用
2 ^ n
的形式表示数据范
围
| |
单精度浮点型(
float
)
|
float
num
=
1.0f
| 4 |
不能单纯的用
2 ^ n
的形式表示数据范
围
|
优先考虑 double
,
不太推荐使用
flfloat.
|
字符类型(
char
)
|
char
ch
=
'A'
char ch = '
呵
'
| 2 |
一 个字符占用两个字节,使用一个字符表示一个汉字
| |
字节类型(byte)
|
byte value = 0
| 1 |
-2^7-> +2^7-1
|
字节类型和字符类型互不相干
|
短整型(short)
|
short value = 0
| 2 |
-
32768
-
> +32767
|
这个表示范围比较小
,
一般不推荐使用
|
布尔类型(boolean)
|
boolean value = true
| 1字节或1bit |
true /
false
| |
字符串类型(String )
| String name = "zhangsan" | 中文能装65535/3个; 65534个拉丁字符 |
逻辑运算符(重点)
位运算符
按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0
移位运算(了解)
例 左移 <<: 最左侧位不要了, 最右侧补 0.
1、左移<<
符号位会被保留,数值位左移一位,低位补0,变为:
0000 0000 0000 0000 0000 0000 0000 1010
得到值为10
2、右移>>
符号位会被保留,数值位左移一位,数值位高位补0,变为:
0000 0000 0000 0000 0000 0000 0000 0010
得到值为2
可以看到,左移相当于乘以2,右移相当于除以2,JDK中很多源码都采用了这种写法,效率高而且优雅
3、无符号右移>>>
>>>在右移时会将符号位当做数值位处理,一起右移,高位补0
Google猴https://www.crxsoso.com/addon/detail/iikmkjmpaadaobahmlepeloendndfphdCx搜搜索https://www.crxsoso.com/?utm=itab 划词https://greasyfork.org/zh-CN/scripts/451141-%E9%A2%98%E6%B5%B7-x-%E5%88%92%E8%AF%8D%E6%90%9C%E9%A2%98爱吃的吃饭https://greasyfork.org/zh-CN/scripts/435357-%E8%B6%85%E6%98%9F%E5%AD%A6%E4%B9%A0%E9%80%9A%E5%B0%8F%E5%8A%A9%E6%89%8B-%E7%AB%A0%E8%8A%82-%E4%BD%9C%E4%B8%9A-%E8%80%83%E8%AF%95%E8%A6%86%E7%9B%9698-%E5%90%8E%E5%8F%B0%E8%87%AA%E5%8A%A8%E6%8C%82%E6%9C%BA-%E9%97%AF%E5%85%B3%E8%AF%BE%E7%A8%8B-%E8%87%AA%E5%8A%A8%E7%AD%94%E9%A2%98-%E9%98%85%E8%AF%BB%E6%97%B6%E9%95%BF-%E5%85%AC%E5%BC%8F%E9%A2%98-%E5%9B%BE%E7%89%87%E9%A2%98-1-1%E6%97%B6%E9%95%BF-%E4%B8%8D%E6%B8%85%E8%BF%9B%E5%BA%A6-%E4%BA%91%E7%AB%AF%E9%A2%98%E5%BA%93%E5%AE%9E%E6%97%B6%E6%9B%B4%E6%96%B0token:8d2RL2ollRZjwo