Java開發規範(效能提升)更新中

山海丶發表於2020-11-01

1、儘量避免隨意使用靜態變數
當某個物件被定義為static變數所引用的時候,GC通常是不會回收這個物件所佔用的記憶體。

2、減少對變數的重複計算
第一種 for 迴圈

List list = new ArrayList()<>;
for(int i = 0; i < list.size(); i++) {
}

第二種 for 迴圈

List list = new ArrayList()<>;
for(int i = 0, len = list.size(); i < len; i++) {
}

並且在迴圈中,應該避免使用複雜的表示式,在迴圈中,迴圈條件會被反覆計算,如果不使用複雜表示式,而使迴圈條件值不變的話,程式將會執行的更快

3、使用stream流的時候,Map的value為空時會報空指標異常(解決辦法)

List<TestDO> list = new ArrayList<>();
TestDO obj = new TestDO();
obj.setId(1L);
TestDO testDO1 = new TestDO();
testDO.setId(2L);
testDO.setUserName("test");
testDO testDO2 = new TestDO();
testDO.setId(3L);
list.add(testDO1);
list.add(testDO2);
list.add(obj);

//Map 中Value為空
Map<Long, String> map = testDOS.stream().collect(Collectors.toMap(TestDO::getId,
        testDO -> testDO.getUsername() == null ? "null" : testDO.getUsername(), (k1,k2) -> k2));

相關文章