Java'da String StringBuffer ve StringBuilder Arasındaki Fark

İçindekiler:

Java'da String StringBuffer ve StringBuilder Arasındaki Fark
Java'da String StringBuffer ve StringBuilder Arasındaki Fark

Video: Java'da String StringBuffer ve StringBuilder Arasındaki Fark

Video: Java'da String StringBuffer ve StringBuilder Arasındaki Fark
Video: Java - Ders 58: StringBuffer ve StringBuilder Arasındaki Farklar 2024, Kasım
Anonim

Anahtar Farkı – Java'da String vs StringBuffer vs StringBuilder

String, StringBuffer ve String Builder Java'daki sınıflardır. String, Java programlamada yaygın olarak kullanılmaktadır. Bir String nesnesi oluşturulduktan sonra bunları değiştirmek mümkün değildir. Dize'de her değişiklik meydana geldiğinde, yeni bir Dize oluşturur. Mevcut bir String'in bitişi olsa bile, yeni bir String oluşturur. Bu bellek israfına neden olur. Java'daki StringBuffer ve StringBuilder sınıfları, String'i değiştirmek için kullanılır. Java'da String, StringBuffer ve StringBuilder arasındaki temel fark, String'in bir karakter dizisi olan String türünde bir nesne oluşturmak için bir sınıf olmasıdır, StringBuffer, iş parçacığı güvenliği sağlayan String'leri değiştirmek için kullanılan bir sınıftır ve StringBuilder bir iş parçacığı güvenliği sağlamayan Dizeleri değiştirmek için kullanılan sınıf.

Java'da String nedir?

String sınıfı Java.lang paketindedir. Programcı her String oluşturduğunda, String türünde bir nesnedir. Dizeler değişmez, yani nesne oluşturulduktan sonra değiştirilemez. Integer, Byte, Float, Double gibi sarmalayıcı sınıfları kullanılarak oluşturulan nesneler de değişmezdir. Bir dize değişmezi çift tırnak içine alınır. Örneğin. "Selam Dünya". Bir dize değişmezi oluşturulduğunda, Java Sanal Makinesi (JVM), Dize sabit havuzunu kontrol eder. Dize varsa, Dize sabit havuzuna bir başvuru döndürülür. Yeni bir String ise, o nesne String sabit havuzunda oluşturulur.

Java'da String StringBuffer ve StringBuilder Arasındaki Fark
Java'da String StringBuffer ve StringBuilder Arasındaki Fark
Java'da String StringBuffer ve StringBuilder Arasındaki Fark
Java'da String StringBuffer ve StringBuilder Arasındaki Fark

Şekil 01: String, StringBuffer ve StringBuilder kullanan Java programı

Aşağıdaki kod parçasına bakın.

String s1=“Merhaba”;

s1=s1 + “Dünya”;

System.out.println(s1);

İlk ifadede, s1, String sabit havuzundaki “Merhaba”dan bahsediyor. İkinci ifadede JVM, mevcut String'i değiştirmez. Bunun yerine, "Merhaba Dünya" olarak yeni bir Dize oluşturur ve s1 şimdi bu yeni Dize'ye atıfta bulunur. Çıkan "Merhaba" nesnesi, String sabit havuzunda hala var.

Bir kod varsa, String s1=”Merhaba”;

Dize s2=s1;

s1, s2 her ikisi de “Merhaba” String nesnesine atıfta bulunacaktır.

Java'da StringBuffer nedir?

StringBuffer sınıfı, String nesnelerini değiştirilebilir yapmak için kullanılır. Bu nedenle, bu nesneler değiştirilebilir. StringBuffer dört kurucu tanımlar. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Aşağıdaki koda bakın, StringBuffer s1=new StringBuffer(“Merhaba”);

s1.append(“Dünya”);

System.out.println(s1);

1. ifadede, s1, bir yığındaki “Merhaba” nesnesine atıfta bulunuyor. Nesne, StringBuffer kullanılarak oluşturulduğu için değiştirilebilir. 2. ifadede, "World", aynı "Hello" String nesnesine eklenir.

