1、運算符的優先級java
運算符按照優先級別的高低排序分別是:自加/減運算符、 算術運算符、比較運算符、邏輯運算符、賦值運算符。具體請參考下表:spa
順序code |
運算符blog |
1.排序 |
括號,如 ( ) 和 [ ] ci |
2.編譯器 |
一元運算符,如 -、++、- -和 !編譯 |
3.table |
算術運算符,如 *、/、%、+ 和 -class |
4. |
關係運算符,如 >、>=、<、<=、== 和 != |
5. |
邏輯運算符,如 &、^、|、&&、|| |
6. |
條件運算符和賦值運算符,如 ? :、=、*=、/=、+= 和 -= |
int i=1,j=2; int a=i+++j+++i++; System.out.println(a);
int a=(i++)+(j++)+(i++);
java有兩種類型的轉換,分別是自動類型轉換和強制類型轉換。
一、自動類型轉換
通常而言,java編譯器仍是比較智能的,對不一樣數據類型的參數,會自動轉換類型,爲了避免至於數據的丟失,通常是較窄的數據類型轉換爲較寬的數據類型。也就是說若是一個short類型和一個int類型相加,那麼結果就會自動轉換爲int類型,由於int比short數位要寬,再有若是int類型和float類型相加,那麼結果是float類型,由於浮點型比整型所能表示的數據要寬。另外咱們也能夠把一個較窄的數據類型直接賦值給一個較寬的數據類型。總結一下,在賦值或者計算時,只要知足如下條件,就會發生自動類型轉換:
(1)兩種類型兼容;
(2)目標類型大於源類型;
例如:
(1)byte、char和 short 型值可提高爲 int 型。若是一個操做數爲 long 型,則整個表達式結果爲 long 型
(2)若是一個操做數爲 float 型,則整個表達式結果爲 float 型。而若是一個操做數爲 double 型,則整個表達式結果爲 double 型
二、 強制類型轉換
強制轉換用於顯式類型轉換。可是強制類型轉換須要當心使用,由於若是被轉換的值的數據類型大於其目標類型,就會丟失部分信息。類型強制轉換使程序將變量視爲某種類型,儘管此變量中包含的是另外一類型的數據,其具體格式以下:
(類型名)表達式
float a = 346.756565f; int b = (int) a + 10; // 將 c 轉換爲整型 System.out.println(b);
最後的結果是356,浮點型a後面的全部的小數都會丟失。