在搜索這是否已經回答時,我發現類成員是否保證在內存中是連續的?,但這涉及C++,而不是Java。為了提供上下文,我有圍棋的背景,我正在學習Java。我知道使用Go,我可以使用這樣的指針編寫一個結構:type myStruct struct {
firstMember *string
secondMember *int}但是在詳細研究Go時,我經常讀到這是一個壞主意,除非你真的需要它們作為指針,因為這意味著每個成員的值可以分布在動態內存中的任何位置,從而損害性能,因為它不能利用CPU中的空間局部性。相反,通常建議以這種方式編寫結構,而不使用指針:type myStruct struct {
firstMember string
secondMember int}當我學習如何有效地編寫Java時,我很好奇在使用Java時我的工具集中是否有相同的工具。由于我沒有能力使用指針(因為類型為類的每個變量都是對該類的引用,實際上是指針),因此我只能使用 和 編寫類:Stringintclass MyClass {
String firstMember;
int secondMember;
}意識到這是為我的數據結構編寫類的唯一方法,因此我提出了這個問題。
在Java中,類的所有成員都存儲在連續內存中嗎?
ibeautiful
2022-09-19 20:51:49