Junior
რა იცით Java-ს String კლასი hakkında?
sobes.tech AI
პასუხი AI-სგან
Java-да String — бұл өзгермейтін (immutable) класс, ол таңбалар тізбегін білдіреді.
Негізгі ерекшеліктері:
- Өзгермейтіндік:
Stringобъектісі құрылғаннан кейін оның мазмұны өзгермейді. Әрбір өзгерту сияқты көрінетін операция жаңаStringобъектісін қайтарады. БұлStringобъектілерін ағынсыз етеді. - Жолдар пулы (String Pool): Java жолдар пулын қолдайды. Егер жол литералды түрде жасалса (мысалы,
"hello"), JVM алдымен пулды тексереді. Егер мұндай жол бұрыннан бар болса, ол объектіге сілтемені қайтарады. Егер жоқ болса, жаңа объект пулда жасалады.new String("hello")конструкторы әрқашан жаңа объекті жасайды пулдан тыс. +операторының жүктелуі:+операторы жолдарды біріктіру үшін жүктелген. Компилятор оныStringBuilderнемесеStringBufferпайдаланып оңтайландыра алады.- Интерфейстерді жүзеге асыру:
StringSerializable,Comparable<String>жәнеCharSequenceинтерфейстерін жүзеге асырады. - Әдістер:
Stringкласы көптеген пайдалы әдістерді ұсынады:length(),charAt(),substring(),indexOf(),equals(),equalsIgnoreCase(),startsWith(),endsWith(),trim(),replace(),split()және басқа.
Жолдар құру мысалдары:
// Литерал арқылы құру (пулды пайдаланады)
String str1 = "Hello";
// Конструктор арқылы құру (жаңа объекті құрады пулдан тыс)
String str2 = new String("World");
// Таңбалар массивінен құру
char[] chars = {'J', 'a', 'v', 'a'};
String str3 = new String(chars);
Жолдарды салыстыру:
equals(): мазмұнын салыстырады.==: объектілердің сілтемелерін салыстырады. Литералдар үшін, мазмұны бірдей болса, әдетте пулдан бірдей сілтемелер болады, бірақnew String()арқылы жасалған объектілер үшін==falseболады, тіпті мазмұны бірдей болса да.
String s1 = "java";
String s2 = "java";
String s3 = new String("java");
System.out.println(s1 == s2); // true (екеуі де пулдан)
System.out.println(s1 == s3); // false (s3 жаңа объект)
System.out.println(s1.equals(s3)); // true (мазмұнын салыстырады)
Java-да жолдарды өзгерту үшін StringBuilder (синхрондалмаған, біржолды орта үшін) және StringBuffer (синхрондалған, көпжолды орта үшін) пайдаланылады, олар өзгермелі:
// `StringBuilder` мысалы
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
String result = sb.toString(); // қайтадан String-ке айналдырамыз
System.out.println(result); // Шығу: Hello World