变量和运算符
变量的定义和使用
定义:
没有固定的值
可以重复使用
变量使用的语法:
方法一:先定义,后赋值
数据类型 变量名称;
变量名称 = 值;
方法二:定义的同时赋值
数据类型 变量名称 = 常量;
变量在同一作用域中不能重复定义
class VarDemo{
public static void main(String[] args){
int age;
age = 17;
System.out.println(age);
int age2 = 10;
System.out.println(age2);
}
}
特点:
-
占据内存一块存储区域
-
该区域有自己的名字(变量名)和类型(数据类型)
-
可以重复使用
定义变量常见错误:
- 错误1: 可能尚未初始化变量age
不能未赋值直接使用
- 错误2: 已在方法 main(String[])中定义了变量 age
不能重复定义相同的名字
基础数据类型的转换
转换规则:byte->short->char->int->long->float->double
转换分两种:
- 自动类型转换:小->大(语法:范围大的数据类型 变量 = 范围小的数据类型值)
- 强制类型转换:大->小(语法:范围小的数据类型 变量 = (范围小的数据类型)范围大的数据类型值)
注:boolean不能转换
class TypeConvertDemo{
public static void main(String[] args){
//自动转换
int i = 127;
long l = i;
//强制转换
byte b = (byte)i;
}
}
为什么使用变量
使用变量来存储常量值,达到重复使用(修改值 获取值)的目的
自动类型提升
byte,short,char进行运算的时候会 自动转向int类型进行计算
在表达式中会自动转向 表达式最大的数据类型
算数运算符
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
+ | 加 | 1+1 | 2 |
- | 减 | 1-1 | 0 |
* | 乘 | 1*1 | 1 |
/ | 除(取商) | 1/1 | 1 |
+ | 正号 | +3 | 3 |
- | 负号 | -3 | -3 |
+ | 连接字符串 | “中”+“国” | “中国” |
% | 取余 | 5%2 | 1 |
++ | 自增 | int a = 1;a++/++a | 2 |
– | 自减 | int a = 1;a–/--a | 0 |
前置++:先加后使用
后置++:先使用后加
前置–:先减后使用
后置–:先使用后减
赋值运算符
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
= | 赋值 | int a = 2 | 2 |
+= | 加后赋值 | int a = 2,a+=2 | 4 |
-= | 减后赋值 | int a = 2,a-=2 | 0 |
*= | 乘后赋值 | int a = 2,a*=2 | 4 |
/= | 整除后赋值 | int a = 2,a/=2 | 1 |
%= | 取余后赋值 | int a = 2,a%=2 | 0 |
注:(除"="外所有赋值运算符有一个类型转换问题)
short s = 5;
//s+=2 等价于 s=(short)(s+2)
s+=2;
s=(short)(s+2);
Sysout.out.println(s);
比较运算符
运算符 | 运算规则 | 规范 | 结果 |
---|---|---|---|
== | 相等于 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | true |
三元运算符
语法:数据类型 变量 = 表达式 ? 结果1 : 结果2;
表达式为true,返回结果1
表达式为false,返回结果2
三元运算符等同于
public 数据类型 方法(boolean b){
if(b) return 返回结果1;
else return 返回结果2;
}
逻辑运算符
语法:boolean result = 表达式1 逻辑运算符 表达式2;
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
& | 与 | false&true | false |
false| | 或 | false|true | true |
^ | 异或 | true^false | true |
! | 非 | !true | false |
&& | 短路与 | false&&true | false |
|| | 短路或 | false||true | true |
&&与&的区别
&:先判断第一个boolean表达式,在判断第二个boolean表达式,然后判断最终结果
&:如果表达式有一个为false,整个结果为false
&:此时如果第一个表达式为false,还是会判断第二个表达式结果(判断多余)
&&:如果第一个表达式为false,第二个表达式不执行
||:如果第一个表达式为true,第二个表达式不执行
优先级
优先级最高的是()
名词解释
常量:程序中固定不变的量称为常量
变量:程序中会改变的量称为变量