나는 오랫동안 실행되는 함수를 가지고 있으며, 그 함수 내에서 객체를 선언하고 할당한다. 이제는이 객체가 메모리에서 적어도이 함수가 실행 중일 때만 살면 알 수 있다고 생각합니다. 이후에는 다른 객체가 참조하지 않으면 가비지 수집을 위해 사용할 수 있습니다. 이제는 함수가 실행되기 전에이 객체를 가비지 컬렉션에 사용할 수있게하려고합니다. 나는 for
루프가 시작되기 전에 가비지 컬렉션에 사용할 수에 반대 원하는 위의 작업에서 이제어떻게 Java에서 함수의 일부분에 대해서만 객체를 메모리에 살게 할 수 있습니까?
public void foo(){
String title;
Object goo=getObject(); //getObject is some other function
//which returns Object and can be null and I want Object to be in memory from here
if(goo!=null)title=goo.getString("title");
//after the last line of code I want Object to be available for garbage
// collection because below is a long running task which doesn't require Object.
for(int i=0;i <1000000;i++) //long running task
{
//some mischief inside with title
}
}
: 코딩 mannger합니다. 루프를 중괄호 안에 넣기 전에 두 줄의 코드를 묶는 것과 같은 작업을 수행 할 수 있습니까?이 작업을 수행하기 위해 수행 할 수있는 작업이 없으면 어떻게해야합니까?
개체가 메모리에 많이 존재합니까? 이것이 당신이 이것을하고 싶은 이유입니까? –
나는 일반적으로 질문을했습니다. 이유는 그들이 크거나 작은 날씨에 불필요한 물체를 메모리에 보관해야하는 이유입니다. –
작은 물체 및 메모리 부족 및 메모리 부족 문제가 발생해도 신경 쓸 필요가 없습니다. 또한 GC는 비 결정적입니다. 그래서 그것을 null에 할당한다고해서 즉시 수집된다는 것을 보장하지는 않습니다. –