私は今考えていないかもしれませんが、スコープ、メモリ割り当て、またはガベージコレクションに関する質問があります。リンクされたリスト(ノード)スコープとメモリ割り当てまたはメソッドが返された後のガベージコレクション
クラスLinkedIntListには、ListNodeタイプ(行4)の変数であるprivateフィールドfrontがあります。 リンクされたリストの残りは、add()関数を呼び出すことによって構成されます(29行目)。
質問:add()が返されたとき(39行目)、addNodeで作成されたListNodeがnewでスコープ外にあり、ガベージコレクションされるはずですか?または、フロントが連鎖しているので予約されていますか?
1 // Simple first version of LinkedIntList with just a constructor
2 // and methods for add and toString.
3
4 public class LinkedIntList {
5 private ListNode front; // first value in the list
6
7 // post: constructs an empty list
8 public LinkedIntList() {
9 front = null;
10 }
11
//....
//....
28 // post: appends the given value to the end of the list
29 public void add(int value) {
30 if (front == null) {
31 front = new ListNode(value);
32 } else {
33 ListNode current = front;
34 while (current.next != null) {
35 current = current.next;
36 }
37 current.next = new ListNode(value);
38 }
39 }
40 }
ありがとうございます。両方の皆さん、ShraddhaとSavinos、私は正しい方向に私を得る、本当に感謝します!しかし、 "ダニ"のためのものがあるので、私は最初の返信を "尋ねた"。 –