JAVA
sum 에 wrapper class를 쓰면?
파란제이
2022. 5. 3. 00:40
0부터 Integer.MAX_VALUE까지 더한 결과를 구하는 프로그램을 만든다고 가정하자.
더한 결과를 저장하는 변수를 sum이라고 할 때, sum을 Long 으로 하는 것과 long으로 하는 것에는 차이가 난다.
Long sum = 0L; 으로 선언하게 되면, sum의 값이 바뀔 때마다 새로운 객체가 생성되어 성능이 느려지게 된다.
실제로 아래 코드로 테스트를 해보니, Long의 경우는 6.2초 long의 경우는 0.79초로 long의 성능이 더 좋은 것을 확인할 수 있었다.
public class Main {
public static void main(String[] args) {
long time1 = System.currentTimeMillis();
Long sum1 = 0L;
for (long i = 0; i <= Integer.MAX_VALUE; i++) {
sum1 += i;
}
long time2 = System.currentTimeMillis();
long sum2 = 0;
for (long i = 0; i <= Integer.MAX_VALUE; i++) {
sum2 += i;
}
long time3 = System.currentTimeMillis();
System.out.println("sum1 : " + (time2 - time1) + " sum2 : " + (time3 - time2));
}
}
반응형