[javaSE] 類型轉換(1加1等於幾),javase等於

來源:互聯網
上載者:User

[javaSE] 類型轉換(1加1等於幾),javase等於

 

列印 ‘a’+1,輸出98,解釋:’a’是char類型佔2個8bit,1是int類型佔4個,’a’字元會被自動強制轉換為int類型對應ascii碼錶97

 

列印’1’+1,輸出 50,解釋:’1’是char類型,會被自動型別提升為int類型,對應ascii表49

 

 

定義byte b=3

b=b+2

此時會編譯報錯,可能損失精度,byte b在記憶體中預設是佔一個8bit,int 2在記憶體中預設是佔4個8bit,不同類型不能計算,必須自動型別提升轉換,小的往大的提升,byte b會往int型別提升,此時可以計算,計算結果是4個8bit,結果從新賦值給byte b的時候,會損失精度

 

強制類型轉換

上面的代碼修改成 b=(byte)(b+2),此時就不會報錯了,int類型強制轉換為byte

public class VariableDemo {    /**     * @param args     */    public static void main(String[] args) {        System.out.println('a' + 1);// 輸出 98        System.out.println('1' + 1);// 輸出 50    }}

 

 

PHP版:

PHP中是弱類型語言,列印 ‘1’+1會輸出 2,String類型’1’被自動轉成了int類型

強轉只有這些 (int)  (bool)  (float)  (string)  (array) (object)

<?phpclass VariableDemo{    public static function main(){        var_dump('a'+1);//輸出 int(1)        var_dump((int)'1');//輸出 int(1)        var_dump((bool)'1');//輸出 bool(true)        var_dump((array)'1');//輸出 array(1) { [0]=> string(1) "1" }        var_dump((object)'1');//輸出 object(stdClass)#1 (1) { ["scalar"]=> string(1) "1" }    }}VariableDemo::main();

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.