1. , , String StringBuffer JDK1.0 (. http://docs.oracle.com/javase/6/docs/api/java/lang/String.html ..), 21 1996 - +. J2SE 5.0 ( 30 2004 .), JDK 1.5, StringBuilder ( , - + StringBuffer), ( ) , . (., , https://codegolf.stackexchange.com/questions/28786/write-a-program-that-makes-2-2-5 - Java- Integer / )
String.java
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
Objects.java
public static String toString(Object o) {
return String.valueOf(o);
}
PrintStream.java
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
StringBuilder.java
public StringBuilder append(Object obj) {
return append(String.valueOf(obj));
}
... (Java src.zip, JDK v8)
Java, toString, (.. String.valueOf(), "null" String). , concat + , ( StringBuilder.append(Object o)).
2. #toString() - NPEx, .
3. (, , 3) , , .
System.out.println( ((String)null).toString() );
(, ),
System.out.println( ((String)null).valueOf((String)null).toString() );
:
.