String + Number -> String
문자열과 숫자를 더하면 문자열이 반환된다.
왜 그럴까?
String s = "a" + 1;
System.out.println(a);
a1
1단계: 문자열 확인
표현식 "a" + 1 에서 첫 번째 피연산자는 "a" 문자열이다.
2단계: 숫자 변환
두 번째 피연산자인 1(정수 타입)은 문자열로 변환된다.
3단계: 결합
변환된 문자열 "1"과 "a"를 결합하여 최종결과 "a1"이 반환된다.
Java의 설계 철학은 개발자의 편의성을 높이기 위한 것이다.
문자열과 숫자를 더하는 경우, 명시적으로 숫자를 변환하지 않고도 바로 문자열로 결합할 수 있게 했다.
순서에 따른 차이
1 + 1 + "a" // "2a"
"a" + 1 + 1 // "a11"
Java는 문자열과 숫자를 결합할 때 숫자를 자동으로 문자열로 변환하여 처리한다. 이때 String.valueOf() 메서드를 호출한다. 결과적으로 문자열을 반환한다.
여기까지 GPT의 답변이다.
이 말이 사실인지 Oracle의 java.docs를 찾아보자.
찾아보고 정리한 내용: 문자열 연결 연산자