StringBuffer sınıfıyla oluşturulan String nesneleri bellekten tasarruf edebilir. StringBuffer, iş parçacığı güvenliği sağlar çünkü iki iş parçacığı, StringBuffer sınıfında aynı yönteme aynı anda erişemez. İplik güvenliği, StringBuffer performansını düşürür. StringBuffer sınıfı, append(), insert(), reverse(), replace() gibi yöntemler içerir.

Java'da StringBuilder nedir?

StringBuilder sınıfı, String nesnelerini değiştirilebilir yapmak için kullanılır. Bu nedenle, bu nesneler değiştirilebilir. İşlev, StringBuffer'a benzer, ancak bu, iş parçacığı güvenliği sağlamaz. StringBuilder'ın StringBuilder(), StringBuilder(int size), StringBuilder(String str) gibi yapıcıları vardır.

Aşağıdaki koda bakın.

StringBuilder s1=new StringBuilder(“Merhaba”);

s1.append(“Dünya”);

System.out.println(s1);

1. ifadede, s1, bir yığındaki “Merhaba” nesnesine atıfta bulunuyor. Nesne, StringBuilder kullanılarak oluşturulduğu için değiştirilebilir. 2. ifadede, "World", aynı "Hello" String nesnesine eklenir. Tamamen yeni bir String nesnesi oluşturulmaz.

StringBuilder sınıfıyla oluşturulan String nesneleri bellekten tasarruf edebilir. StringBuffer'dan farklı olarak, StringBuilder iş parçacığı güvenliği sağlamaz çünkü iki iş parçacığı StringBuilder sınıfında aynı yönteme aynı anda erişebilir. StringBuilder sınıfı, append(), insert(), reverse(), replace() gibi yöntemler içerir.

Java'da String, StringBuffer ve StringBuilder Arasındaki Benzerlik Nedir?

Tümü, Dizeler oluşturmak için kullanılabilir

Java'da String StringBuffer ve StringBuilder Arasındaki Fark Nedir?

String vs StringBuffer vs StringBuilder

Dize Dize, bir karakter dizisi olan String türünde bir nesne oluşturmak için kullanılan bir Java sınıfıdır.
StringBuffer StringBuffer, iş parçacığı güvenliği ile değiştirilebilen String nesneleri oluşturmak için kullanılan bir Java sınıfıdır.
StringBuilder StringBuilder, iş parçacığı güvenliği olmadan değiştirilebilen dize nesneleri oluşturmak için kullanılan bir sınıftır.
Değişebilirlik
Dize Dize değişmez bir sınıftır.
StringBuffer StringBuffer değişken bir sınıftır.
StringBuilder StringBuilder değişken bir sınıftır.
İplik Güvenliği
Dize Dize Yöntemleri iş parçacığı için güvenlidir.
StringBuffer StringBuffer yöntemleri iş parçacığı için güvenli ve senkronizedir.
StringBuilder StringBuilder yöntemleri iş parçacığı için güvenli değildir ve senkronize değildir.
Performans
Dize Dize hızlı.
StringBuffer StringBuffer yavaş.
StringBuilder StringBuilder hızlıdır.

Özet – Java'da String vs StringBuffer vs StringBuilder

String, StringBuffer ve StringBuilder aynı görünüyor, ancak anlamları farklı. Bunların hepsi Java sınıflarıdır. Java'da String, StringBuffer ve StringBuilder arasındaki fark şudur: String, bir karakter kümesi olan String türünde bir nesne oluşturmak için sınıftır, StringBuffer, String'leri değiştirmek ve iş parçacığı güvenliğini sağlamak için kullanılan bir sınıftır, StringBuilder ise bir iş parçacığı güvenliği sağlamayan Dizeleri değiştirmek için kullanılan sınıf.

Java'da PDF String ve StringBuffer vs StringBuilder'ı indirin

Bu makalenin PDF sürümünü indirebilir ve alıntı notuna göre çevrimdışı amaçlarla kullanabilirsiniz. Lütfen PDF sürümünü buradan indirin Java'da String StringBuffer ve StringBuilder Arasındaki Fark

Önerilen: