# re: 请教一个关于char的问题 回复 更多评论
2007-11-20 21:53 by
请谈谈你们的看法啊,为什么会输出"invoke int"呢?
我是从默认数据类型转换和内存实际存放数据的形式考虑的,感觉不是很正确,请高手指点
# re: 请教一个关于char的问题 回复 更多评论
2007-11-21 09:50 by
首先,感谢你的回复!过来打个招呼顺便给点意见。
程序调用public void func(int i)方法,打印invoke int
原因:java的8种基本类型中short 、 int 、 long 、 float 、 double 、 char 之间可以互相转换,但有时需要强制转换并且会损失精度,如果你print i , i的值= char型的ASCII 值,如果int等数字型转char型 那char型返回的就是该int值对应编码值的字符,具体编码方式我还不清楚 int 从19968开始输出的char就是汉字 。
boolean和 byte 于其他类型的转换没用过也没有研究。
如果还问为什么那只能告诉你这是规定,java的规定,“规定”懂不懂,就是王8的屁股^o^……开个玩笑!
你要是非要刨根问底,那就找点java基础的书看一看,再不行就去sun的官方网站去留言(要用英文),sun的技术人员一定知道!
如果你找到了boolean和 byte 于其他类型的转换别忘了给我发一份!
我的意见就这样了,祝你好运!
# re: 请教一个关于char的问题 回复 更多评论
2007-11-21 16:27 by
@lk
兄弟挺幽默啊!
boolean:
boolean型变量不同与其它基本数据类型变量,也就是说这种数据类型不能强制转化成其它数据类型,而且其他数据类型也不能强制转化成boolean型。
byte:
byte和short、int同是整型数据类型,不同的是byte类型占内存空间1字节(8个二进制位),short类型占内存空间2个字节(16个二进制位),int占4字节(32个二进制位)
我也就知道这么点,它们存储的长度不同。