Similar presentations:
Собеседование Entry Level. String
1.
Entry level questions vol. 2 (String)2.
Вопрос 1Дайте характеристику String в JAVA
3.
Дайте характеристику String вJAVA
String — это класс в Java для представления текстовых
неизменяемых строк. Он находится в пакете java.lang.
Объявление класса String: public final class String
Это неизменяемый (immutable) и финализированный тип
данных в Java и все объекты класса String виртуальная
машина хранит в пуле строк.
Символы в строках хранятся в кодировке Unicode, каждый
символ занимает два байта. Тип каждого символа char .
4.
Вопрос 2Какие есть способы создания объекта String? Где они
создаются?
5.
Какие есть способы созданияобъекта String? Где они создаются?
String str1 = "abc";
Когда мы создаем строку используя двойные кавычки,
виртуальная машина Java ищет в пуле строк другую
строку с таким же значением. Если строка найдена, то
возвращается только ссылка на существующий объект
класса String, иначе создается новый объект с
полученным значением, и сохраняется в пул.
String str = new String("abc");
Когда мы используем оператор new, виртуальная машина
создает объект String, но не хранит его в пуле строк.
6.
Вопрос 3Как сравнить две строки в Java и/или отсортировать их?
7.
Как сравнить две строки в Javaи/или отсортировать их?
Класс String наследует интерфейс Comparable и имеет
два варианта метода compareTo().
Метод compareTo(String anotherString) сравнивает объект
String с полученным аргументом String
лексикографически. Если текущая строка
предшествует полученной строке, метод возвращает
отрицательное значение типа integer, и если строка
следует за полученным аргументом, то возвращает
положительное значение integer. Если метод
возвращает 0, значит строка имеет то же значение, в
таком случае метод equals(String str) так же вернет true.
8.
Вопрос 4Предложите алгоритм преобразования строки в символ
9.
Предложите алгоритмпреобразования строки в символ
Проверить, возможно ли преобразование (строка состоит
из одного символа), и преобразовать строку в символ с
помощью charAt(0) если это возможно.
String str = "a";
if (str.length() == 1){
char c = str.charAt(0);
}
10.
Вопрос 5Как преобразовать строку в массив байтов и обратно?
11.
Как преобразовать строку вмассив байтов и обратно?
String str = "string";
byte[] byteArr = str.getBytes();
String str1 = new String(byteArr);
12.
Вопрос 6Какие различия между String, StringBuffer и StringBuilder
13.
Какие различия между String,StringBuffer и StringBuilder
Строка является неизменной и финализированной в Java
(immutable), поэтому все наши манипуляции со строкой
всегда будут создавать новую строку. Эти операции
ресурсоемки, т. к. строка не предназначена для таких
манипуляций.
StringBuffer и StringBuilder являются изменяемыми
классами. Операции с StringBuffer потокобезопасны и
синхронизированы, а методы StringBuilder не
потокобезопасны, но за счет отсутствия синхронизаций
более производительный.
14.
Вопрос 7Для чего сделано, что строка неизменная и
финализированная в Java?
15.
Для чего сделано, что строка неизменнаяи финализированная в Java?
Строковый пул возможен только потому, что строка
неизменна в Java.
Если строка будет изменяемой, это станет серьезной
угрозой безопасности приложения из-за возможных
несанкционированных изменений, например, в
паролях.
Так как строка неизменная, она безопасна для
многопоточности и один экземпляр строки может быть
совместно использован различными потоками.
Строки используются в Java classloader и ее
16.
Вопрос 8Как разделить строку на части?
17.
Как разделить строку на части?String line = "I am a java developer";
String[] words = line.split(" ");
18.
Вопрос 9Почему массив символов предпочтительнее строки для
хранения пароля?
19.
Почему массив символовпредпочтительнее строки для хранения
пароля?
Строка неизменяемая в Java и хранится в пуле строк. С
тех пор, как она была создана, она остается в пуле,
пока не будет удалена сборщиком мусора, поэтому,
когда мы думаем, что закончили работу с паролем, он
остается доступным в памяти некоторое время, и нет
способа избежать этого.
Если мы используем массив символов для хранения
пароля, мы можем очистить его после того, как
закончим с ним работать. Таким образом, мы можем
контролировать, как долго он находится в памяти, что
позволяет избежать риска безопасности, свойственного
20.
Вопрос 10Что такое пул строк?
21.
Что такое пул строк?Пул строк – это набор строк, который хранится в памяти
Java heap.
Пул строк возможен исключительно благодаря
неизменяемости строк в Java и реализации идеи
интернирования строк.
Пул строк также является примером паттерна
Приспособленец (Flyweight).
Пул строк помогает экономить большой объем памяти,
но с другой стороны создание строки занимает больше
времени.
22.
Вопрос 11Что будет выведено на экран в результате выполнения
кода? Почему?
public class StringPool {
public static void main(String[] args) {
String s1 = "Cat";
String s2 = "Cat";
String s3 = new String("Cat");
23.
Что будет выведено на экран врезультате выполнения кода? Почему?
s1 == s2 : true
s1 == s3 : false
Когда мы используем двойные кавычки для создания
строки, сначала ищется строка в пуле с таким же
значением, и если находится, то просто возвращается
ссылка, иначе создается новая строка в пуле, а затем
возвращается ссылка.
Когда мы используем оператор new, мы принуждаем
класс String создать новый объект строки