對於下面的情況,應該在Heap上分配記憶體:
1、物件比較大(要考慮包含的物件的大小),棧的大小有限,不宜分配很大的物件。
2、建立之後,還要在其他地方經常使用,要進行頻繁的傳遞。
物件比較大,以及頻繁的傳遞,都會導致Copy代價較大。Copy代價大,為什麼不使用引用呢?
引用必須進行初始化(先有真名,再有別名),有些地方可以使用引用,比如方法的形參。有些地方不能使用引用,比如存在關聯關係的物件,不能引用另一個物件,只能通過指標。
對於下面的情況,應該在Heap上分配記憶體:
1、物件比較大(要考慮包含的物件的大小),棧的大小有限,不宜分配很大的物件。
2、建立之後,還要在其他地方經常使用,要進行頻繁的傳遞。
物件比較大,以及頻繁的傳遞,都會導致Copy代價較大。Copy代價大,為什麼不使用引用呢?
引用必須進行初始化(先有真名,再有別名),有些地方可以使用引用,比如方法的形參。有些地方不能使用引用,比如存在關聯關係的物件,不能引用另一個物件,只能通過指標。