기록을 위해 저는 이 아닙니다. 자바 초심자인데, 오히려 자바에 관한 기본 지식에 대해 조금 잊어 버린 중급 수준의 사람입니다.지정한 개체가 가비지 수집 대상이되는 이유는 무엇입니까?
왜 6 행 후, 형
C
의 두 객체가 가비지 컬렉션 (GC)을받을 수 있습니다 것이 그 것이다 : 위의 코드에서class C{ public static void main(String a[]){ C c1=new C(); C c2=m1(c1); //line 4 C c3=new C(); c2=c3; // line 6 anothermethod(); } static C m1(C ob1){ ob1 =new C(); // line 10 return ob1; } void anothermethod(){} }
?
이유는 라인 (4) 및 라인 (10), 복사본
c1
의가m1()
메소드로 전달되는 것이 아니다. 그래서 결국 6 번 라인에서 GC를받을 자격이 될 1 Object (2가 아닌)가 될 것입니다. 결국, 참조로 전달하는 것이 아니라 자바 전달이 아닌가? 패스에 의해 값-참조 및 패스 값 참조에 의한 :)의 차이
좋은 코드 obfuscator를 사용합니다 – Roman
이 코드는 컴파일해서는 안됩니다 :'anothermethod'는 정적이 아니고 정적 컨텍스트에서 호출됩니다 –