String

 String - immutable klasdir. 

package main;

public class Test {
public static void main(String[] args) {
String s = null;
boolean bb = "java".equals(s);
boolean b = s.equals("java"); // null pointer exception aliriq
}
}


String x = "hello";
String y = "hello";
System.out.println(x == y);

String a = "hello"; // compile time yaranir
String b = " hello".trim(); // runtime yaranir
System.out.println(a == b);

String l = "Hello World";
String k = "Hello ";
String z = a + "World";
System.out.println(l == z);

String ll = "Hello World";
final String kk = "Hello ";
String zz = kk + "World";
System.out.println(ll == zz);

String ll = "Hello World";
final String kk = "Hello ";
String tt = "World";
String zz = kk + tt;
System.out.println(ll == zz);

Bes niye bele baw verir. Final variable-lar deyiwilmir ve compiler gorur ki, variable-lar 
deyiwilmir ve menimsedende de compile time baw verir ve ona gorede yuxaridaki misallarin 
bezileri true verir. 

--------------------------------------------------------------------------------------------
package main;

public class Main2 {
public static void main(String[] args) {
StringBuilder[] a = new StringBuilder[3];
StringBuilder b = new StringBuilder("Hello");

for (int i = 0; i < a.length; i++) {
a[i] = b;
}

b.append("Baku");

for (StringBuilder c : a) {
System.out.println(c);
}
}
}
versus:
package main;

public class Main2 {
public static void main(String[] args) {
String[] a = new String[3];
StringBuilder b = new StringBuilder("Hello");

for (int i = 0; i < a.length; i++) {
a[i] = b.toString();
}

b.append("Baku");

for (String c : a) {
System.out.println(c);
}
}
}
---------------------------------------------------------------------------------------------
Speed difference between String and StringBuilder and StringBuffer
package main.stirng;

public class StringPerformance {
public static void main(String[] args) {
// buildStreamWithPlus("Java", 100_000);
// buildStringWithStringBuilder("Java", 100_000);
// buildStringWithStringBuffer("Java", 100_000);
}

public static void buildStreamWithPlus(String string, int count) {
long start = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
string = string + i;
}
long end = System.currentTimeMillis();
System.out.println("String. Time to build string is : " + (end - start));
System.out.println("String length : " + string.length());
}

public static void buildStringWithStringBuilder(String string, int count) {
StringBuilder sb = new StringBuilder(string);
long start = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
sb.append(i);
}
long end = System.currentTimeMillis();
System.out.println("StringBuilder. Time to build string is : " + (end - start));
System.out.println("String length : " + sb.length());
}

public static void buildStringWithStringBuffer(String string, int count) {
StringBuffer sb = new StringBuffer(string);
long start = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
sb.append(i);
}
long end = System.currentTimeMillis();
System.out.println("StringBuffer. Time to build string is : " + (end - start));
System.out.println("String length : " + sb.length());
}
}

Комментарии

Популярные сообщения из этого блога

IoC:ApplicationContext, BeanFactory. Bean

Lesson1: JDK, JVM, JRE

Lesson_2: Operations in Java