Отличия в модификации объекта

Мне просто интересно, может ли кто-нибудь помочь мне с этим:

    StringBuilder s=new StringBuilder("0123456789");
    s.substring(1, 2);
    System.out.println(s);
    s.delete(2, 8);
    System.out.println(s);

первый Sysout дает 0123456789 (хотя я ожидал подстроку), но другой Sysout дает 0189. Я заметил, что также с некоторыми классами Time и Date. Как я могу выяснить, когда какая форма будет изменять исходный объект (в этом случае s ). Это связано с изменчивостью объектов? Есть ли какое-то общее правило? Заранее спасибо HK

Ответы на вопрос(3)

Ваш ответ на вопрос