java中值類型和引用類型的區(qū)別 值類型和引用類型在作為參數(shù)傳遞時有什么不同?
值類型和引用類型在作為參數(shù)傳遞時有什么不同?更深入地說,它實際上是堆和堆棧之間的區(qū)別。值類型直接在堆棧上定義,例如int type。定義int實例不需要新的引用類型,而引用類型會在內(nèi)存堆中打開空間。例
值類型和引用類型在作為參數(shù)傳遞時有什么不同?
更深入地說,它實際上是堆和堆棧之間的區(qū)別。值類型直接在堆棧上定義,例如int type。定義int實例不需要新的引用類型,而引用類型會在內(nèi)存堆中打開空間。例如,對于類,引用類的實例需要新的。在傳遞參數(shù)時,引用類型實際上會傳遞一個指向類的指針(實際內(nèi)存位置的地址),因此在方法中對類進行操作將直接更改類的值,而作為參數(shù)的值類型在傳遞給方法進行操作時不會影響原始值。更重要的是,引用類型的建立和操作將比值類型消耗更多的資源,因為訪問內(nèi)存堆的效率遠(yuǎn)低于訪問堆棧的效率,但效率更高堆棧上的空間非常有限,因此只能將值類型放入其中,而不能將所有內(nèi)容都放入其中