-
배열 탐색도 연산이다개발/자바 2020. 3. 11. 14:38
public class Test { public static void main(String[] args) { Exam[] exam = new Exam[10]; for (int i = 0; i < 10; ++i) { exam[i] = new Exam(); exam[i].kor = 100; exam[i].eng = 100; exam[i].math = 100; } } }
위 코드는 매번 인덱스 연산을 한다. 객체를 생성할 때도 하고 필드에 접근할 때도 한다. 인덱스 연산도 연산이다. 불필요한 연산은 최소화하는 게 좋다. 열 번이라고 대수롭지 않게 생각하면 안 된다. 한 번이든 열 번이든 백 번이든 만 번이든 불필요한 건 불필요한 것이다. 위의 코드는 다음과 같이 바꾸는 것이 좋다. 참조값 복사는 부담을 느끼지 않아도 되므로 괜찮다. C++에서 포인터 변수가 아닌 '객체'라면 어느 쪽이 더 나을지 고민을 해봐야 하겠지만.
public class Test { public static void main(String[] args) { Exam[] exam = new Exam[10]; for (int i = 0; i < 10; ++i) { Exam exam = new Exam(); exam.kor = 100; exam.eng = 100; exam.math = 100; exam[i] = exam; } }
'개발 > 자바' 카테고리의 다른 글
추상 클래스는 무엇 (0) 2020.03.19 참조변수에 대한 작은 오해 (0) 2020.03.16 정렬 순서 바꾸기 (0) 2020.03.12 객체의 final 변수 (0) 2020.03.10 환경변수의 시스템 path에 jdk/bin을 넣는 이유 (0) 2020.02.20