의 모든 인스턴스에 걸쳐 유지합니다. 그래서 난 그냥 main 메소드 아래에 위의 코드를 넣어 아래 코드
package com.instance.main;
import com.instance.target.Clasa;
public class Test{
public static void main(String[] args) {
Clasa targetClass;
Object[] object=new Object[10];
for(int i=0;i<object.length;i++){
object[i]=new Clasa();
}
System.out.println("Number of Instantiate Object {Before Calling GC}: "+Clasa .getNumberOfInstatiateObj());
/* Here I am trying to deallocate the memory of Object at index no 9, so that GC called this unused object to deallocate it from memory*/
for(int i=0;i<object.length;i++){
if(i==8){
object[i]=object[i+1];
object[i+1]=null;
System.runFinalization();
System.gc();
}
}
}
}
으로 코드를 대체하려는 또한 당신은 아래의 코드
패키지 com.instance에서 Clasa 코드를 수정해야 .목표;
클래스 Clasa {
private static int nbInstances = 0;
public Clasa() {
nbInstances++;
}
public int getNo() {
return nbInstances;
}
public void finalize(){
nbInstances --;
System.out.println("Number of Instantiate Object {After Calling GC}: "+nbInstances);
}
}
위의 단계에 따라 코드를 수정 한 후, 코드는 당신에게 원하는 출력을 제공 할 것입니다.
내가 틀린 부분을 수정 해주세요.
안녕하세요 저는 위 코드에 따라 코드를 수정 했으므로 클래스 코드로 작성된 다른 패키지로 클래스를 만들어야합니다. 그리고 문제가 계속 발생하면 알려주십시오.
@ hexafraction : 지구상에서 왜 이것을 반영하겠습니까? (그리고 그 문제에 대해 - 지구상의 * 어떻게 * 이것을 반영 할 것인가?) – ruakh
어떤 논리를 시도해보고 작동하지 않으면 도움을 요청하십시오. 논리 또는 코드를 직접 요구하지 마십시오. – JNL
@hexafraction 그는 모든 자바 인스턴스가'Clasa 클래스의 인스턴스화 된 객체 수 '만 원하진 않는다. –