导读
开发环境
版本号 | 描述 | |
---|---|---|
操作系统 | Win11-21H2 | 内部版本号22000.588 |
IDEA | 2021.3 | |
强制转换
byte short char 运算时提升为 int
验证一:如下报错,提示
提供的是int
,也就是a + b
运算后得到的是int类型数据!!!
之前写了类似的代码,还一直感觉奇怪呢,现在这就破案了。
|
验证二:获取对象类型
代码如下,运行结果为:class java.lang.Byte class java.lang.Integer
这里虽然显示的是
class java.lang.Integer
,其实是将int
隐式转换为了对象Integer
。
public class Foo {
public static String getType(Object o){ //获取变量类型方法
return o.getClass().toString(); //使用int类型的getClass()方法
}
public static void main(String[] args) {
byte a = 113;
byte b = 119;
byte c = (byte)(a +b);
System.out.println(getType(a));
System.out.println(getType(a + b));
}
}
字符串和字符的加操作
字符串的加操作
字符的加操作
赋值运算符
+=
隐藏了一个强制类型转换
短路
逻辑运算符
运算符优先级
原码、反码、补码!!!
原码
反码
补码
应用:隐式转换(前面补0)
应用:强制转换(补码形式)
应用:其它运算符
ps: 无符号右移运算符
>>>
参考资料
- P30 Java基础概念-14-idea-扩展设置 https://www.bilibili.com/video/BV17F411T7Ao?p=30