Collection Interface

Collection element olarak tanımlanan bir grup nesneyi temsil eder. Collection interface’i maksimum genellik istenildiğinde kullanılır. Collectionlar, arguman olarak yine bir collection alabilecek constructorlara sahiptir.Bu constructor(conversion constructor) argüman olarak verilen collection ne olursa olsun, onun elementlerini içeren yeni bir collection oluşturur. Bu sayede collection tipini değiştirebiliriz. Örneğin Collection<String> c şeklinde List, Set veya diğer Collection türlerinde […]

Thread Pool

Daha önceki yazılarda taskın ve threadın şu şekilde Runnable task = new TaskClass(task); new Thread(task).start();  oluşturalabileceğini yazmıştım. Bu yöntem tek taskı yerine getiren uygulamarda kullanışlı olsa da çokça task olan uygulamarla her task için bir thread oluşturmak gerektiğinden elverişli olmayacaktır. Her task için yeni bir thread başlatmak performans sorunlarına yol açar. Thread pool işte burada devreye […]

RandomAccessFile

Şimdiye kadar ki kullandığımız streamlar read-only veya write-only streamlardı.Bunlar sequential(ardışık) stream olarak bilinir,ve bu streamleri kullanarak açtığımız dosyalara ise sequential-access file denir. RandomAccessFile sınıfı DataInput ve DataOutput arayüzlerini uygular.Bu sayede read ve write işlemlerini tek bir nesne ile yapabiliriz,ayrıca dosyadaki verilere istediğimiz kısımdan erişebiliriz. Bir RandomAcessFile nesnesi oluştururken seçebileceğimiz iki mod var.Bunlar “r” veya “rw”.”r” […]

Serialization & Deserialization

Bir nesnenin dosyaya yazılabilmesi için serializable olması gerekir,bunun için de ait olduğu sınıfın java.io.Serializable interface’ni implement etmesi gerekir. Serializable bir sınıfta non-serializable nesneler olabilir,JVM’nin bu nesneleri görmezden gelmesi için transient anahtar kelimesini kullanılır,aksi halde NotSerializableException hatası alınır.Ayrıca static yapılar sınıfa ait olmağı için serializable bir sınıfın içinde olsalar bile serializable değildirler. public class C implements java.io.Serializable { […]

Object I/O

ObjectInputStream/ObjectOutputStream sınıfları serializable nesneleri okuma/yazma’da kullanılır. DataInputStream/DataOutputStream sınıfları I/O işlemlerini primitive tip ve Stringler için yaparken,ObjectInputStream/ObjectOutputStream sınıfları ek olarak nesneler için de yapar.ObjectInputStream/ObjectOutputStream sınıfları DataInputStream/DataOutputStream sınıfındaki tüm metodları içerir.   ObjectInputStream sınıfı InputStream sınıfından kalıtılmıştır(extends) ve ObjectInput ve  ObjectStreamConstants interfacelerini implement eder.Aynı şekilde ObjectOutputStream sınıfı OutputStream sınıfından kalıtılmıştır ve ObjectOutput ve ObjectStreamConstants interfecalerini uygular. import java.io.*; public class […]