Java8 中有趣酷炫的小技巧
執(zhí)行注釋
大多數(shù)開發(fā)人員認(rèn)為?注釋?永遠(yuǎn)不會(huì)在程序中執(zhí)行,并用于幫助代碼理解。但是,它們卻?可以被執(zhí)行:

程序輸出:
wmyskxz is awesome!
Java 允許使用 Unicode 字符而不進(jìn)行編碼。這里的 Unicode 字符 被 Java 編譯器解析為新行,因此可以理解為該 Unicode 字符后面出現(xiàn)的語句會(huì)在下一行被執(zhí)行。
雙括號(hào)初始化集合
在 Java 中,Set/ List/ Map?等集合對(duì)象沒有在生命期間初始化值的簡單方法 。開發(fā)人員要么將值顯式地傳送到集合內(nèi),要么為常量集合創(chuàng)建一個(gè)靜態(tài)塊。
使用雙括號(hào)初始化,可以在聲明過程中以更少的精力和時(shí)間初始化集合。例如:

程序輸出:
[awesome, !, wmyskxz, is]
“ 在 Java 11 中,你可以使用 Set.of("wmyskxz", "is", "awesome", "!") 代替,這里僅僅討論 Java 8
另外對(duì)于 ArrayList 集合類型還是有簡單初始化方法的:Arrays.asList()
獲取數(shù)組插入數(shù)字元素的下標(biāo)
有一個(gè)很酷的技巧,可以找到可以在數(shù)組中插入所請(qǐng)求元素的位置:

程序輸出:
Element has to be inserted at: 1
Arrays.binarySearch()?是 JDK 自己實(shí)現(xiàn)的二分查找方法,局限就是目標(biāo)數(shù)組必須是排序好的 。
判斷數(shù)字是偶數(shù)還是奇數(shù)
通常我們會(huì)使用?num % 2 == 0?來判斷數(shù)字是奇數(shù)還是偶數(shù)。下面的技巧盡管并不比上述方法好多少,但在考慮大數(shù)時(shí),效率會(huì)高很多:
System.out.println((num & 1) == 0 ? "EVEN" : "ODD" );
示例:

快速乘或除 2
二進(jìn)制中,乘以?2?表示將所有位向左移動(dòng),除以?2?表示向右移動(dòng)。
n = n << 1; // Multiply n with 2 n = n >> 1; // Divide n by 2
判斷素?cái)?shù)
Java 在?BigInteger?類中內(nèi)置了?isProbablePrime()?方法。如果此 BigInteger 可能是質(zhì)數(shù)(可以肯定),則返回?true,如果它肯定是復(fù)合的,則返回?false。
BigInteger.valueOf(1235).isProbablePrime(1)
More..
歡迎補(bǔ)充