Неизменяемость метода string и substring() в stringbuilder
code 1: StringBuilder sb1 = new StringBuilder("123456"); sb1.substring(2, 4); sb1.deleteCharAt(3); sb1.reverse(); System.out.println(sb1);
выход :
65321
code 2: String s = "java2s".replace('a', 'Z').trim().concat("Aa");//line 1 s.substring(0, 2);//line 2 s.concat("Bb");//line 3 System.out.println(s);
выход :
jZvZ2sAa
Что я уже пробовал:
код 1 :В java String неизменяема, тогда как StringBuilder и StringBuffer изменяемы, но почему метод substring() не вносит никаких изменений в sb1, даже если это объект StringBuilder?
код 2:В строке 1 метод concat() внес изменение в строку "java2s", но почему этого не происходит в строке 3?
Может ли кто-нибудь прояснить мои сомнения?
Заранее спасибо.