2016-05-12 5 views
0

メモリ使用量に関して他のメソッド出力に基づいたメソッドを呼び出す最良の方法は何ですか?例えばJavaプロセスのメモリを減らす

: 最初の方法:

Animal a = Farm.getAnimal(5); 
item.setAnimal(a); 

第二の方法:

item.setAnimal(Farm.getAnimal(5)); 

はまたitem.setAnimal(...)使用するJavaメモリの結果を保存しますか?

+0

違いはありません。簡単な答えは、 'new'だけがjavaでメモリ使用量を引き起こすことです。しかし、「結果を保存する」とはどういう意味ですか? – zapl

答えて

0

オブジェクトはヒープ上に作成され、オブジェクト変数(Animal a)は実際にヒープ上のオブジェクトを参照しています(これを変数に割り当てるとコピーが作成されません)。

あなたの最初の質問に答えるには、動物の設定方法はどちらも同じで、追加のメモリ使用量を作成しません。

しかし、オブジェクトを変数に格納するときは、スコープを制約していることを確認して、メモリリークを許可しないようにする必要があります。

2番目の質問では、item.setAnimal(..)は余分なメモリを使用しますか? - 上記の理由により答えが明らかであり、setメソッドで同じオブジェクトが参照されているため、余分なメモリが使用されることはありません。

関連する問題