
String.valueOf() 메서드는 기본 데이터 타입(primitives)과 객체(objects)를 모두 문자열로 변환할 수 있도록 오버로딩(overloading)되어 있습니다.
String.valueOf()는 해당 값을 나타내는 문자열을 생성하여 반환합니다. 예를 들어 int i=123;일 때 String.valueOf(i)는 "123"이라는 문자열을 반환합니다.String.valueOf()는 해당 객체의 toString() 메서드를 호출하여 그 반환값을 문자열로 사용합니다. 만약 객체가 null이면 "null"이라는 문자열을 반환합니다. String.valueOf()와 객체의 toString() 메서드는 둘 다 문자열 변환에 사용되지만, 중요한 차이점이 있습니다.
toString(): 객체가 null일 때 NullPoinerException을 발생시킬 수 있습니다. 예를 들어, MyObect obj = null;일 때 obj.toString()은 오류가 발생합니다. String.valueOf(): null값을 안전하게 처리합니다. String.valueOf(null)은 예외를 발생시키지 않고 "null"이라는 문자열을 반환합니다.따라서 String.valueOf()는 null이 될 수 있는 객체를 문자열로 변환할 때 더 안전하게 사용할 수 있는 장점이 있습니다.