본문 바로가기

새롭게 쌓은 지식

Integer클래스는 캐시를 사용한다.

Java에서의 캐시에 관한 공부를 하다 알게된 사실이다.

 

Java 공식 문서

java.lang 패키지의 Integer 클래스는 primitive 타입인 int의 Wrapper 클래스로 알려져 있다.

 

 

Integer 클래스는 내부적으로 IntegerCache 라는 static class 를 가진다.

 

이에 대한 Java docs 를 보면 자주 쓰이는 -128 ~ 127의 값을 항상 캐싱한다는 것을 알 수 있다. 

또한 AutoBoxCacheMax 옵션을 통해 이 범위를 조정할 수 있다.

 

Integer 클래스의 정적 팩토리 메서드인 valueOf 메서드를 보자

전달된 i 가 캐싱된 숫자의 범위내에 있다면, 객체를 새로 생성하지 않고 '미리 생성된' 객체를 반환한다. 그렇지 않을 경우에만 new 키워드를 사용하여 객체를 생성하는 것을 확인할 수 있다.

 

 

 

 

확인을 직접해보니 Boolean, Float, Double 형 빼고 정수형 Wrapper 클래스들은 각자의 Cache 클래스가 있다.

 

 

캐시에 대해 공부하다가 자바 기본형의 Wrapper 클래스도 내부적으로 이런 캐시를 사용하는지 알게 되었다.

캐시에 대해 더 공부해야겠다.

 

 

 

 

22.09.26 추가.

 

 

캐시에 대하여.

https://dont-be-evil.tistory.com/301

 

 

어떤 부분에서의 캐시든 모두 다시 사용될 확률이 높은 것은 더 빠르게 접근 할 수 있게 하여 성능을 높이는데 목적이 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

꾸준히 다시보자.

 

1. 220919

2. 220928

3. 221007

4. 221101

'새롭게 쌓은 지식' 카테고리의 다른 글

캐시에 대하여  (0) 2022.09.26
Java Wrapper 클래스는 불변객체이다.  (1) 2022.09.21
Spring ArgumentResolver와 Interceptor  (1) 2022.09.14
여러 프로그래밍 팁  (0) 2022.09.10
Java 제네릭 super, extends, ?  (0) 2022.09.09
Recent Posts
Popular Posts
Recent Comments