Karşılaştırma Tablosu
Karşılaştırma için temel | sicim | StringBuffer |
---|---|---|
Temel | String nesnesinin uzunluğu sabittir. | StringBuffer'ın uzunluğu arttırılabilir. |
değişiklik | Dize nesnesi değişmez. | StringBuffer nesnesi değişkendir. |
performans | Birleştirme sırasında daha yavaş. | Birleştirme sırasında daha hızlıdır. |
Bellek | Daha fazla hafıza tüketir. | Daha az hafıza tüketir. |
Depolama | Dize sabiti havuzu. | Öbek Hafıza. |
String tanımı
“String” Java'da bir sınıftır. String sınıfının nesnesi sabit uzunluktadır ve en önemlisi, String sınıfının nesnesi “değiştirilemez” dir. String nesnesini başlattıktan sonra, o nesneyi tekrar değiştiremezsiniz. String sınıfının nesnesi String sabit havuzunda saklanır.
İlk önce, herhangi bir dizge yarattığınızda şunu anlayalım; string türünde bir nesne yaratırsınız. String sabitleri ayrıca string nesnelerdir.
System.out.println ("Merhaba bu Teckpix Çözümü");
Yukarıdaki ifadede, “Merhaba bu Teckpix Çözümü” dizesi bir Dize sabitidir.
Şimdi String nesnesinin değişkenliğini bir örnek yardımıyla anlayalım.
Str = yeni String ("Teckpix"); str.concat ( "Çözelti"); system.out.println (str); // Teckpix çıktı
Yukarıdaki kodda, “Teckpix” ve “Solution” dizelerini birleştirmeye çalıştım. Bir dizge ne zaman oluşturulduğunu bildiğimiz gibi bu, String türünün nesnesinin yaratıldığı anlamına gelir. Bu nedenle, "Teckpix" dizgisi, referansı "str" dizgisine atanmış bir nesne yaratır. Daha sonra, String sınıfının “concat ()” yöntemini kullanarak “Teckpix” dizesiyle başka bir “Çözüm” dizesini birleştirmeye çalıştım.
StringBuffer'un tanımı
“StringBuffer” sınıfı, “String” sınıfının eş sınıfıdır. StringBuffer sınıfı, dizelere daha fazla işlev sağlar. StringBuffer sınıfının nesnesi, nesnesi üzerinde değişiklik yapılabilen değişkendir. StringBuffer nesnesinin uzunluğu büyütülebilir. Karakterleri veya alt dizileri, StringBuffer nesnesine atanan dize değişmezinin ortasına veya sonunda ekleyebilirsiniz. StringBuffer, belirli bir uzunluk istenmediğinde, 16 karakter daha yer ayırır.
StringBuffer nesnesinin değişkenliğini bir örnek yardımıyla anlayalım:
StringBuffre Sb = yeni StringBuffer ("Teckpix"); Sb.append ( "Çözüm"); system.out.println (Sb); // Çıkış Teckpix Çözümü
StringBuffer nesnesinin değişken olduğunu bildiğimiz gibi. Append () yöntemi, başlangıçta, "Teckpix" nesnesinin referansının daha önce atandığı StringBuffer nesnesini Sb değiştirir. Append () yöntemi, yeni bir hazır bilgi olan “Solution” dizgesini, “Teckpix” dizgesinin sonuna ekler. Şimdi Sb nesnesini yazdırdığımda, “Teckpix Solutions” olarak değiştirilen string nesnesini yazdıracak.
String ve StringBuffer Arasındaki Anahtar Fark
- String nesnesinin uzunluğu sabittir, ancak gerektiğinde bir StringBuffer nesnesinin uzunluğu arttırılabilir.
- String nesnesi değişmezdir, yani nesnesi tekrar atanamaz, oysa StringBuffer nesnesi değişkendir.
- String nesnesi performansta yavaştır, StringBuffer nesnesi daha hızlıdır.
- String nesnesi daha fazla bellek tüketir, StringBuffer nesneleri daha az bellek tüketir.
- Dize nesneleri sabit bir havuzda saklanırken, StringBuffer nesneleri yığın bellekte depolanır.
Sonuç:
StringBuffer nesneleri, String sınıfına kıyasla dizelere daha fazla işlev sağlar. Bu nedenle, String sınıfı yerine StringBuffer ile çalışmak tercih edilir.