Java'da String StringBuffer ve StringBuilder Arasındaki Fark

Temel Fark - Dize vs StringBuffer vs Java'da StringBuilder
 

String, StringBuffer ve String Builder, Java'daki sınıflardır. String, Java programlamasında yaygın olarak kullanılır. Bir String nesnesi oluşturulduktan sonra bunları değiştirmek mümkün değildir. String'de her değişiklik gerçekleştiğinde yeni bir String oluşturur. Varolan bir String ile birleştirme olsa bile yeni bir String oluşturur. Bu bellek israfına neden olur. Java'da StringBuffer ve StringBuilder sınıfları, String'i değiştirmek için kullanılır. temel fark Java'da String, StringBuffer ve StringBuilder arasında String, karakter dizisi olan String türünde bir nesne oluşturmak için bir sınıftır; StringBuffer, iş parçacığı güvenliği sağlayan Dizeleri değiştirmek için kullanılan bir sınıftır ve StringBuilder, iş parçacığı güvenliği sağlamayan Dizeleri değiştirmek için kullanılan bir sınıftır.

İÇİNDEKİLER

1. Genel Bakış ve Temel Fark
2. Java'da Dize nedir
3. Java'da StringBuffer nedir
4. Java'da StringBuilder nedir
5. String StringBuffer ve Java'da StringBuilder Arasındaki Benzerlikler
6. Yan Yana Karşılaştırma - Dize vs StringBuffer vs StringBuilder Java Tabular Form
7. Özet

Java'da Dize Nedir?

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

Ş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 “Hello” ya atıfta bulunuyor. İkinci ifadede, JVM varolan Dizeyi değiştirmez. Bunun yerine, “Hello World” olarak yeni bir String oluşturur ve s1 şimdi bu yeni String'e atıfta bulunmaktadır. Mevcut "Hello" nesnesi, String sabit havuzunda hala var.

Eğer bir kod varsa,

String s1 = ”Merhaba”;

Dize s2 = s1;

s1, s2 her ikisi de “Hello” 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 boyutu), StringBuffer (String str), StringBuffer (charSequence [] ch)

Aşağıdaki kodu inceleyin,

StringBuffer s1 = yeni StringBuffer (“Merhaba”);

s1.append ( “Dünya”);

System.out.println (s1);

İfade 1'de, s1 bir yığındaki “Merhaba” nesnesine atıfta bulunur. Nesne, StringBuffer kullanılarak oluşturulduğundan değiştirilebilir. 2. açıklamada, “Dünya” aynı “Merhaba” String nesnesine eklenir.

StringBuffer sınıfıyla oluşturulan dize nesneleri belleği kaydedebilir. İki iş parçacığı StringBuffer sınıfındaki aynı yönteme aynı anda erişemediği için StringBuffer iş parçacığı güvenliği sağlar. İş parçacığı güvenliği StringBuffer performansını azaltı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 iş parçacığı güvenliği sağlamaz. StringBuilder, StringBuilder (), StringBuilder (int size), StringBuilder (String str) gibi yapıcılara sahiptir.

Aşağıdaki koda bakın.

StringBuilder s1 = new StringBuilder (“Merhaba”);

s1.append ( “Dünya”);

System.out.println (s1);

İfade 1'de, s1 bir yığındaki “Merhaba” nesnesine atıfta bulunur. Nesne, StringBuilder kullanılarak oluşturulduğu için değiştirilebilir. 2. açıklamada, “Dünya” aynı “Merhaba” String nesnesine eklenir. Tamamen yeni bir String nesnesi oluşturulmaz.

StringBuilder sınıfıyla oluşturulan dize nesneleri belleği kaydedebilir. StringBuffer'ın tersine, StringBuilder, iş parçacığı güvenliği sağlamaz, çünkü iki iş parçacığı StringBuilder sınıfındaki 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

sicim Dize, 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.
mutability
sicim Dize değişmez bir sınıftır.
StringBuffer StringBuffer değiştirilebilir bir sınıftır.
StringBuilder StringBuilder değiştirilebilir bir sınıftır.
İplik Güvenliği
sicim String yöntemleri iş parçacığı için güvenlidir.
StringBuffer StringBuffer yöntemleri iş parçacığı için güvenli ve senkronize.
StringBuilder StringBuilder yöntemleri iş parçacığı için güvenli değil ve eşitlenmez.
Verim
sicim Dize hızlı.
StringBuffer StringBuffer yavaş.
StringBuilder StringBuilder hızlı.

Özet - dize vs StringBuffer vs Java'da StringBuilder 

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

PDF dosyasını indirin: StringBuffer vs StringBuilder Java

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

Referans:

1. “String vs StringBuffer vs StringBuilder.” JournalDev, 30 Temmuz 2017. Buradan ulaşılabilir
2. “Java Aç.” Örnek: String, StringBuilder ve StringBuffer Sınıfları Arasındaki Fark: Java | Java Aç. Burada mevcut 
3.tutorialspoint.com. “Java Dizeleri.” Nokta. Burada mevcut