Temelde 3 tane referans tip vardır. Bu 3 temel tip kendi altlarında farklı tipler barındırır.
| Tip Adı | Varsayılan Değer |
| Class | null |
| Array | null |
| Interface | null |
Konumuz veri tipleri olduğu için şimdilik sadece ilkel veri tiplerinin referans tiplerdeki karşılıklarına değineceğim.
| İlkel Hali | Referans Hali |
| byte | Byte |
| char | Character |
| short | Short |
| int | İnt |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
| – | Void |
Void (ya da void) bir veri tipi değildir. İlkel veri tiplerinde void yokken referans veri tiplerinde Void adında bir sınıf var.
Veri tiplerinin açıklamasını yukarıda yaptığım için tekrardan hepsi için yeni bir açıklama yapmayacağım. Şimdi her veri tipi için bir örnek yapıp bilgilerimizi pekiştirelim.
[code] public class Main { public static void main(String[] args) { byte byte_1 = 13; Byte byte_2 = new Byte((byte) 27); Byte byte_3 = new Byte(27); // Hatalı ! – char char_1 = ‘c’; Character char_2 = new Character(‘C’); Character char_3 = ‘C’; short short_1 = 17548; Short short_2 = new Short((short) 27846); Short short_3 = new Short(27846); // Hatalı ! – Short short_4 = 31361; int int_1 = 1747843247; Integer int_2 = new Integer(1548765932); Integer int_3 = 235345436; long long_1 = 6245872548753215427L; Long long_2 = new Long(445235683458275477L); Long long_3 = new Long(445235683458275477); // Hatalı ! Long long_4 = 2356278345693476523L; float float_1 = 5.283974F; Float float_2 = new Float(9.1234235345345f); Float float_3 = new Float(2.32423423); Float float_4 = 8.2354287394729384723f; double double_1 = 534.46545D; Double double_2 = new Double(34534534.345345345345D); Double double_3 = 5465756425243.456764445234234234d; boolean boolean_1 = false; Boolean boolean_2 = new Boolean(true); Boolean boolean_3 = true; } } [/code]Gördüğünüz gibi her veri tipinden bir örnek yaptık. Dikkat ettiyseniz eğer referans veri tiplerini oluştururken "new" anahtar kelimesini kullandık. İlkel veri tiplerinin referans tipindeki karşılıkları sınıf olduğu için oluşturulurken eşittir işaretinden sonra “new” yazmamız gerekiyor. Bu konuya sınıflar konusunu işlerken daha sonra değineceğiz (Makaleyi yazdıktan sonra burada link vereceğim).,
Örnekleri verirken bilerek hatalı bazı örnekler de yazdım. Aklınıza “Bazı sınıfları doğrudan değer vererek tanımlarken neden bazılarını tip dönüşümü yaptıktan sonra tanımlayabiliyoruz ?” diye bir soru takılmış olabilir. Hiç bekletmeden hemen cevabını vereyim. Hata mesajında açıkça sebebini söylenmiş aslında. Hata mesajlarında derleyici bize gelen sayının hangi tipte olup olmadığını anlayamadığını söylüyor. Biz herhangi bir tam sayı yazdığımızda derleyici onu otomatik olarak int tipinde algılıyor. int tipinin sınırları byte ve short tipini çok aştığı için bizden dönüştürerek vermemizi istiyor.
Veri tiplerini öğrendiğimize göre bilmemiz gereken bir konu daha çıktı. Tanımladığımız değişkenler bellekte nerede saklanıyor ? İlkel tipler belleğin stack kısmında, referans tipler ise heap kısmında saklanır.
Aklınıza takılan bir soru olursa yorum yazarak veya iletişim kısmından mail yazarak sorularınızı iletebilirsiniz. Gerekli gördüğüm taktirde daha farklı örnekler de ekleyerek makaleyi güncelleyebilirim.



