sohbet odaları

Java ile ilgili bazı kavramlar

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
Anında Derleme

Java ilk çıktığında bytecode işletme hızı çok iyi değildi. Yerine göre sistemin öz yazılımlarından 5-10 kat yavaş çalışıyordu. Bu nedenle bazı yazılım geliştirme şirketleri JIT yani "Just-in-time compile", "anında derleme" araçları üretmeye başladılar. Yapılan şey byte kodu sanal makinenin kurulu olduğu gerçek sistemin diline anında derleme yaparak dönüştürmesiydi. Bu sayede verimde ciddi artışlar sağlandı. Ama 2000 yılından sonra geliştirilen sanal makinelerde (Hotspot gibi) JIT'in işlevi VM'içinde yer almaya başlamış, işlemci hızı ve bellek miktarının dramatik biçimde artması ile dış JIT yazılımları popülerliğini kaybetmiştir. Bugün halen birkaç ürün (Excelsior JET gibi) pazarda bulunsa da genellikle bu yöndeki ihtiyaç azalmıştır.
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
Java API

Java API, Java yazılımlarında kullanılan yazılım kütüphanelerine genel olarak verilen isimdir. Java API ile disk, grafik, ağ, veri tabanı, güvenlik gibi yüzlerce konuda kullanıcılara erişim imkânı sunulur. Java API J2SDK'nın bir parçasıdır.
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
Atık veri toplayıcı

Atık veri toplama teknolojisi Java'dan önce de var olan ama Java ile adını duyurmuş ve yaygın olarak kullanılmaya başlanmış bir kavramdır. C++, C gibi dillerin en büyük engellerinden birisi dinamik bellek yönetimidir. Yazılımda gösterici (işaretçi; İng., pointer) kullanarak dinamik olarak bellek ayırdıktan sonra o bellek ile işiniz bittiğinde mutlaka ayrılan belleği bellek yöneticiye özel altyordamlar yardımıyla (delete, free vs.) iade etmeniz gerekir. Yoksa bellek sızıntısı (İng., memory Leak) oluşur ve bu bir süre sonra yazılımın ve işletim sisteminin beklenenden farklı davranmasına yol açabilir. Sızıntıların saptanması oldukça güçtür ve bulunması zor hatalara yol açar. Bu nedenle bugünün tüm büyük C ve C++ yazılımları az da olsa bellek sızıntısı içerir (işletim sistemleri dahil).

Atık veri toplayıcı sayesinde Java'da bir nesne oluşturulduktan sonra o nesne ile işiniz bittiğinde hiçbir şey yapmanız gerekmez: sanal makine akıllı bir biçimde kullanılmayan bellek bölümlerini belirli aralıklarla ya da uyarlamalı yöntemlerle otomatik olarak temizler ve sisteme iade eder. Bu işleme çöp toplama (İng., garbage collection) adı verilir. Çöp toplama sistemlerinin yapısı oldukça karmaşıktır ve geçen yıllar içinde büyük gelişmeler kaydedilmiştir. Çöp toplayıcının varlığı Java'da bellek sızıntısı olmayacağı anlamına gelmez, ama bellek sızıntıları daha ender olarak ve farklı şekillerde karşınıza çıkar ve genellikle tedavi edilmesi daha kolaydır.
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
Jar

Jar (İngilizce Java Archive, yani Java Arşivi), aslında bir tür sıkıştırma formatıdır. Jar ile derlenen Java kodları ile oluşan yazılımın paketlenip taşınması kolay bir hale getirilir. Jar dosyaları temelde bytekod blokları içerir. Jar dosyaları genellikle kütüphane oluşturmada ya da uygun biçimde hazırlanırsa işletim sisteminden doğrudan çalıştırılabiliecek bir şekilde kullanılabilir (Executable jar, işletilebilir jar) jar dosyalarının içeriğini sıkışıtırma yazılımları ya da java yazılım geliştirme araçları ile inceleyebilirsiniz. Java 1.5 ile yeni bir tür jar oluşturma metodu da kullanıma girdi. Pack200 adı verilen hiper-compression algoritması ile jar dosyaları daha kucuk boyutlara indirilebiliyor. Ancak bu teknoloji daha çok ağ üzerinden yapılan transferlerde kullanılıyor.
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
AWT ve Swing

AWT, ilk java ile birlikte geliştirilen temel grafik arayuz oluşturma kütüphanesine verilen isimdir. AWT işletim sisteminin doğal grafik yapılarına erişimi sağlar. Ancak Java 2 platformu ile birlikte AWT yetersiz görülmüş ve çok daha geniş ve gelişmiş özelliklere sahip Swing kütüphanesi sisteme eklenmiştir. Özellikle çok platform destekleyen yazılımlarda kullanıcı arayüzü geliştirme aracı olarak swing halen önemini korumaktadır. Swing önceleri işletim sisteminin kullandığı donanım grafik hızlandırma araçlarını kullanmadığından yavaşlığı ile eleştirilere hedef olmuştu. Özellikle Java 1.4 ile Swing, hem genel olarak sanal makinenin hızlanması ve kısmen donanım hızlandırmayı kullanması ile bu kötü şöhretinden sıyrılmaya başladı. Java 5 ve 6 ile donanım özellikle OpenGL-DirectX kullanımı ve yeni arayüz gösterim şekli ile Java'nın masaüstü uygulama geliştirmede popülerleşmesi bekleniyor. AWT halen Swing'in bir alt katmanında, temel iki boyutlu grafik işlemlerinde kullanılmaya devam ediyor.
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
SWT

SWT swing'e bir alternatif olarak IBM tarafından geliştirilen bir gösterim sistemidir. Swing'den en büyük farkı çalıştığı işletim sisteminin grafik kütüphanesi ve komutlarını kullanmasıdır. Bu nedenle SWT uygulamaları Swing'e göre çoğu yerde daha hızlı ve işletim sistemindeki diğer uygulamaları andıran bir şekilde çalışmasını sağlar. Swingin Java 1.5 ile performans açığını kapattığı iddia edilse de SWT'nin de artık Java camiasında kabul görmüş bir sistem olduğu açıktır. SWT'nin dezavantajı ise Java'nin bir parçası olmamasıdır. yani SWT uygulamaları SWT kütüphanesi ile birlikte dağıtılmaktadır. Ayrıca SWT farklı işletim sistemlerinde farklı olgunluk ve performansta işlemektedir ve özellikle Windows dışı sistemlerde henüz yeterince olgunlaşamamıştır. En bilinen SWT uygulamaları ünlü java yazılım geliştirme aracı Eclipse ve Bittorrent uygulamasi Azureus'tur.
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
Hot Spot teknolojisi

Sun tarafından geliştirilen Java sanal makinesi HotSpot adı verilen özel bir teknolojiyi içinde barındırır. HotSpot yani sıcak nokta, bir yazılımda sürekli olarak tekrarlanan ve üzerinden geçilen kod bölümlerine verilen bir isimdir. Hotspot sanal makinesi şu anda iki ayrı modda sanal makinenin çalışmasını sağlamaktadır: İstemci (Client) ve Sunucu (Server) modları. İstemci modunda byte kod büyük ölçüde daha başlangıçta JIT ile sistemin öz makine koduna dönüştürülerek işletilir ama çalışma anında daha fazla iyileştirme işlemi gerçekleştirilmez. Bir uygulamanın hızı istemci modunda zaman içinde bu nedenle değişmez. Sunucu modunda ise sanal makine başlangıçta byte kodunu sistemin öz koduna dönüştürmekte acele etmez. Bu nedenle sunucu modu başlangıçta istemci modundan oldukça yavaştır. Yazılım çalışmaya devam ettikçe sanal makine yazılımdaki sıcak noktaları tespit edip byte kodu sadece JIT ile makine koduna dönüştürmekle kalmaz, ayrıca oldukça yoğun bir iyileştirmeye de tabi tutar. Sonuçta sunucu modunda uygulamalar zaman içinde hızlanır, uzun soluklu uygulamaların bu nedenle sunucu modunda işletilmesi önerilir. Mustang Kod adli Java SE 6'da istemci modunda da benzeri bir teknolojinin kullanılması bekleniyor. Dolphin kod adli Java SE 7'de ise bu iki mod arasındaki fark azalacağından sistemin tek modda çalışması bekleniyor.
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
Uygulamacık

Uygulamacık (İng., applet), uzaktaki sistem üzerinden indirilip internet tarayıcı üzerinde çalıştırılabilien java uygulamalarına verilen isimdir. Java'nın son kullanıcılar tarafından tanınması uygulamacık sayesinde olmuştur dersek yanlış olmaz. Uygulamacıklar sisteme zarar veremeyecek bir şekilde tasarlanmıştır ve bugün özellikle oyun sitelerinde halen yaygın olarak kullanılmaktadır. İçerisinde uygulamacık olan bir sayfayı açmaya çalıştığınızda tarayıcınız otomatik olarak java sanal makinesini çalıştırıp ekranın uygulamacığa ayrılan bölümünde uygulamanın çalışmasını sağlar.
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
WebStart

Webstart teknolojisi uygulama kurulum, güncelleme ve silme dertlerine deva olmak üzere tasarlanmış bir sistemdir. Özellikle Java 1.5 ile daha yaygın kullanılmaya başlayacağı tahmin edilen webstart teknolojisi kısaca yazılımların uzaktan yerel sisteme güvenli olarak kurulmasını ve korumalı bir alanda çalıştırılmasını sağlar. Appletlerin bir sonraki adımı olarak görülebilir. Bir webstart uygulamasını kurmak için internet üzerindeki özel bir bağlantıya tıklamak yeterlidir. Sistem otomatik olarak webstart sistemini çalıştırıp yazılımı java cep belleğine indirir. istenirse masaüstüne kısayol koymasını da sağlar. Daha sonra sistem çevrim-içi (on-line) ya da çevrim-dışı (off-line) olarak çalıştırılabilir, ve uzaktaki yazılım güncellendiğinde otomatik olarak -istenirse- yerel makinedeki yazılımın da güncelenmesi sağlanabilir. Kullanıcının özel olarak izin vermesi halinde uygulama yerel sisteme erişim hakkı kazanabilir. Aksi takdirde webstart uygulamaları sisteme yazma işlemi gerçekleştiremezler (yani virüs ve zararlı yazılım tehlikesini son derece aza indirger.)
 

aRMiNa

Elmas Üye
Katılım
10 Nisan 2011
Mesajlar
43,151
Puanları
38
Yaş
39
Tepkime puanı
9
Java Yazımı (Sözdizimi)

Sınıf temelli nesneye yönelik bir dil olan Java, yazım olarak C++ ile benzerlikler arz eder. Java'nın yanında C#, Perl, JavaScript gibi diller de aynı dil ailesine aittir. "{}" Süslü parantezler içerisindeki bloklar, ++ arttırma ve -- azaltma işleçleri bu dilin belirgin özelliklerindendir.
 

Şuanda Bu Konuyu Görüntüleyenler (Kayıtlı: 0, Misafir: 1)

Üst