Notice
Recent Posts
Link
Tags
- springboot
- 자바
- mysql
- session
- string
- spring mvc
- 스프링
- spring boot
- spring
- sql
- Django
- 문자열
- spring security 6
- AWS
- Git
- 스프링부트
- SSL
- ORM
- join
- 1차원 배열
- @transactional
- 데이터베이스
- DI
- 프로그래머스
- PYTHON
- Docker
- jpa
- java
- nginx
- select
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
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' 카테고리의 다른 글
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