[자바다] 자바에서 for문이 while문의 속도 차이와 그 이유 (아마...)

2022. 9. 27. 10:35·기타/지식

백준에서 문제를 풀다보니 왠지 모르게 컴파일 시간에 연연하게 되네요 ㄱ- ... 시간을 줄이기 위해 여러 노력을 해보는데 for문을 사용할때가 while문보다 조금 더 빠른 것을 발견했습니다. 

 

for문을 사용하기 위해서는 변수를 하나 더 할당해야 하기 때문에 당연히 기존의 변수를 사용해 반복문을 구성한 while문이 더 빠를 것이라고 무작정 생각한 제 나름의 상식이 깨어져서 정말 놀랐습니다.

정말 미세한 차이지만 왜 그런가 검색해보니 for문이 변수 하나를 사용하지만 반복문이 끝나면 바로 할당된 메모리를 해제하는 반면 while문은 반복문에 활용되는 변수를 계속 가지고 있기 때문이라고 합니다.

컴파일 된 코드를 보면 for과 while의 차이는 없다는 글도 있고, 속도는 컴파일러의 차이일 뿐이라는 글도 있고... 멀티스레드가 이유라는 글도 있고....

기타 등등의 의견이 있으나 저는 자바의 특성 중 하나가 가비지 컬렉터인 만큼 (막연히) 자바는 자원관리를 굉장히 신경쓰는 언어라고 생각하기 때문에 '메모리가 언제까지 변수를 갖고 있는가'가 속도차이의 중요한 이유라고 추측합니다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'기타 > 지식' 카테고리의 다른 글

CSS HTML <picture> <source> 태그에서 media 사용했는데도 이미지가 똑같을 때  (0) 2022.10.25
html에서 <ul> <ol> <dl> 그리고 <li>의 차이  (0) 2022.10.24
[자바다] System.in.read() 사용법을 반복문 그리고 엔터와 함께 살펴보기  (0) 2022.09.27
[자바다] int string등 각 타입에서 'equals' 와 '==' 구별하는 법  (0) 2022.09.22
[자바다] 클래스, 객체, 인스턴스란 무엇일까? 각 개념의 차이점  (0) 2022.09.19
'기타/지식' 카테고리의 다른 글
  • CSS HTML <picture> <source> 태그에서 media 사용했는데도 이미지가 똑같을 때
  • html에서 <ul> <ol> <dl> 그리고 <li>의 차이
  • [자바다] System.in.read() 사용법을 반복문 그리고 엔터와 함께 살펴보기
  • [자바다] int string등 각 타입에서 'equals' 와 '==' 구별하는 법
반달bear
반달bear
꾸준히 성실하게 걷고 싶습니다. 지속 가능한 열정을 추구합니다.
  • 반달bear
    반달곰의 개발이야기
    반달bear
  • 전체
    오늘
    어제
    • 분류 전체보기 (101)
      • 개발지식 (29)
        • Spring (2)
        • Java (2)
        • DB (1)
        • Design Pattern (8)
        • CS (1)
        • Ops (12)
        • AI (3)
      • 기타 (72)
        • 일기 (5)
        • 지식 (67)
      • 일기장 (0)
  • 블로그 메뉴

    • 홈
  • 링크

    • 반달곰 Gihub
  • 공지사항

  • 인기 글

  • 태그

    java
    소회
    실험
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
반달bear
[자바다] 자바에서 for문이 while문의 속도 차이와 그 이유 (아마...)
상단으로

티스토리툴바