문제가 되겠지만 루프 내에서 초기화가 계속 반복되는 변수가 있다고 가정 할 때 최상의 데이터 유형은 무엇이 될까요? 데이터는 일시적으로? 예를 들어자바 코어 : 값을 변경하는 변수의 데이터 유형
:
String value = "";
while(file.hasNext()){
value = file.readLine();
}
물어 이유는, 내가 문자열은 불변 것을 알고있는가보다 효율적인 대안이 있음을 시사한다, 내가 바로 무엇입니까?
"일반적으로, 나는 좁은 범위 수와 변수를 선언하는 것을 선호합니다." 그러나 각 루프마다 새로운 메모리 할당이 필요하므로 조금 더 느린 비트라고 가정합니다. 내가 맞습니까? – R2B2
@ user3923424 : 아니요. 스택 프레임은 전체 메서드에 할당되므로 루프를 돌 때마다 추가 메모리가 할당되지 않습니다. –
@ user3923424'readLine()'메소드를 실행할 때마다 새로운 문자열이 생성 될 가능성이 있기 때문에 힙은 두 가지 접근 방식에 상관없이 거의 동일하게 작동합니다. 스택에서는 여전히 해당 문자열에 대한 단일 참조 만 유지하면 모든 반복에서 다른 문자열을 가리 킵니다. 이전 문자열 참조는 루프에서 수행 한 작업에 따라 가비지 수집을 할 수 있습니다. –