Java

運算子

參考資料:(https://openhome.cc/Gossip/Java/Operator.htmlarrow-up-right)

算數運算子

+ , - , * , /

% 模數運算子 或稱為 餘除運算子

比較、條件運算子

> , < , >= , <= , == , !=

算出來的結果以 boolean 表示

條件式 ? 成立回傳值 : 失敗回傳值

邏輯運算子

AND --> &&

OR --> ||

NOT --> !

&&|| 有所謂的捷徑運算

if(b != 0 && a / b > 5) //利用捷徑運算去避免 除0 錯誤

位元運算子

and --> &

or --> |

xor --> ^

左移 --> <<

右移 --> >>

遞增、遞減運算子

++

--

指定運算子

=

除了=,算數運算子、位元運算子 後面加等號 ,也是指定運算子

重寫和重載之間的區別\

參考資料:(http://www.runoob.com/java/java-override-overload.htmlarrow-up-right)

區別點

重載方法(Overload)(多型)

重寫方法(Override)(父子關係的改寫)

參數列表

必須修改

不能修改

返回類型

可以修改

不能修改

異常

可以修改

可以減少或刪除,但是不能新增跟原先不同的異常

訪問

可以修改

不能做更嚴格的限制(可以降低限制)

Java – How to convert File to byte[]

參考資料:(https://www.mkyong.com/java/how-to-convert-file-into-an-array-of-bytes/arrow-up-right)

or NIO

判斷null

參考資料:(https://blog.csdn.net/yongh701/article/details/47109337arrow-up-right)

判斷null 的方法,只能執行下列這種

包括 obj.equals(null) 都會 NullPointerException

也是不一樣的,前者就真的是null。後者是有實體的,可以調用 .isEmpty 來判斷是否為空

判斷String 是否為空 or Null 的較好方法

參考資料:(http://luckyboy7527.pixnet.net/blog/post/102390946-[java]null或空值時的判斷處理方法(較好的方法)arrow-up-right)

if (!"".equals(str)) { //do something }

這樣不管該字串是null 還是 "" 都可以達到檢查效果

判斷類別

參考資料:(https://www.artima.com/intv/bloch17.htmlarrow-up-right)

參考資料:(https://stackoverflow.com/questions/4989818/instanceof-vs-getclassarrow-up-right)

得到類型

根據需求決定要用下列何者,過度使用任何一種,都會導致 design smell

想要完全匹配

想要 左側 的繼承關係可以追溯到 右側

Equal 中的上兩者

參考資料:(https://medium.com/@akash746/instanceof-vs-getclass-in-equals-method-in-java-3e90ec60a9ccarrow-up-right)

對double做處理

保留到第二位

參考資料:(http://violin-tao.blogspot.com/2014/06/java-double.htmlarrow-up-right)

[結果] d1 印出來:3.14 d2 印出來:1.58

保留2位小數 + 四捨五入

參考資料:(https://blog.csdn.net/u011595939/article/details/53005984arrow-up-right)

Date

String 與 Date 互轉

格式化日期 Date --> String

  1. SimpleDateFormat

String --> Date

參考資料:(https://yunnick.iteye.com/blog/1074495arrow-up-right)

String 與 Timestamp 互轉

String --> Timestamp

//注意字串格式一定要是 yyyy-mm-dd hh:mm:ss[.f...] 這樣的格式 //不然就先解析、重組成這樣的格式 String str = "2011-05-09 11:49:45"; Timestamp ts = new Timestamp(System.currentTimeMillis()); try{ ts = Timestamp.valueOf(str); System.out.println(ts); }catch(Exception e){ e.printStackTrace(); }

Time --> String

方法一的好處,在於可以靈活的設置 String 的格式。

Date 與 Timestamp 互轉

這兩者是父子類關係

子類可以轉父類

但是父類不能只接轉子類,可以藉由String 去當中介。

Timestamp --> Date

Date --> Timestamp

利用String 當中介

or

Timestamp ts = new Timestamp(date.getTime());

Date 與 LocalDateTime 互轉

參考資料:(https://blog.csdn.net/hspingcc/article/details/73332380arrow-up-right)

Date --> LocalDateTime

LocalDateTime --> Date

Convert Long into Integer

參考資料:(https://stackoverflow.com/questions/5804043/convert-long-into-integerarrow-up-right)

這個寫法,如果溢位會丟 Exception

獲取Java物件中所有的屬性名稱和屬性值

參考資料:(https://www.itread01.com/content/1547419865.htmlarrow-up-right)

取得所有屬性

取得該屬性的值

Last updated