-4

C++ では、独自のコンストラクターを作成する場合、構築呼び出し中に作成されたオブジェクトのメモリの割り当てを解除する必要があります (間違っている場合は訂正してください)。

JAVAコンストラクターの呼び出しについて知りたいです。Javaの場合、作成されたオブジェクトのメモリの割り当てを解除する必要がありますか、オブジェクトが使用されていない場合は独自に割り当てを解除します

4

2 に答える 2

3

Java では、オブジェクトの動的割り当てはnew演算子を使用して実現されます。

一度作成されたオブジェクトはいくらかのメモリを使用し、オブジェクトを使用するための参照があるまでメモリは割り当てられたままになります。オブジェクトへの参照がない場合、そのオブジェクトは不要であると見なされ、オブジェクトが占有していたメモリを再利用できます。Java が割り当て解除を自動的に処理するため、オブジェクトを明示的に破棄する必要はありません。これを実現する手法は、ガベージ コレクションとして知られています。

Java では、Java プログラムの存続期間中にガベージ コレクションが自動的に行われるため、メモリの割り当てを解除する必要がなくなり、メモリ リークが回避されます。

詳細については、 をご覧ください

于 2013-08-10T08:19:06.233 に答える
1

C++ では、独自のコンストラクターを作成する場合、構築呼び出し中に作成されたオブジェクトのメモリの割り当てを解除する必要があります (間違っている場合は訂正してください)。

正しい!

JAVAコンストラクターの呼び出しについて知りたいです。Javaの場合、作成されたオブジェクトのメモリの割り当てを解除する必要がありますか、オブジェクトが使用されていない場合は独自に割り当てを解除します

Java はコンストラクターを使用してオブジェクトを作成しますが、Java にはデストラクターの概念はありません。Java はガベージ コレクション言語であるため、オブジェクトの破棄はデストラクターではなく JVM によって処理されます。

于 2013-08-10T08:19:53.050 に答える