Microsoft Word кл программирование на Java 2020 Зорина docx


Особенности класса String



Pdf көрінісі
бет39/65
Дата17.10.2023
өлшемі3,23 Mb.
#117230
түріРеферат
1   ...   35   36   37   38   39   40   41   42   ...   65
Байланысты:
Лекции

Особенности класса String 
Строки получили специальное значение в Java , потому что они часто 
используются в любой программе. Следовательно, эффективность работы с ними (с 
точки зрения вычислений и хранения) имеет решающее значение. 
Разработчики Java все-таки решили сохранить примитивные типы в объектно-
ориентированном языке, вместо того, чтобы сделать вообще все в виде объектов. 
Нужно сказать, что сделано это в первую очередь, для того чтобы повысить 
производительность языка. Ведь примитивы хранятся в стеке вызовов, и 
следовательно, требуют меньше пространства для хранения, и ими легче управлять. 
С другой стороны, объекты хранятся в области памяти, которую используют 


79 
программы, и которая называется “куча” (heap), а этот механизм требуют сложного 
управления памятью и потребляет гораздо больше места для хранения. 
По соображениям производительности, класс String в Java разработан, так, 
чтобы быть чем-то промежуточным между примитивными типами данных и типами 
данных типа класс. Как уже было отмечено выше специальные характеристики типа 
String включают в себя: 

'+' оператор, который выполняет сложение примитивных типов 
данных (таких, как int и double), и перегружен, чтобы работать на объектах 
String. Операция '+' выполняет конкатенацию двух операндов типа String. 

Java не поддерживает механизма перегрузки операций по 
разработке программного обеспечения. В языке, который поддерживает 
перегрузку операций, например C ++, вы можете превратить оператор '+' (с 
помощью перегрузки) в оператор для выполнения сложения или вообще 
вычитания, например двух матриц, кстати это будет примером плохого кода. 
В Java оператор '+' является единственным оператором, который внутренне 
перегружен, чтобы поддержать конкатенацию (сложение) строк в Java. Нужно 
принять к сведению, что '+' не работает на любых других произвольных 
объектах, помимо строк, например, таких как рассмотренные нами ранее 
классы Point или Circle. 
Теперь, собственно о строках. Существуют несколько способов создания 
строк. Строка String может быть получена одним из способов: 

непосредственно из присвоения строкового литерала ссылке типа 
String – таким же способом как примитивные типы данных; 

или с помощью оператора new и конструктора класса String, 
аналогично вызову конструктора любого другого класса. Тем не менее, этот 
способ не часто используется и использовать его не рекомендуется. 
Для
примера

String str1 = "Java is Hot"; // 
неявный
вызов
конструктора
через
присваивание
строкового
литерала
String str2 = new String("I'm cool"); 
// 
явный
вызов
конструктора
через
new 


80 
char[] array = { 'h', 'e', 'l', 'l', 'o', '.' }
;
//
еще
один
способ
создания
строки
В 
первом случае str1 объявлена как cсылка типа String и инициализируется
строкой " 
Java is Hot
" . Во второй строрке, str2 объявлена как ссылка на строку и 
инициализируется с помощью вызова оператора new и конструктора, который 
инициализирует ее значением “ 
I'm cool
” . 

Строковые литералы хранятся в общем пуле. Это облегчает совместное 
использование памяти для строк с тем же содержанием в целях сохранения 
памяти. Объекты строк , выделенные с помощью оператора new хранятся в 
куче (heap), а там нет разделяемого хранилища для того же самого контента 
(содержания). 


Достарыңызбен бөлісу:
1   ...   35   36   37   38   39   40   41   42   ...   65




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет