Java, eşzamanlı, sınıf tabanlı, nesne yönelimli ve özel olarak mümkün olduğunca az uygulama bağımlılığı sağlayacak şekilde tasarlanmış, genel amaçlı bir bilgisayar programlama dilidir. Uygulama geliştiricilerin “bir kez yaz, her yerde çalıştır” (WORA) izin vermesi amaçlanmıştır; bu, derlenmiş Java kodunun, yeniden derlemeye gerek olmadan Java’yı destekleyen tüm platformlarda çalışabileceği anlamına gelir.
Örneğin, bir Java programını UNIX’te yazıp derleyebilir ve kaynak kodunda herhangi bir değişiklik yapmadan Microsoft Windows, Macintosh veya UNIX makinesinde çalıştırabilirsiniz. WORA, bir Java programını bytecode adı verilen bir ara dilde derleyerek elde edilir. Bayt kodu formatı platformdan bağımsızdır. Bayt kodunu her platformda çalıştırmak için Java Sanal Makinesi (JVM) adlı bir sanal makine kullanılır.
Java’nın Tarihi
Java aslen James Gosling tarafından Sun Microsystems’ta (o zamandan beri Oracle Corporation tarafından satın alındı) geliştirildi ve 1995’te Sun Microsystems’in Java platformunun temel bir bileşeni olarak piyasaya sürüldü. Dil, sözdiziminin çoğunu C ve C ++ ‘dan alır, ancak her ikisinden de daha düşük seviyeli tesisleri vardır.
Oracle Corporation, 27 Ocak 2010’da Sun Microsystems’ı devraldıktan sonra, Java SE platformunun resmi uygulamasının mevcut sahibidir. Bu uygulama, Java’nın Sun tarafından orijinal uygulamasına dayanmaktadır. Oracle uygulaması Microsoft Windows, Mac OS X, Linux ve Solaris için kullanılabilir.
Oracle uygulaması iki farklı dağıtımda paketlenmiştir:
- Java programlarını çalıştırmak için gerekli olan Java SE platformunun parçalarını içeren ve son kullanıcılara yönelik olan Java Runtime Environment (JRE).
- Yazılım geliştiricilere yönelik olan ve Java derleyicisi, Javadoc, Jar ve bir hata ayıklayıcı gibi geliştirme araçları içeren Java Geliştirme Seti (JDK).
Java Çöp Toplama
Java, nesne yaşam döngüsündeki belleği yönetmek için otomatik bir çöp toplayıcı kullanır. Programcı, nesnelerin ne zaman oluşturulduğunu belirler ve Java çalışma zamanı, nesneler artık kullanılmadığında hafızanın kurtarılmasından sorumludur. Bir nesneye atıfta bulunulmadığında, ulaşılamaz hafıza, çöp toplayıcı tarafından otomatik olarak serbest bırakılabilir.
Bir programcının kodu, artık ihtiyaç duyulmayan bir nesneye, genellikle ihtiyaç duyulmayan nesneler halen kullanılmakta olan kaplarda depolandığında, artık gerekli olmayan bir nesneye referans tutarsa, bellek sızıntısına benzer bir şey olabilir. Var olmayan bir nesne için yöntemler çağrılırsa, “NullPointerException” atılır.
Çöp toplama herhangi bir zamanda olabilir. İdeal olarak, bir program boştayken ortaya çıkar. Yeni bir nesneyi ayırmak için öbek üzerinde yeterli boş bellek yoksa tetiklenmesi garanti edilir; Bu, bir programın geçici olarak durmasına neden olabilir. Java’da açık bellek yönetimi mümkün değil.