首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 類型自動提升與強制轉換:char 與 int 運算、byte 精度損失與 PHP 弱類型對比

     編輯:Java 綜合教學

Java 類型自動提升與強制轉換

Java 運算時遵循「小類型向大類型提升」原則,char、byte、short 參與 int 運算會自動提升為 int。

典型現象

System.out.println('a' + 1); // 98  ('a' ASCII 97 提升為 int)
System.out.println('1' + 1); // 50  ('1' ASCII 49 提升為 int)

byte b = 3;
// b = b + 2; // 編譯錯誤:int 無法賦值給 byte (可能損失精度)
b = (byte)(b + 2); // 強制轉換,正確
System.out.println(b); // 5

自動提升規則

  1. byte/short/char → int
  2. 若有 long,整體提升為 long
  3. 若有 float,整體提升為 float
  4. 若有 double,整體提升為 double

PHP 弱類型對比

<?php
var_dump('a' + 1);   // int(1)  字串 'a' 轉數值為 0 (非數字字串) + 1 = 1
var_dump('1' + 1);   // int(2)  字串 '1' 自動轉 int
var_dump((int)'1');  // int(1)  顯式轉型
var_dump((bool)'1'); // bool(true)
var_dump((array)'1');// array(1) { [0]=> string(1) "1" }
?>

關鍵差異

  • Java 強類型,編譯期檢查,需顯式強轉窄化。
  • PHP 弱類型,執行期自動轉換,字串參與算術自動轉數值。
  • Java char 為無符號 16 位整數,直接對應 Unicode 碼點。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved