你真的了解Java嗎?

2021-08-11 10:53:37 字數 1679 閱讀 4572

三目運算子規則:

• 如果第二個和第三個運算元具有相同的型別,那麼它就是條件表示式的類

型。換句話說,你可以通過繞過混合型別的計算來避免**煩。

• 如果乙個運算元的型別是 t,t 表示 byte、short 或 char,而另乙個運算元是乙個 int 型別的常量表示式,它的值是可以用型別 t 表示的,那麼條件表示式的型別就是 t。

• 否則,將對運算元型別運用二進位制數字提公升,而條件表示式的型別就是第

二個和第三個運算元被提公升之後的型別。

public

static

void

main(string args)

下面的方法意圖確定它那唯一的引數是否是乙個奇數。這個方法能夠正確運轉嗎?

public

static

boolean

isodd(int i)

正確的寫法:

public

static

boolean

isodd(int i)

並不是所有的小數都能夠用二進位制精確表示的,例如下面的**就會出現問題,在需要精確答案的地方,要避免使用 float 和 double;對於貨幣計算,要使用 int、long 或 bigdecimal

public

static

void

main(string args)

計算時1.10缺省會轉成double來計算,但1.10這個數字不能被精確表示成為乙個double,所以最終結果為乙個近似值:0.8999999999999999

下面程式的結果並不是1000,問題在於常數 micros_per_day 的計算「確實」溢位了。儘管計算的結果適合放入 long 中,並且其空間還有富餘,但是這個結果並不適合放入 int 中。這個計算完全是以 int 運算來執行的,並且只有在運算完成之後,其結果才被提公升到long,而此時已經太遲了:計算已經溢位了,它返回的是乙個小了 200 倍的數值。

public

static

void

main(string args)

public

static

void

main(string args)

復合賦值操作符會悄悄地產生乙個轉型。如果計算結果的型別寬於變數的型別,那麼所產生的轉型就是乙個危險的窄化轉型。這樣的轉型可能會悄悄地丟棄掉精度或數量值。多重轉型也會產生精度的損失

操作符過載:

+ 操作符當且僅當它的運算元中至少有乙個是 string 型別時,才會執行字串連線操作;否則,它執行的就是加法。

public

static

void

main(string args)

操作符優先順序和比較問題:

任何兩個 string型別的常量表示式,如果標明的是相同的字串行,那麼它們就用相同的物件引用來表示。如果用常量表示式來初始化 pig 和 dog,那麼它們確實會指向相同的物件,但是 dog 並不是用常量表示式初始化的。

public

static

void

main(string args)

你真的了解restful api嗎?

在以前,乙個 的完成總是 all in one 頁面,資料,渲染全部在服務端完成,這樣做的最大的弊端是後期維護,擴充套件極其痛苦,開發人員必須同時具備前後端知識。於是慢慢的後來興起了前後端分離的思想 後端負責資料編造,而前端則負責資料渲染,前端靜態頁面呼叫指定api獲取到有固定格式的資料,再將資料展...

你真的了解git嗎?

看了幾遍廖雪峰的git教程和阮一峰的git教程之後,覺得自己使用git已經是得心應手了,腦中也構建出了一副關於git操作的影象。學習乙個新東西的時候我總是喜歡把知識形象化出乙個圖譜在腦中,這樣記憶的更加深刻。但是隨著使用的深入,我發現我腦中的影象與git的實際行為存在出入。稍微進入一下正題。假如你的...

ViewStub你真的了解嗎

目錄介紹如果覺得好,可以star一下,謝謝!當然也歡迎提出建議,萬事起於忽微,量變引起質變!override android view.remotableviewmethod asyncimpl setvisibilityasync public void setvisibility int vis...