Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
Разница между String и StringBuffer может быть продемонстрирована на следующем примере:
public class Test {
public static void main(String[] args) { Testt = newTest(); String s = new String("ssssss"); StringBuffer sb = new StringBufferf'bbbbbb"); s.concat("-aaa"); sb.append("-aaa"); System.out. println(s); System.out.println(sb);
}
}
В результате на экран будет выведено следующее:
ssssss bbbbbb-aaa
В данном примере можно заметить, что объект String остался неизменным, а объект StringBuffer изменился.
Основные методы, используемые для модификации StringBuffer, это:
• public StringBuffer append(String str) - добавляет переданную строку str в буфер;
• public StringBuffer insert(int offset, String str) - вставка строки, начиная с позиции offset (пропустив offset символов).
Стоит обратить внимание, что оба метода имеют варианты, принимающие в качестве параметров различные примитивные типы Java вместо String. При использовании этих методов аргумент предварительно приводится к строке (с помощью String.valueOf()).
Еще один важный момент, связанный с этими методами, - они возвращают сам объект, у которого вызываются. Благодаря этому, возможно их использование в цепочке. Например:
public static void main(String[] args) {
StringBuffer sb = new StringBufferfabc");
String str = sb.append("e").insert(4,"f").insert(3,"d").toString();
System.out.println(str);
}
В результате на экран будет выведено: abcdef
При передаче экземпляра класса StringBuffer в качестве параметра метода следует помнить, что этот класс изменяемый:
public class Test {
public static void main(String[] args) { Test t = new Test();
StringBuffer sb = new StringBufferf aaa"); System. out.printlnf'Before = " + sb); t.doTest(sb);
System, out. printlnfAfter = " + sb);
}
void doTest(StringBuffer theSb){ theSb.append("-bbb");
}
}
В результате на экран будет выведено следующее:
Before = aaa After = aaa-bbb
Поскольку все объекты передаются по ссылке, в методе doTest, при выполнении операций с theSB, будет модифицирован объект, на который ссылается sb.
Системные классы
Следующие классы, которые будут рассмотрены, обеспечивают взаимодействие с внутренними механизмами JVM и средой исполнения приложения: