public class Test {
public static void main(String args[]) {
int sum = 0;
for (int i = 0; i < 10_000_000; i++) {
sum += i;
Test test = new Test();
}
System.out.println("sum =" + sum);
}
}
질문: 정상적으로 동작이 될까요?..
대답: 아니요 (잘된다...)...
3가지의 속임수가 있다..
1. int형은 21억까지 밖에 못받음..(...기본) (눈치못챔)
2. 10_000_000 언더바 표기법은 자바7버전 이후부터 사용 가능
3. for문안에 test 객체 생성?.. 이건 왜 실행이 될까 모르겠다..
답 : 내 생각에는 for문이 돌면서 이름이 겹치기 때문에 에러날줄 ...?
-> for문이 끝나는시점 gc에 의해 삭제 되기때문에?..
-> 찾아보니까 메모리 누수때문에 지양하는 방식이다.
-> gc동작은 메모리가 부족하면 그때 동작한다고 한다.
그럼 무한으로 객체를 생성 하는건가 ?? 뭐지 ??
라고 검색을 해보니 여러가지 의견들이 있군..

더 공부해야겠 .... 다 ,,,,,
https://okky.kr/article/322734
OKKY | 이 방식이 무리가 많이 가는 코딩방식일까요?
언어는 자바구요 for 문을 돌릴때마다 String 객체를 생성해서 할당하는 코딩법이 너무나도 많이 보입니다. String 뿐만 아니라 다른 객체들도 종종 보입니다. 예를들면 for(int i 0; i length;; i ) { Str
okky.kr
https://stackoverflow.com/questions/8803674/declaring-variables-inside-or-outside-of-a-loop
Declaring variables inside or outside of a loop
Why does the following work fine? String str; while (condition) { str = calculateStr(); ..... } But this one is said to be dangerous/incorrect: while (condition) { String str =
stackoverflow.com
'Back-End > Java' 카테고리의 다른 글
[java] Stream 총정리 (0) | 2022.08.09 |
---|---|
[java] for-each문 간단 예제 (0) | 2022.04.17 |
[java] 명명 규칙 (0) | 2022.03.11 |
[Java] ArrayList 정리 (0) | 2022.02.21 |
[java] Wraaper 클래스, 박싱(Boxing), 언박싱(Unboxing) (0) | 2022.02.16 |