The method **Concat()** does not modify the original value. It returns a new value.  

like this:

```
String str = "good";
str.concat("ness");
System.out.println(str);   //"good"

```

But some method modify the original value. Why?

In Groovy:  

```
def languages = ["Java", "Groovy", "JRuby"]
languages.reverse()
===> [JRuby, Groovy, Java]
println languages
===> [Java, Groovy, JRuby]

languages.sort()
===> [Groovy, JRuby, Java]
println languages
===> [Groovy, JRuby, Java]

```