프로젝트에서 개발을 하던 중 내가 알던 for문과는 다른 형태의 for문을 쓰는 소스를 보았다.
처음 봤을 땐 역할이 약간 다른 for 문인가 싶었는데, 차장님이 보시더니 성능면에서 좀 더 향상된 for문이라고 알려주셨다.
자세히 알아보기 위해 정리해보았다.
# JAVA - For 문
1. 기존 For문
- for(초기화; 조건; 증감)
for(int i=0; i <100 ; i++) { .... 반복 수행 할 로직 } |
2. 배열에 이용되는 For문
- for(변수타입 변수 : 배열)
- Java 1.5 부터 향상된 for문 제공
- 배열에 들어있는 값들을 하나씩 왼쪽 변수에 할당한다.
- 단, 배열의 자료형과 변수의 타입이 같아야 한다.
- 기존 for 문 처럼 조건문으로 size를 주지 않아도, 알아서 배열 크기 만큼 for문을 수행한다. 또, 기존처럼 반복 변수를 따로 선언해줄 필요도 없다.
- 단, 배열의 값을 가져다 쓸 수 만 있고, 수정해 쓸 수는 없다.
- 아래 예시는 array 배열 데이터를 object에 담아 insert 쿼리를 수행하는 소스다.
for (Object object : array) { mapDao.update("groupId.artifactId.context.mapper.tb_insert", (Map) object); } |
- 실제로 향상된 for문이 항상 성능이 더 좋은 것은 아니다. 때에 따라 기존 for문의 속도가 더 빠른 경우도 있다.
통상 반복 횟수가 많을 수록 향상된 for문의 성능이 더 좋다고 하지만, 그 정도는 정말 미세한 차이라고 하니 사용하기 쉽고, 가독성이 더 좋은 for문으 로 선택하는게 좋을 것같다.
__________________________________________________________________________________________________________________________________________________________
** 본 포스팅에 대해 수정해야할 부분이나 추가 의견 등이 있으신 분들은 댓글 달아주세요. 언제나 환영입니다 :)
** 본 포스팅을 reference 자료로 참고하실 분들은 출처를 꼭 밝혀주시기 바랍니다.
'JAVA' 카테고리의 다른 글
예외처리 관련 참고문서 (0) | 2017.06.11 |
---|---|
로깅(Logging) 참고문서 (0) | 2017.06.11 |
system32와 systemWOW64 (0) | 2017.02.26 |
SAPJCO 연동 설정 (0) | 2017.02.26 |
JAVA_리팩토링 (1) | 2017.01.08 |