Java 第二天
一、类型转换
1. 隐式转换(从小到大)
byte,short,char –> int –> long –> float –>double
2. 强制转换(从大到小)
格式:目标数据类型 变量名 = (目标数据类型)(被转换的数据)
3. 相关问题
public class transform {
public static void main(String[] args){
short s = 1;
s += 1; //情况一
s = s + 1; //情况二
System.out.println(s);
}
}
在上述代码中,情况一是正确的,情况二会丢失精度。
二、 逻辑运算符
1. 单用法
& : 有 false 则 false
| : 有 true 则 true
^ : 异或
! : 偶数个,值不变;奇数个,值相反
2. 双用法
&& : 左边为 false , 则右边不执行
|| : 左边为 true ,则右边不执行
三、位运算符
运算符 | 运算 | 范例 |
<< | 左移 | 3 << 2 = 12 -> 3*2*2 = 12 |
>> | 右移 | 3 >> 1 = 1 -> 3/2 = 1 |
>>> | 无符号右移 | 3 >>> 1 = 1 |
& | 与运算 | 6 & 3 = 2 |
| | 或运算 | 6 | 3 = 7 |
^ | 异或运算 | 6 ^ 3 = 5 |
~ | 反码 | ~ 6 = – 7 |
题目:请用最有效率的方法计算 2*8 的结果
答案:2 << 3
四、三元运算符
1. 格式
(关系表达式) ? 表达式 1 : 表达式 2
2. 执行流程
如果关系表达式是 true ,结果是表达式 1;
如果关系表达式是 false ,结果是表达式 2.
五、键盘录入数据
//导包
import java.util.Scanner;
public class keyboard_input {
public static void main(String[] args){
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
// 获取数据
System.out.println("请输入 i 值: ");
int i = sc.nextInt();
System.out.println("i = " + i);
}
}