https://www.youtube.com/watch?v=b6zKBZcg5fk
筆記:
- new ArrayList<>(), 最好是給初始的capacity, 默認(rèn)值是zero initial capacity.
盡量避免之后調(diào)用add()操作矫夷, 造成的memory object copy引起的額外性能消耗.
chromium寫的好的代碼長(zhǎng)這樣:
protected static List<String> processLogcat(List<String> rawLogcat) {
List<String> out = new ArrayList<String>(rawLogcat.size());
for (String ln : rawLogcat) {
ln = elideEmail(ln);
ln = elideUrl(ln);
ln = elideIp(ln);
ln = elideMac(ln);
ln = elideConsole(ln);
out.add(ln);
}
return out;
}
- new StringBuilder(), 最好給出初始的capacity, 默認(rèn)值是16.
盡量避免之后調(diào)用append()操作踊挠, 造成的memory object copy引起的額外性能消耗.
最好是調(diào)用這個(gè)構(gòu)造方法:
public StringBuilder(String str) {
super(str);
}
The capacity of the new builder will be the length of the String plus 16.
chromium寫的好的代碼長(zhǎng)這樣:
private String buildSuggestWhere(String selection, int argc) {
StringBuilder sb = new StringBuilder(selection);
for (int i = 0; i < argc - 1; i++) {
sb.append(" OR ");
sb.append(selection);
}
return sb.toString();
}
- 學(xué)習(xí)了不同的方法調(diào)用對(duì)應(yīng)bytecode上的4種類型.
1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
9.png
10.png
11.png
12.png
13.png
14.png
15.png
16.png
17.png
18.png
----- DONE ----