Java’ya Genel Bakış

Java uygulamaları, C++ diliyle geliştirilmiş bir program olan JVM (Java Virtual Machine) tarafından yorumlanır. Bir java programı javac.exe ile derlendikten sonra byte code adı verilen bir ara sürüm oluşturulur. Bu ara sürümü CPU (Central Processing Unit) anlayamaz. Java byte code sadece JVM bünyesinde çalışır. JVM derlenen java programı için CPU olma görevini üstlenmiş olur. Bu özelliğinden dolayı Java platform bağımsızdır ve “Bir kere yaz, her yerde çalıştır.” unvanına sahiptir.

public class main {
     public static void main(String[] args) {
          System.out.println("Hello World");
     }
}

Garbage Collector (GC) (Çöp Toplayıcı) java uygulamasının çalışma süresince çıkan ve kullanılmayan nesneleri temizler. Böylece Memory Management (Bellek Yönetimi) yükü JVM tarafından kontrol edilir. GC genellikle JVM için ayrılan hafıza dolmaya başladığı zaman tetiklenir. Birden fazla JVM geliştiricisi olduğu için GC algoritmaları farklılık gösterebilir.

Java nesne tabanlı bir programla dili olduğu için Java’da her şey nesnedir. Nesnelere erişmek için ise referanslara ihtiyacımız vardır. Örneğin uzaktan kumandalı bir aracımız ve aracı kullanmak için kumandamız var. Bu durumda kumanda bizim referansımızdır. Aracımız da nesnemizdir. Çünkü kumanda aracılığıyla nesnemize erişir ve nesne üzerinde istediklerimizi gerçekleştiririz.

Sınıf ve nesne kavramları birbirinden farklıdır. Sınıflar bizim için kalıptır. Nesneleri ise sınıflardan oluştururuz.

Javada bellek tipleri:

Stack: Ram üzerinde tutulur. Stackta oluşturulacak verinin uzunluğu ve yaşam süresi önceden bilinmelidir. Stack pointerın doğrudan işlemci üzerinde donanım desteği vardır. Stack pointer aşağıya inince yeni bellek alanı ayırır, yukarı çıkınca kullanımda olan bellek alanını serbest bırakır. Stack üzerinden sadece referanslar tutulur. (Uzaktan kumanda)

Heap: Genel amaçlı bellek alanıdır. Stack gibi verilerin uzunluğunun ve yaşam sürelerinin önceden bilinmesine gerek yoktur. “new” anahtar sözcüğü ile heapten bellek ayırmış oluruz. Stackte referansı tutulan objelerin nesneleri heapte tutulur. (Uzaktan kumandalı araç)

Statik Alan: Ram üzerinde tutulur. Bu alandaki veriler programın çalışma süresi boyunca tutulurlar. Tüm nesneler tarafından erişilebilirler. Veriyi statik yapmak için referansının önüne “static” anahtar sözcüğünü kullanmamız yeterlidir. (static int count;)

Sabit Disk: Uygulama sonlandıktan sonra bile varlıklarını sürdürmesini istediğimiz verileri saklamamızı sağlar.

İyi Çalışmalar. 🙂