Java Coding Tips
Use less target.setXX(source.getXX)
CodeBlock Loading...
Manipulate Array
copy array
CodeBlock Loading...
array -> list
CodeBlock Loading...
list -> array
CodeBlock Loading...
distinct array
CodeBlock Loading...
sort object array in descending order
CodeBlock Loading...
sort primitive array in descending order
CodeBlock Loading...
Get max/min of an array
CodeBlock Loading...
HashSet to List
CodeBlock Loading...
Bit Manipulate
get highest int
CodeBlock Loading...
set k-th bit as 0
CodeBlock Loading...
traverse all possibilties of set bits
CodeBlock Loading...
Use Optional in Java
Tip
- 可以在返回值里使用 optional ,提醒调用方这里返回的值可能为空,包装成 optional 对象就是强制要求调用者对空值情况进行判断处理。
- 连续取值。比如你接到一个层级很复杂的 json 对象,将其转换成 map 结构,一层一层的 get 需要判断 null ,用 Optional 的话,就算是内嵌深度是 10 层,也能用一行 optional 解决,避免出现嵌套 10 层 if-else 判断
需要从一个对象连续获取值的时候
CodeBlock Loading...
Arithmetic
ceil
CodeBlock Loading...
Operator Precedence in Java
| Level | Operator | Description | Associativity |
|---|---|---|---|
| 16 | () [] . | parentheses array access member access | left-to-right |
| 15 | ++ -- | unary post-increment unary post-decrement | left-to-right |
| 14 | + - ! ~ ++ -- | unary plus unary minus unary logical NOT unary bitwise NOT unary pre-increment unary pre-decrement | right-to-left |
| 13 | () new | cast object creation | right-to-left |
| 12 | * / % | multiplicative | left-to-right |
| 11 | + - + | additive string concatenation | left-to-right |
| 10 | << >> >>> | shift | left-to-right |
| 9 | < <= > >= instanceof | relational | left-to-right |
| 8 | == != | equality | left-to-right |
| 7 | & | bitwise AND | left-to-right |
| 6 | ^ | bitwise XOR | left-to-right |
| 5 | | | bitwise OR | left-to-right |
| 4 | && | logical AND | left-to-right |
| 3 | || | logical OR | left-to-right |
| 2 | ?: | ternary | right-to-left |
| 1 | = += -= *= /= %= &= ^= |= <<= >>= >>>= | assignment | right-to-left |
| 0 | -> | lambda expression arrow | right-to-left |