Since java Strings are immutable, the concatenation operation creates a new string.
let’s look at the example below:
public class Solution{
public String getAlphabets(){
String out = "";
for(char c='a';c<='z';c++){
out += c; // new string is created everytime
}
return out;
}
}
This is not a memory efficient implementation. Java Provides a mutable String classes, StringBuilder and StringBuffer which is more memory efficient.
String | StringBuilder | StringBuffer | |
---|---|---|---|
Mutable | No ( Immutable ) | Yes | Yes |
Thread safe | No | No | Yes |
public class Solution{
public String getAlphabets(){
StringBuilder out = new StringBuilder("");
for(char c='a';c<='z';c++){
out.append(c); // memory efficient
}
return out.toString();
}
}