数据类型、变量、运算符
1.数据类型
1.1数据存储
1.存储单位(重点)
为了保存负数,高位舍弃,作为符号位
1 为负数 0 为 整数
所有类型都需要损失一倍的精度
比如byte 8位 最大值 为 2^7-1 最小值为 -2^7
Byte = -128 ~ 127
Bit = 比特
Byte = 8bit 字节
Short = 2byte = 16bit 短整型
Int = 4byte = 32bit 2147483647 整型
Long = 8 byte = 64bit 长整型
2.存储
正数 存原码
比如保存2 , 2对应的二进制为 0000 0010
负数 存补码
-2 : 1000 0010 原码
1111 1101 反码 除了符号位,1变0,0变1
1111 1110 补码 = 反码+1
1.2 数据分类
1.3数据类型的使用
数据类型 名字 = 值;
整数型
byte
short
int
long
浮点型
float:单浮点 32 位
double:双浮点 64位
整数保存的是二进制,比如123456浮点数 保存的是科学计数法 比如123+E21
字符型
Java中字符型占用两个字节也就是16位 并且以英文单引号表示且只能有一个字符
short也是16位:-32678~32767
char也是16位:0~65535 因为char没有负数,所以不需要符号位
布尔型
Java中布尔型不参与任何转换,只有true和false,没有其他的
类型转换
自动类型转换:低到高(精度)byte~int
强制类型转换:高到低(精度)int~byte
自动类型转换:byte->short->int->float->double
char->int->long->double
混合运算
在混合运算时,结果是当前运算中的最大类型
2.变量
常量
常量在程序的整个生命周期中,值不可更改
字面量/直接量
字面量也是有数据类型的
整数默认是整型 int
小数 默认是double
全局变量
全局 : 允许在类外创建变量,和类同级别,所有类都可以直接访问这个变量,不需要二次引用
所谓二次引用,就是指 没有使用 . 操作符 xxx.xxx
而在java中类之外是不允许写变量的,但是可以把一个变量的访问权限设置为public,然后通过类名进行引用调用即可
全局的缺点 就是命名冲突问题
3.运算符
>> : 右移运算符 正数左边补0 , 负数先写出原码 在左边补1, 再将结果转换成原码 (最高位是符号位无需变化)
<< : 左移运算符 正负数都左边补0
>>>: 无符号右移运算符 ,直接在最左边补0