Notice
Recent Posts
Link
Tags
- 자바
- @transactional
- Django
- ORM
- springboot
- 프로그래머스
- spring mvc
- DI
- Docker
- AWS
- 데이터베이스
- sql
- java
- select
- static
- PYTHON
- spring security 6
- SSL
- mysql
- string
- spring
- join
- nginx
- 문자열
- 스프링
- jpa
- 1차원 배열
- hibernate
- spring boot
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Archives
개발하는 자몽
[Java] new Integer와 Integer.valueOf()의 차이점 본문
`new Integer(int)`는 새로운 객체 인스턴스를 매번 생성한다.
`Integer.valueOf(int)`은 지정된 `int` 값을 나타내는 `Integer` 인스턴스를 반환한다.
새로운 `Integer` 인스턴스가 필요한 경우가 아니라면, 일반적으로 생성자 `Integer(int)` 보다 해당 메서드를 우선적으로 사용하는 것이 메모리 측면에서 권장된다. 이는 자주 요청되는 값을 캐싱하여 더 나은 공간 및 시간 성능을 제공할 가능성이 높기 때문이다.
다음은 예시 코드다.
public static void main(String[] args) {
Integer a = new Integer(10);
Integer b = new Integer(10);
System.out.println("a==b : " + (a==b));
Integer c = Integer.valueOf(10);
Integer d = Integer.valueOf(10);
System.out.println("c==d : " + (c==d));
}
결과는 아래와 같다.
a==b : false
c==d : true
강의를 듣다가 이야기가 나와서 한 번 알아보았다. 근데 `new Integer(int)` 이 생성자는 버전 9부터 deprecated 상태다. 따라서 해당 버전 이상을 사용할 경우 강제로 `Integer.valueOf(int)` 사용하게 된다 :)
'Java & Kotlin' 카테고리의 다른 글
Java/Spring 테스트 - 1 (2) | 2024.10.02 |
---|---|
[Gradle] gradle build와 gradle bootJar의 차이 (0) | 2024.09.06 |
Java에서 외부 프로그램 실행하기 (zt-exec) (0) | 2024.07.06 |
[TIL / JPA] 데이터베이스 스키마 자동 생성, UNIQUE 제약 조건 관련 TIL (0) | 2024.06.30 |
[TIL / JPA] 영속성 컨텍스트 (0) | 2024.06.29 |
Comments