StringBuffer vs StringBuilder
Java çok popüler bir nesne yönelimli dildir. Java'da, String sınıfı, değiştirilemeyen (başlatıldıktan sonra) bir dizi karakter tutmak için sağlanır. Alternatif olarak, Java programlama dili iki tür değiştirilebilir karakter dizisi sağlar. Yani, programcıların belirli bir String'i (başlatmadan sonra) değiştirmeleri gerektiğinde, String sınıfı yerine StringBuffer sınıfını veya StringBuilder sınıfını kullanmaları gerekir. StringBuffer, JDK 1.0'da tanıtıldı ve StringBuilder sınıfı, aslında StringBuffer sınıfının (tek iş parçacıklı ortamlar için) yerini almak üzere JDK 1.5'te tanıtıldı.
StringBuffer nedir?
StringBuffer sınıfı JDK 1.0'da tanıtıldı. StringBuffer sınıfı, Java.lang paketine aittir ve genel Java.lang.object'den miras alınır. Son sınıf olduğu için programcılar onu daha fazla genişletemezler. StringBuffer sınıfı, Serileştirilebilir, Eklenebilir ve CharSequience arabirimlerini uygular. StringBuffer sınıfının bir nesnesi, değiştirilebilir ve iş parçacığı için güvenli bir dizi karakter tutabilir. Bu, bir String nesnesine çok benzer olduğu anlamına gelir, ancak karakter dizisi (uzunluk ve içerik), StringBuffer nesnesi başlatıldıktan sonra herhangi bir zamanda değiştirilebilir. Ancak bu, StringBuffer sınıfı tarafından sağlanan belirli yöntemler kullanılarak yapılmalıdır. StringBuffer sınıfında iki temel işlem vardır. Bunlar, append() ve insert() yöntemleriyle sağlanır. Bu yöntemler aşırı yüklenmiştir, bu nedenle tamsayı ve uzun gibi herhangi bir türdeki verileri kabul edebilirler. Her iki yöntem de önce herhangi bir girişi bir dizgeye dönüştürür ve ardından karşılık gelen dizgenin karakterlerini mevcut Stribbuffer nesnesine ekler (ekler veya ekler).append() yöntemi, dönüştürülen dizeyi mevcut StringBuffer nesnesinin sonuna eklerken insert() yöntemi, giriş karakterlerini belirtilen ekleme noktasına ekler.
StringBuilder nedir?
StringBuilder sınıfı JDK 1.5'te tanıtıldı. StringBuilder API, StringBuffer API'ye çok benzer. Aslında, StringBuilder sınıfı aslında StringBuffer sınıfının (tek iş parçacıklı uygulamalar için) yerine geçmiştir. StringBuilder sınıfı, Java.lang paketine aittir ve genel Java.lang.object'den miras alınır. Bu bir son sınıftır ve bu nedenle programcılar onu genişletemez. StringBuilder sınıfı, Serileştirilebilir, Eklenebilir ve CharSequience arabirimlerini uygular. StringBuilder sınıfının bir nesnesi, değişken olan ancak iş parçacığı için güvenli olmayan bir karakter dizisini tutabilir. Bu, bir String nesnesine çok benzer olduğu anlamına gelir, ancak dize herhangi bir zamanda değiştirilebilir. Ancak StringBuilder sınıfı senkronizasyon sağlamaz ve bu nedenle StringBuffer sınıfını kullanmaktan daha hızlı olduğu iddia edilir. StringBuilder sınıfı, StringBuffer sınıfındakiyle tamamen benzer işlevselliğe sahip append() ve insert() yöntemleri sağlar.
StringBuffer ve StringBuilder arasındaki fark nedir?
Java'daki değişken karakter dizileri için StringBuilder ve StringBuffer sınıfları kullanılabilse de, aralarında önemli bir fark vardır. StringBuffer sınıfının aksine, StringBuilder sınıfı iş parçacığı için güvenli değildir ve senkronizasyon sağlamaz. Bu nedenle tek iş parçacıklı uygulamalarda StringBuffer sınıfının yerine StringBuilder sınıfının kullanılması önerilir, çünkü StringBuilder sınıfının (normal şartlar altında) StringBuffer sınıfından çok daha hızlı olacağı iddia edilir.