JAVA02
Variable变量
结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。
计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
当程序需要使用存储空间时,操作系统最小会分派给程序1个字节,而不是1个位。你可能会说,如果程序只需要1个位的空间,系统分派不能只分派1个位吗?答案是不能!这就像你只需要1支烟,你到商店去买烟,商店分派的最小单元是1盒(20支),他不可能卖给你1支烟。
数据类型四类八种
- byte 8位 1个字节
- short 16位 2个字节
- float int 32位 4个字节
- long double 64位 8个字节
- 浮点类型
- 字符 2位
- 布尔 1位
String是引用类型
l 和基本类型使用方法一样
变量定义使用注意事项
l 不赋值不能使用
- 不使用编译可以通过
- 如果使用了就会出错
l 作用范围
- 在大括号内
l 不可以重复定义
- 编译失败
类型转换
l 小转大 自动类型转换
直接转换
- Int转double
l 大转小 强制转换
不可以直接转换
- 被转类型 变量名 =(被转类型)要被转的数据
- 编译不会出错但精度会损失
- 一般不要进行
l
算术运算符
优先级 | 描述 | 运算符 |
1 | 括号 | ()、[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、--、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |
- 字符串遇到 “+”变成“+”连接符
- 除法中整数运算得不到小数,如果有小数就会去除
- %读膜 k%b k膜b
- ++a 和a++区别
i. ++a 先加后用
ii. b=++a;
iii. a是a+1 b也是a+1
iv. a++先用后加
v. a是a+1 b也是a
- 赋值运算符
i. -=
ii. +=
iii. *=
iv. /=
v. %=
vi. =
vii. byte b=1;
viii. b=b+1;
ix. 损失精度
x. 1为int类型 4个字节
xi. b为byte类型 1个字节
xii. 为了进行运算需要将byte转为4个字节
xiii. 运算完毕仍为四个字节因此byte就溢出了
xiv. 因此需要最后结果强转为byte
xv. 即 byte=(byte)(b+1);
xvi. 如果写为byte+=1;会自动进行强制类型转换就不用强转了;
l 比较运算符
= != < > <= >=
System.out.println(a=b); b
System.out.println(a==b); true
l 逻辑运算符
& | ! ^ 与 或 非 抑或(相同为true相异为false)
&& 短路与(一边为false另一边不执行)
System.out.println(3>4&&++j); j仍然为j;
|| 短路或(一边为true另一边不执行)
System.out.println(3<4||++j); j仍然为j;
l 三元运算符
- 公式
布尔表达式 ? 结果1:结果2;
布尔表达式为true 结果为1
布尔表达式为false 结果为2
l 商场库存案例
- 固定数据
- 清单商品数据为变量
- 统计为运算
l 总结
- byte<char<short<int<long<float<double
- 整数 int 小数 double
- 强制转换尽量少用
- ++ -- 前置 后置
- 赋值运算符尽量使用+=号类型
- 求三位数的个位十位百位:
public static void main(String[] args) {
@SuppressWarnings("resource")
Char chs[] = String.valueOf(new Scanner(System.in).nextInt()).toCharArray();
System.out.println("个位是:"+chs[2]+"\n十位是:"+chs[1]+"\n百位是:"+chs[0]);
}