new StringBuilder().append("DEF");의 타입은 StringBuilder라서

StringBuilder a = new StringBuilder().append("DEF");

이렇게 할수있음. 스트링빌더 객체의 append 메서드를 써도 리턴타입이 스트링빌더임

String a = new StringBuilder().append("DEF");
이렇게 String 타입에 대입 못함

StringBuilder a = new StringBuilder().append("DEF").insert(0, "ABC");


이것도 스트링빌더인 상태에서 append를 했으니 스트링빌더 타입이고 거기서 다시한번 insert해도 스트링빌더임. insert() 메서드의 리턴타입이 스트링빌더니까

스트링 빌더 객체의 toString메서드를 호출하면 그건 리턴타입이 String임
그래서 그 책에 있는 코드가 그게 가능한거임

매개변수 얘기는 할필요없음. 용어가 헷갈리면 앞에 내용들 한번 복습해보셈


+)


StringBuilder b = new StringBuilder().append("DEF");

StringBuilder a = b.insert(0, "ABC");

이거를


StringBuilder a = new StringBuilder().append("DEF").insert(0, "ABC");

이렇게 쓸수 있다는것도 이해하셈(세세한 차이는 스킵)