今日预习和总结
2020/7/31My harvest of the day Studay day-02 \ 变量和运算符
变量的定义和使用
作用:开辟一块内存空间后可以,往该区域存储数据,修改数据,也可以获取数据
特点:
----1;占据一块空间
----2;该区域有自己的名称(变量名)和类型(数据类型)
----3;可以重复利用
----4’该区域可以在同一个种类型范围变化
语法
方式一:先定义后赋值
数据类型 变量名 int age;
变量名 常量值 age = 17;
方式二:在声明的同时赋值
数据类型 变量名 = 初始化值: int age = 17;
变量的总结:
----1;变量必须先声明,并初始化之后才能使用
----2;定义变量后必须要有数据类型
----3;局部变量在从开始定义到所在的花括号内可以使用,离开就不行了
----4;成员变量作用域在整个类中都可以使用
----5:同一个作用域内,变量的名字不可以重复的
格式 数据类型 常量名 赋值符号 常量值
交换两个相同类型的值a和b 把a值放到c值 将b值赋给a值 最后把c值赋给a
基本数据类型转换 (自动类型转换和强制类型转换)
作用:当数据类型不满足需要的条件的时候进行转换
自动类型转换(隐式转换)
前言:byte short char 相互不转换 boolean不参与转换
转换规则: byte-short-char-->int->long->float->double
语法格式: 范围大的数据类型 变量 = 范围小的数据类型;
强制类型转换
前言:就是强制把数据范围大的类型转换为数据范围小的类型有损失不建议
语法:范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型值;
总结:小转大自动转 大转小需强转 强转会精度丢失 char'A'或者'a'转换就是按照码表相加
byte short char 参与计算时自动提升为int类型计算
内存分析: int a = 10; 此时栈帧开辟一块空间存放此变量
a = 20; 此时栈帧内的值被改变
a= (byte) 20; 此时栈帧中的数据类型被改变
运算符 算数运算符 赋值运算符 比较运算符 三元运算符 逻辑运算符
算数运算符(加减乘除)
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
+ | 加 | 2+3 | 5 |
+ | 链接符号 | “中”+“国” | 中国 |
- | 负号 | int a=3: -a | -3 |
- | 减 | 3-1 | 2 |
* | 乘 | 3*1 | 3 |
// | 除 | 2/2 | 1 |
% | 取模 | 5%2 | 1 |
++ | 自增 | int a = 1; a++/++a | 2 |
– | 自减 | int b = 3 b–/--b | 2 |
了解一下++a和a++
如果是++a的话就是下一步运算的是 a整个变量
如果是a++的话下一步运算就是 a+1整个变量
赋值运算符
作用:简化代码
= 就是讲表达式赋值给变量
+= num1+=num2 等价于 num1= num1+num2
-= num1-=num2 等价于 num1= num1-num2
*= num1*=num2 等价于 num1= num1*num2
/= num1/=num2 等价于 num1= num1/num2
%= num1%=num2 等价于 num1= num1%num2
比较运算符
作用:比较常量或者变量
== 全等于
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
三元运算符
作用: 判断表达式是否是成立成立输出一个结果否则输出另一个结果 (必须用一个变量
接收结果)
就是一个数据类型 接受 接收一个 boolean的表达式 如果表达式成立就输出结果a否则b
语法: 数据类型 变量 = boolean 表达式? 结果a:结果b;
例子:String retult = a%2 == 0?"偶数":"基数";
注意:如果后面结果的类型要和接受类型一直否则报错
逻辑运算符
语法格式: boolean result = 表达式A 逻辑运算符 表达式B
& 与 两个表达式都是真 结果为真
| 或 两个只要有要有一个是真就是真
^ 异或 真为假假为真
! 非 就是取反的意思
&& 短路与 只要左边的为假那么右边的就不执行 效率高
|| 短路或 只要左边的为真那么右边的也不执行
运算符优先级
非要优先 就用圆括号 括起来