Java操作符注意點

使用Java操作符

幾乎所有操作符都只能操作“基本類型”。例外的是 “=”,“==”,“!=”,這些操作符能操作所有對象。 String類支持“+”和“+=”的操作。

優先級

System.out.println()語句中包含“+”操作符,這里的“+”表示字符串連接和字符串轉換。當1編譯器觀察到一個String后面跟著1個“+”后面又跟著一個非String元素,會嘗試著把這個元素轉化成String。

賦值

基本數據類型的賦值都是復制,對象賦值實際上是將“引用”從一個地方賦值到另一個地方,所以如果對象賦值c=d,則c和d都指向原本只有d指向的那個對象。

自動遞增和遞減

前綴式 ++a, 先增加a再賦值。 后綴式a++, 先賦值再增加a。

關系操作符

等于“==”和不等于“!=”適用于所有的基本數據類型。對于對象類型,等于“==”和不等于“!=”比較的是引用的對象。如果比較2個對象的實際內容是否相同,則用equals(),但是這個方法不適用于基本類型,基本類型用等于“==”和不等于“!=”即可。?

指數計數法

Java中 1.39e-43 中的e是10的冪次,“e”代表的是10的x方,而不是自然對數的基數2.718.

三元操作符

boolean-exp ? value0 : value1

三元操作符也稱為條件操作符,他是操作符的一種,于if-else完全不同,因為它會產生一個值。?

類型轉換操作符

如果要執行“窄化轉換(narrowing conversion)”的操作,也就是說將容納更多信息的數據類型轉換成無法容納更多類型的數據類型,則有可能面臨數據的丟失。 例如:

long l = ......;

int i = (int) l;

在轉化浮點型到整數的窄化轉換時,會對改數字進行截尾,即去掉浮點。如果要用四舍五入則需要用Math.round()方法。

而對于“擴展轉換(widening conversion)”,則不必顯示地進行轉換,數據不會造成任何丟失。

Java允許我們把任何基本數據類型轉換成別的基本數據類型,但除boolean類型外。

對于基本數據類型運算或者按位運算,只要類型比int小,那么這些值在運算之前會自動轉換成int。 通常表達式中出現的最大的數據類型決定了表達式最終結果的數據類型。如果將一個float值于double值相乘,結果就是double;如果將一個int和一個long值相加,結果就是long。對于char,byte,short的任何運算,都會獲得一個int類型

Sizeof

Java中沒有sizeof, 因為所有數據類型在所有機器中的大小都是相同的,不需要考慮移植問題。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容