print String.concatenate("FOL", "DOC");
which would print "FOLDOC".
String s = "FOL"; print s.append("DOC");
While the syntax looks similar, the two are completely different. The static method is just a function called "String.concatenate" which can be resolved to the address of some code at compile time (or load time if the String class is dynamically loaded). When invoking an object method, the class of the object is not generally known until run time so method lookup is a run-time process.