java类型查看命令及类型强制转换

java类型查看

可以用Object.getClass()来查看类型

public class one {
    public static void main(String[] args) {
        Object obj = new Object();
        obj = '2'-'0';
        System.out.println(obj.getClass()); // 类型查看方法
    }
}

在这里插入图片描述
当然 也可以用 变量 instanceof b来判断变量是不是b类型 返回的是一个布尔值

java 变量类型查看

public class one {
    public static void main(String[] args) {
        Object obj = new Object();
        obj = '2';
        System.out.println(obj.getClass());
    }
}

在这里插入图片描述
这里可以看出输入的是一个String类型的常量,下面对其进行与常数的运算。

public class one {
    public static void main(String[] args) {
        Object obj = new Object();
        obj = '2'-1;
        System.out.println(obj.getClass());
    }
}

在这里插入图片描述
这个涉及到了Java的类型强制转换的规则,在不同类型运算时短字节,会向长字节转换,如char(16bit)会被转换为int(32bit)

扩展

隐式转换

在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换。例如:

double num = 10; // 将int类型的10直接赋值给double类型
System.out.println(num); // 输出10.0

类型从小到大关系图:
在这里插入图片描述
说明:

  • 整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。
byte b1 = 10; byte b2 = 20;
byte b3 = b1 + b2;
// 第三行代码会报错,b1和b2会自动转换为int类型,计算结果为int,int赋值给byte需要强制类型转换。
// 修改为:
int num = b1 + b2;
// 或者:
byte b3 = (byte) (b1 + b2);

2.boolean类型不能与其他基本数据类型相互转换。

强制转换

把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量;例如:

double num1 = 5.5;
int num2 = (int) num1; // 将double类型的num1强制转换为int类型
System.out.println(num2); // 输出5(小数位直接舍弃)

字符的“+”操作

字母加数字

char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值:

  • a’ – 97,,a-z是连续的,所以’b’对应的数值是98,'c’是99,依次递加
  • ‘A’ – 65,,A-Z是连续的,所以’B’对应的数值是66,'C’是67,依次递加
  • ‘0’ – 48 ,0-9是连续的,所以’1’对应的数值是49,'2’是50,依次递加
// 可以通过使用字符与整数做算术运算,得出字符对应的数值是多少
char ch1 = 'a';
System.out.println(ch1 + 1); // 输出98,97 + 1 = 98
char ch2 = 'A';
System.out.println(ch2 + 1); // 输出66,65 + 1 = 66
char ch3 = '0';
System.out.println(ch3 + 1); // 输出49,48 + 1 = 49

字符串加数字

当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执
行。

System.out.println("itheima"+ 666); // 输出:itheima666
System.out.println(1 + 99 + "年黑马");            // 输出:100年黑马
System.out.println(1 + 2 + "itheima" + 3 + 4);   // 输出:3itheima34
// 可以使用小括号改变运算的优先级
System.out.println(1 + 2 + "itheima" + (3 + 4)); // 输出:3itheima7
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值