# 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個二進制位)
我也就知道這么點,它們存儲的長度不同。