java 8中的靜態方法和類中的普通方法在性能上有什么區別嗎?class First { public static String methodStatic1() { //performance }}對比class Second { public String method2() { //performance }}
1 回答

慕慕森
TA貢獻1856條經驗 獲得超17個贊
解決性能方面的問題:不必毫無意義地創建實例的成本更低,但差異很可能完全無關緊要。隨著時間的推移,專注于清晰的設計可能變得更加重要。
實用方法通常是靜態的,如果一個類中的所有方法都是靜態的,那么將類設為 final 并包含一個私有構造函數以防止實例化可能是值得的。從根本上說,對于不代表任何真實“事物”的實用程序類,構造一個實例沒有邏輯意義——所以要避免它。
另一方面,這確實降低了靈活性:如果這些實用方法中的任何一個包含您可能希望以多態方式改變的功能(例如,出于測試目的),那么請考慮將它們保留為實例方法 - 并嘗試提取一些有意義的類名來表示涉及的“事物”。(例如, FooConverter 實例化是有意義的 - FooUtil 沒有。)
添加回答
舉報
0/150
提交
取消