27.06.2023

2

Beğenme

560

Görüntülenme

Değer ve Referans tipler

Herkese merhaba, Konumuza geçmeden önce Java'daki veri tiplerinden bahsedelim.

Java öncelikle üç çeşit veri tipine barındırır

  • Primiteve
  • Reference
  • Null

Gelin bu veri tiplerine sırasıyla göz atalım.

Primiteve(ilkel) veri tipi

Java primiteve dediğimiz ver tipine ayrıcalık tanır, bu veri tiplerini kullanırken onlara ait nesneler yaratmaksızın kullanabiliriz. Bu bize hem kolaylık hem de zamandan tasarruf sağlar. Belleğin stack dediğimiz alanda tutulur.

Peki primiteve tipleri nelerdir ?

  • Integer(int): -2³¹ ve 2³¹-1 aralığındaki tam sayılar için kullanılır.
  • Byte : Tamsayı türünde -128 ile 127 arasında değerler alır.
  • Short : Tamsayı türünde -32768 ile 32767 arasında değerler alabilir.
  • Long: Tamsayı türünde -2²⁶³ ile 2²⁶³-1 arasında değerler tanımlanabilir.
  • Float: Ondalık sayı türünde 1.5 * -10⁴⁵ ile 3.4 * 10³⁸ arasında değerler alır.
  • Double: Ondalık sayı türünde -1.7*¹⁰³⁰⁸ ile 1.7*¹⁰³⁰⁸ arasında değerler alır.
  • Char: Karakter türünde değerler alır. Tanımlama yapılırken yalnız bir rakam, işaret veya harf kullanılabilir. Yapılan tanımlama işlemleri tek tırnak arasında yapılmalıdır.
  • Boolean: Sadece 2 değer alır. Bu değerler doğru(true) veya yanlıştır(false). Bellekte bir bit yer kaplar. Mantıksal tipler olarak da bilinir.

Reference(referans) Veri Tipi

Referans tiplerin, ilkel tiplerden en büyük farkı yapılan işlemler değişkenin kendisi ile yapılır. Referans veri tiplerinde değişkenlerin adresleri tutulur. Tanımlamak için new anahtar sözcüğü kullanılır. referans tipler belleğin heap alanında tutulurlar.

Peki Reference Veri Tipleri Nelerdir ?

  • Class (Sınıflar)
  • İnterface (Sınıf Arayüzü)
  • Array (diziler)

Null Veri Tipi ?

Herhangi bir veriye sahip olmama durumudur.

Ver tiplerimizi gördüğümüze göre Gelin bunların ayrımından bahsedelim.

Yukarıdaki görsel de baktığımız zaman sayi1 e sayi2 nin atandığını görüyorsunuz. sayi2'nin değeri değiştiği halde sayi1'in değerinin değişmediği sonucu elde ediyoruz bunun sebebi primiteve dediğimiz veri tiplerinin stack dediğimiz alanda tutulmasıdır. Burada her değişen için farklı bellek adresleri tutulur. Ve değişkenler birbirinden bağımsızdır.

Yukarıdaki örneğe baktığımız zaman ise sayilar1 dizisinin 0. indeksinin değiştini görüyoruz bunun nedenini gelin aşağıdaki görselde açıklayalım.

İlk başta dediğimiz gibi stack ve heap adında iki adet bellek türümüz vardı.

Referans tipler(Array, interface, class) new anahtar kelimesine ihtiyaç duyarlar. New kelimesi kullandıktan sonra heap verilerimiz saklanmaya başlanır. değişken isimleri ise şekildeki gibi stack ta verilerinin bellek adreslerini tutarlar. sayilar1= sayilar2 dediğimizde artık sayilar1 de

sayilar2 nin adresini(102) referans tutar. sayilar2[0]=100 dediğimizde 102 nolu bellekte 0. indis 100 olur. Sayilar1 de 102 adresini tuttuğu için onunda 0. elemanı 100 çıkar.

Artık Kullanmadığımız heap 101 adlı alanımız ise Java'nın otomatik çöp toplayıcısı (Garbage Collector) tarafından temizlenir. Bu ilkeden yararlanarak OOP tabanlı işlemler yapabiliriz. bu yazımız bu kadardı bir sonraki makalede görüşmek üzere.

Yorumlar

Kullanıcı yorumlarını görüntüleyebilmek için kayıt olmalısınız!

Salih Atmacalar

Hello! I am a final-year student in the Computer Engineering department at Kastamonu University, named Ben Salih Atmacalar. I have developed projects in the field of web and I want to progress further. I am well-versed in Object-Oriented Programming (OOP) principles and have a keen interest in various technologies.

Konum

Tekirdağ, TR

Eğitim

Computer engineer - Kastamonu Üniversitesi

İş Tecrübesi

Web developer - TNKÜ

© 2021 Patika Dev

facebook
twitter
instagram
youtube
linkedin

Disclaimer: The information /programs / events provided on https://patika.dev and https://risein.com are strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice and do not make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://patika.dev and https://risein.com disclaim any responsibility for financial decisions made by users based on information provided here.