Java基础第二遍-02-变量-运算符
- 变量与常量
- 概念:
- 内存中的一个存储区域
- 该区域有自己的名称(变量名)和类型(数据类型)
- 该区域的数据可以在同一类型范围内不断变化
- 为什么要定义变量:
- 用来存放数据,可以重复使用
- 变量的特性:
- 初始化值
- 作用域:{}内
- 定义变量的格式:
- 数据类型 变量名=初始化值
- 作用:
- 记录不确定的数据
- 概念:
- 数据类型
- 数据类型的不同就是在内存中分配的空间不同
- 自动类型提升 在进行数值运算的时候
- 内存空间小的向内存空间大的提升
- 示例
int a=3; byte b=5; a=a+b;//ok b=a+b;//会丢失精度,丢失的是内存空间中存储的高位数据11111111-1111-0000 会丢失11111111
- 强制类型转换
int a=3; byte b=5; b= (byte) (a+b);
- Java默认整数类型int
- byte中b2和b3是变量,编译器认为数据不可控 可能会超出b1的存储空间 所以需要强转
- int中int为默认整数类型 会自动进行数据转换
byte b1=0; byte b2=9; byte b3=9; b1= (byte) (b2+b3); System.out.println(b1); int c1=0; int c2=Integer.MAX_VALUE; int c3=1; c1=c2+c3; System.out.println(c1); //-2147483648 丢失最高位 最高位变为1 int类型为默认类型 会自动进行数据转换
- 算数运算符
- %:4%5=4 如果左边小于右边 结果等于左边
- +"":连接符:字符串+数 自动拼接为字符串
- ++:自增:在原有数据的基础上+1,a=b++; 这里的b要进行其他运算所以先将值存入一个临时空间,b++运算完成之后,再将临时空间中b的值参与其他运算;a=++b;这里的b先自增再赋值给a
int i=1; i=i++; System.out.println(i);//i=1 //内存中的活动:i的值先存入临时变量空间i=1 ,之后执行i++,i==2,再进行赋值操作i=1,这个1是临时变量空间中的i的值
- --:自减:同自增
- 赋值运算符
- 赋值运算的特点:会进行自动转换的操作
short s=3; s+=3;//会做自动转换 其本质:s=(short)(s+3); s=s+s;//没有做自动转换的动作 会编译失败 //上面的两个赋值运算有什么区别? System.out.print(s);
- 逻辑运算符
- &与&&的区别:
- &:不管左边是什么,&两边都参与运算
- &&:左边为false,右边不进行运算
- 两者结果相同
- |与||的区别:
- |:不管左右两边是什么,|两边都参与运算
- ||:左边为true,右边不参与运算
- &与&&的区别:
- 位运算符
可以用于加密解密
- <<:左移运算(左移几位其实就是该数据乘以2的几次方,<<可以完成2的幂运算)(000000000000000000000000000000左移,高位丢失 低位空缺补0)
-
:右移运算(右移几位其实就是该数据除以2的几次方,00000000000000000000000000000000右移,低位丢失,高位补原最高位的数,如果原最高位为1则高位补1,为0则补0)
-
:无符号右移,数据右移时,高位出现空位,无论最高位为什么都补0
- 三元运算符
- a?b:c
- 练习