byte b=3; int i=b;// ?b的类型是int的了吗。

[复制链接]
查看11 | 回复5 | 2012-7-26 09:33:03 | 显示全部楼层 |阅读模式
b 的类型还是byte,只是在定义i的时候将b隐式转换成了int类型,然后赋值给了i
补充:想查看变量的类型会用到反射机制,建议初学还是先不要研究反射,有两种情况:
1,基本类型不可以查看数据类型,想查看可以先转化为包装类再查看
2.对于引用类型,可以使用:变量名.getClass().getName()...
回复

使用道具 举报

千问 | 2012-7-26 09:33:03 | 显示全部楼层
=是赋值运算,不会改变数据类型,只是将b的值赋给i而已,只有i的类型才是int!你查看变量的定义不就知道变量是很么类型了么...
回复

使用道具 举报

千问 | 2012-7-26 09:33:03 | 显示全部楼层
b的类型,并没有改变,只是b的值在赋给i 时,java的虚拟机自动将值变成了int赋给了i 而已。变量的类型是在定义时就定义的,所以你可以找到定义他的地方。或者,你用。sysout(变量.getClass.getName);打印下这个这个变量所属于的类的名字。但是基础类型的是不能这样做的。...
回复

使用道具 举报

千问 | 2012-7-26 09:33:03 | 显示全部楼层
晕,这很明显是隐式类型转换,会输出i的值为3.如果想显式转换b的话可以用(类型名)要转换的值!希望对楼主有用!...
回复

使用道具 举报

千问 | 2012-7-26 09:33:03 | 显示全部楼层
不是,是将byte类型的b的值赋给了int类型的i...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行