Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 성능테스트툴
- Spring MVC 구성요소
- 버블정렬
- 백준 11659
- 프로그래머스
- GCP
- 코드스테이츠
- OOP
- 코드스테이츠 백엔드
- Spring Web MVC
- java
- 알고리즘
- 자바
- Array.asList
- 백준
- 투포인터알고리즘
- 인텔리제이
- vm인스턴스생성
- List.of
- Spring MVC 동작원리
- 재귀와반복문
- 재귀함수
- 11659
- 싱글톤패턴
- 코딩테스트
- 클라우드에서 도커 실행하기
- MySQL
- 구간합구하기
- String.valueOf()
- 스택
Archives
- Today
- Total
순간을 기록으로
[Java] toString() vs valueOf() 차이 본문
안녕하세요 luminous13입니다. 오늘은 toString()과 valueOf()의 차이점에 대해 알아보겠습니다.
코드를 짜다보면 다른 타입에서 문자열로 형변환해야될 상황이 있습니다.
예를들어 int에서 문자열로 형변환을 하고 싶을 때 우리는 아래의 코드와 같이 2가지 방법을 사용할 수 있습니다.
public static void main(String[] args) {
int num = 123;
String str1 = Integer.toString(num);
String str2 = String.valueOf(num);
System.out.println("String() 이용: " + str1); // "123"
System.out.println("valueOf() 이용: " + str2);// "123"
}
두 방법 모두 숫자를 입력으로 받아 문자열을 반환합니다. 그럼 무슨 차이가 있는걸까요?
두 방법의 차이는 입력받은 객체가 null일 때 차이가 있습니다.
toString(Object ob)
toString의 경우 입력으로 null을 받은경우 아래의 예시처럼 NullPointException을 발생시킵니다.
예시코드
public static void main(String[] args) {
Object obj = null;
System.out.println(obj.toString()); // NullPointException
}
valueOf(Object obj)
반면 valueOf의 경우 null을 입력받은 경우 "null" 문자열을 반환합니다. 그 외에는 toString() 반환값을 리턴합니다. 다시말해서 toString()을 한번 감싼 메서드라고 보면 됩니다. 실제로 구현 코드를 보면 아래와 같이 toString()을 호출합니다.
예시코드
public static void main(String[] args) {
Object obj = null;
System.out.println(String.valueOf(obj)); // "null"
}
구현코드
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
참고
https://stackoverflow.com/questions/27465731/string-valueof-vs-object-tostring
'Development > JAVA' 카테고리의 다른 글
[Java] Wrapper 클래스는 왜 필요할까? (0) | 2022.10.11 |
---|---|
[Java] Arrays.asList와 List.of 차이점 (0) | 2022.06.28 |
[Java] parseInt vs ValueOf의 차이 (0) | 2022.05.31 |
[Java] 다형성(polymorphism) (0) | 2022.05.16 |
[Java] - 상속(Inheitance), 캡슐화(Encapsulation) 질문들 (0) | 2022.05.12 |
Comments