我看過一個人的視頻,說我們應該儘可能地使用原語而不是對象。 原因是訪問一個對象意味着使用一個指針,所以有一個開銷。JAVA - 指針追逐 - 最佳實踐
因此:
- 如果存在映射與(使用JPA)SQL表具有多個字段是在數據庫中,因爲潛在的空值的對象類(例如:0的整數不是int)
- 我應該創建一個母類嗎?如果可能的話,將對象替換爲原語,在我的應用程序中使用等價於null的固定值?(例如:-1,而不是零)處理大量數據
- 的並且被映射到數據庫中的子類中,只有在保存數據時使用的
- 當在子
- 母親類正在使用I類可以添加映射成列的一些方法,象下面這樣:
@Column("MY_COLUMN")
public Integer getId() {
// super.getIdAsInt() returns a value of type int, the primitive.
// -1 means value not set in my app.
Integer result = (super.getIdAsInt() == -1) ? null : super.getIdAsInt();
return result;
}
我覺得這種模式也可應用於任何情況下的子類是關於持久性數據(插入數據庫或一個XML文件,...)和空值的字段是有意義的。
- 您認爲這些可能是最佳實踐,以提高應用程序的性能嗎?
- 如果不是,你能給我舉一些潛在的缺點嗎?
感謝,
也許你正在將這視爲一個問題。 – freedev
我認爲你正在嘗試過早地優化你的解決方案。你使用的是OO語言,爲什麼你不應該使用對象?確實存在開銷,但除非您迫切需要儘可能快的結果,否則不要擔心,請專注於以可能的最佳方式解決關鍵問題,如果發現存在性能問題,那麼剖析代碼並查看可以改進的地方 – MadProgrammer
如果您的意思是NULL,則返回NULL的虛擬值是代碼異味。你不應該暗示它是NULL,你應該說它是NULL。任何使用getID並假定非空值爲非空值的人都將在激動人心的時間內調試爲什麼該對象實際上不存在。 – Compass