Java入門:java中不同類型的轉換和提升

發表于:2008-05-09來源:作者:點擊數: 標簽:javaJAVAJava類型入門
關鍵字: byte轉換為int時出現的問題是始料不及的,byte的范圍0??255,但是轉換為int的時候卻出現了負值,這種突然的變化惹了很大的麻煩。當時心情急躁,匆匆忙忙試了幾種方法通過后就繼續項目了,但真正的原因在什么地方一直沒能解決,成了心
關鍵字:

byte轉換為int時出現的問題是始料不及的,byte的范圍0??255,但是轉換為int的時候卻出現了負值,這種突然的變化惹了很大的麻煩。當時心情急躁,匆匆忙忙試了幾種方法通過后就繼續項目了,但真正的原因在什么地方一直沒能解決,成了心病。后來想起來曾經閱讀過java的語言規范說明書,里面有提到這些內容,于是抽時間再回顧一下,希望能搞通這些東西。
在java語言中,轉換可以分為七大類:

 一、Identity conversions(同類轉換)。

       看起來沒有什么用,但卻是整個轉換體系的基石。提示:boolean基本類型只能進行同類轉換。

 二、Widening primitive conversions(基本類型擴寬轉換)。

        以所占字節數為基準,單字節向多字節轉換就是所謂的擴寬,比如1到2、2到4等。int到其他整數類型的轉換、float到double是沒有失真的,完全一致。但是整數到浮點數的轉換雖然也是擴寬,但因為浮點數是用有效數字的方式進行表示的,轉換的時候可能出現精度損失(float類型不能支持9位有效數字),如int i=1234567890;float pp = i - (float)i;pp不等于零。帶符號int轉換為其他整數類型的方法是對其數字的二位補碼方式進行帶符號擴展,char類型轉換為int類型的方法是進行0擴展。提示:無論精度是否損失,擴寬轉換都不能引發運行時錯誤。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97