Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Programlama
> Java

Java Object Oriented Programming temeline dayanan, çok işlevli, step by step işleyen dilin dökümanlarının paylaşım alanı.





Java ile ilgili bazı kavramlar

Java

Yeni Konu aç Cevapla
 
Seçenekler
Alt 19-02-2015 00:26   #1
  • Tasarımcı
  • Üye Bilgileri
Üyelik tarihi
09/2012
Mesajlar
Konular

Teşekkür (Etti): 2629
Teşekkür (Aldı): 4069


Cool Java ile ilgili bazı kavramlar



Java ile ilgili bazı kavramlar

Hot Spot teknolojisi
Java sanal makinesi HotSpot adi verilen ozel bir teknolojiyi icinde barindirir. HotSpot yani sicak nokta , bir yazilimda surekli olarak tekrarlanan ve uzerinden gecilen kod bolumlerine verilen bir isimdir. Java sanal makinesi bir kod calismaya basladiktan sonra sIklikla kullanilan kod bloklarini gozler ve bir sure sonra bu bytecode bloklarinin calisilan sistemdeki gercek islemci komut karsiliklarini bir tur cep bellege yazar ve zaman ilerledikce artik byte kod uzerinden degil dogrudan sistemin oz komutlarini kullanarak yazilimin o bolumlerini isletmeye baslar. Bu sekilde ciddi performans avantaji saglanmistir.

JIT

Java ilk ciktiginda bytecode isletme hizi cok iyi degildi. yerine gore sistemin oz yazilimlarindan 5-10 kat yavas calisiyordu. Bu nedenle bazi yazilim gelistirme sirketleri JIT yani Just-in-time compile, "aninda derleme" araclari uretmeye basladilar. Yapilan sey byte kodu sanal makinenin kurulu oldugu gercek sistemin diline aninda derleme yaparak donusturmesiydi. Bu sayede performansta ciddi artislar saglandi. Ama 2000 yilindan sonra HotSpot teknolojisinin gelismesi ile JIT'in islevi VM'icinde yer almaya baslamis, islemci hizi ve bellek miktarinin dramatik bicimde artmasi ile dis JIT yazilimlari populerligini kaybetmistir. Bugun halen bir kac urun pazarda bulunsa da genellikle bu yondeki ihtiyac yok olmus gibi gozukmektedir.

Java API

JAva API, yava yazilimlarinda kullanilian yazilim kutuphanelerine genel olarak verilen isimdir. Java API ile disk, grafik, ag, veri tabani, guvenlik gibi yuzlerce konuda kullanicilara erisim imkani sunulur. Java API J2SDK'nin bir parcasidir. Cop toplayici (Garbage Collector)

Cop toplayici java'nin en belirgin ozelliklerinden birisidir. C++, C gibi dillerin en buyuk handikaplarindan birisi dinamik bellek yonetimidir. yazilimda isaretci (pointer) kullanarak dinamik olarak bellek ayirdiktan sonra o bellek ile isiniz bittiginde mutlaka ayrilan bellegi bellek yoneticiye ozel metodlar yardimiyla (delete, destructor vs.) iade etmeniz gerekir. Yoksa bellek sizintisi (Memory Leak) olusur ve bu bir sure sonra yazilimin ve isletim sisteminin beklenenden farkli davranmasina yol acar. Bugunun tum buyuk C ve C++ yazilimlari az da olsa bellek sizintisi icerir (isletim sistemleri dahil). sizintilarin tespiti oldukca guctur ve bulunmasi zor hatalara yol acar. Cop toplayici sayesinde Java'da bir nesne olusturulduktan sonra o nesne ile isiniz bittiginde hic bir sey yapmaniz gerekmez. Sanal makine akilli bir bicimde kullanilmayan bellek bolumlerini belirli araliklarla ya da adaptif metodlarla sisteme otomatik olarak temizler ve sisteme iade eder. Bu isleme Cop toplama, ya da garbage collection adi verilir. Cop toplama sistemlerinin yapisi oldukca karmasiktir ve gecen yillar icinde buyuk gelismeler kaydedilmistir. Cop toplayicinin varligi java'da bellk sizintisi olmayacagi anlamina gelmez, ama bellek sizintilari daha ender olarak ve farkli sekillerde karsiniza cikar ve genellikle tedavi edilmesi daha kolaydir. Sun'in cop toplayicisi hakkinda detayli bilgi icin suraya, IBM'inki icin şuraya bakabilirisniz


Jar

Jar, aslinda bir tur sIkistirma formatidir. Jar ile derlenen java kodlari ile olusan yzilimin paketlenip tasinmasi kolay bir hale getirilir. Jar dosyalari temelde bytekod bloklari icerir. Jar dosyalari genellikle kutuphane olusturmada ya da uygun bicimde hazirlanirsa isletim sisteminden dogrudan calistirilabiliecek bir sekilde kullanilabilir (Executable jar, isletilebilir jar) jar dosyalarinin icerigini sIkisitrma yazilimlari ya da java yazilim gelistirme araclari ile inceleyebilirsiniz. Java 1.5 ile yeni bir tur jar olusturma metodu da kullanima girecek. Pack200 adi verilen hiper-compression algoritmasi ile jar dosyalari 8 kata varan oranlarda daha az yer kaplayacak. Bunun ozellikle uzak uygulamalarin kullanimini ciddi bicimde kolaylastirmasi bekleniyor.

AWT ve Swing

AWT, ilk java ile birlikte gelistirilen temel grafik arayuz olusturma kutuphanesine verilen isimdir. Ancak Java 2 platformu ile birlikte AWT'nin yetersiz gorulmus ve cok daha genis ve gelismis ozelliklere sahip Swing kutuhanesi sisteme eklenmistir. Ozellikle cok platform destekleyen yazilimlarda kullanici arayuzu gelistirme araci olarak swing halen onemini korumaktadir. Swing, onceleri isletim sisteminin kullandigi donanim grafik hizlandirma araclarini kullanmadigindan yavasligi ile elestirilere hedef olmustu. Ozellikle Java 1.4 ile Swing, hem genel olarak sanal makinenin hizlanmasi ve kismen donanim hizlandirmayi kullanmasi ile bu kotu sohretinden siyrilmaya basladi. Java 1.5 ile donanim, ozellikle OpenGL kullanimi ve yeni arayuz gosterim sekli ile java'nin masaustu uygulama gelistirmede populerlesmesi bekleniyor. AWT halen swingin bir alt katmaninda, temel 2 boyutlu grafik islemlerinde kullanilmaya devam ediyor.

SWT

SWT swing'e bir alternatif olarak IBM tarafindan gelistirilen bir gosterim sistemidir. Swing'den en buyuk farki calistigi isletim sistminin grafik kutuphanesi ve komutlarini kullanmasidir. Bu nedenle SWT uygulamalari Swing'e gore cogu yerde daha hizli ve isletim sistemindeki diger uygulamalari andiran bir sekilde calismasini saglar. Ancak yapi itibari ile SWT kullanimi Swing kadar efektif olamayabiliyor (ozellikle olay mekanizmasi, tablo ve agac yapilarindaki yavasligi, ayrica linux performansi ile SWT elestirilmistir.) Swingin Java 1.5 ile performans acigini kapatacagi iddia edilse de SWT'nin de artik java camiasinda kabul gormus bir sistem oldugu asikardir. SWT'nin dezavantaji ise java'nin bir parcasi olmamasidir. yani SWT uygulamalari SWT kutuphanesi ile birlikte dagitilmaktadir. En bilinen SWT uygulamasi unlu java yazilim gelistirme araci Eclipse'tir. Bununla birlikte son yillarda Swing ile profesyonel derecede arayuza sahip masaustu yazilimlari da ortaya cikmistir. Sonucta hersey yazilimcinin araci ne kadar efektif kullandigina bakiyor.

Applet

Applet, uzaktaki sistem uzerinden indirilip internet tarayici uzerinde calistirilabilien java uygulamalarina verilen isimdir. Java'nin son kullanicilar tarafindan taninmasi applet sayesinde olmustur dersek yanlis olmaz herhalde. Applet'ler sisteme zarar veremeyecek bir sekilde tasarlanmistir ve bugun ozellikle oyun sitelerinde halen yaygin olarak kullanilmaktadir. Icerisinde applet olan bir sayfayi acmaya calistiginizda tarayiciniz otomatik olarak java sanal makinesini calistirip ekranin applet'e ayrilan bolumunde uygulamanin calismasini saglar.

WebStart

Webstart teknolojisi Windows ve Linux sistemlerinin bas belasi olan uygulama kurulum, guncelleme ve silme dertlerine deva olmak uzere tasarlanmis bir sistemdir. Ozellikle Java 1.5 ile daha yaygin kullanilmaya baslayacagi tahmin edilen webstart teknolojisi kisaca yazilimlarin uzaktan yerel sisteme guvenli olarak kurulmasini ve korumali bir alanda calistirilmasini saglar. Appletlerin bir sonraki adimi olarak gorulebilir. Bir webstart uygulamasini kurmak icin internet uzerindeki ozel bir baglantiya tiklamak yeterli. Sistem otomatik olarak webstart sistemini calistirip yazilimi java cep bellegine indirir. isterseniz masaustune kisayol koymasini da saglar. Daha sonra sistem off-line ya da on-line olsa bile uygulama calistirilabilir, ve uzaktaki yazilim guncellendiginde otomatik olara -istenirse- yerel makinedeki yazilimin da guncelenmesi saglanabilir. Kullanicinin ozel olarak izin vermesi halinde uygulama yerel sisteme erisim hakki kazanabilir. Aksi taktirde webstart uygulamalari sisteme yazma islemi gerceklestiremezler (yani virus ve zararli yazilim tehlikesini son derece aza indirger.)

Java hangi dilde yazildi? Javanin cekirdek kismi yani sanal makinenin C++ ve belki bazi yerlerde dogrudan assembler kullanilarak yazildigini saniyorum. Bu hukmu java bug sayfalarindaki ornek kodlara bakarak verdim. Java kutuphanelerinin buyuk kismi ise java ile yazilmistir.

Java Her yerde kullanilabilir mi? Hayir, java, ozellikle donanim surucusu gelistirme, isletim sistemi seviyesi yazilimlar, bazi ozel grafik yazilimlari, yuksek hizli 3 boyultu grafikli oyunlarda kullanmak icin uygun degildir. JAva 1.5 ve sonraki surumlerde openGL destegi ile 3 boyutlu oyun uygulamalarinda daha fazla kullanilmasi umuluyor.


Neden java?

Bu soruya kisisel olarak cevap verecegim, su nedenleri gosterebilirim
• En onemlisi platform bagimsiz. her hangi bir yerde yazdigim yazilimi tek satir bile degistirmeden tum isletim sistemlerinde ve donanimlarda calistirabiliyorum. Bu ozelligi .Net'i benim icin safdisi ediyor.
• Guvenli kod yazimi. Pointer kullanimi, bellek sizintilari, #ifdef satirlari, karmasik derleme sistemleri, isletim sistemi hatta derleyici bagimli kutuphanelerden bikmis birisi olarak java'yi gunumuzdeki haliyle C, C++'a bin kere tercih ederim.

Kod:
Nesneye yonelik. Bir kere alistiktan ve kavradiktan sonra bir daha terkedemeyeceginiz nesneye yonelik yazilim gelistirmenin guzel bir gerceklemesidir. Bu nedenle kriptik anlasilmaz script dilleri, hem ondan hem bundan diyen C++ gibi hibrit dilleri ve C gibi alt seviye bir iskence aletine karsi java'yi tercih ediyorum
  
Yuksek performans. script dilleri geri dursun.
  
Basitlik: az komut sayisi ve konulara cogunlukla ayni yonden yazilmasi ile ogrenilmesi C++ ve C#'a gore kolay oldugundan tercih ediyorum.
  
Secenek: Birden fazla sanal makine, SDK ve uygulama sunucu gelistirici sayesinde tek gelistiriciye bagimli degilim. Java'nin gelistirilmesi her ne kadar Sun'in denetiminde yapilsa da JCP adi verilen bir organizasyon ile diger sirketler de java'nin gelistirilmesine dogudan katkida bulunmaktadir. Ayrica java'yi karmasik bulanlar daha kolay anlasilabilir BeanShell, Jython, Rubby, Groovy gibi JVM uzerinde calisabilecek script dillerini kullanabilir.
  
Gelistirme ortamlari: Java ile yazilim gelistirebileceginiz ticari ya da bedava ve acik son derece guclu ve cok sayida yazilim gelistirme ortamlari mevcut. Ustelik tum platformlarda.
  
Olgunluk. Java gecen on yilda havanda iyice dovulerek olgun bir hale geldi. Su andacesitli java surumleri bankalar, askeri sistemler hatta uzay araclarinda kullanilmaya uygun olarak gorulmektedir. Kurumsal alandaki uygulamalarin buyuk cogunda JAva tercih edilmektedir. .Net'in bu asamaya gelmesi icin daha kirk firin ekmek yemesi gerekir ve genellikle ciddi bir yatirimcinin zaman kaybina tahammulu yoktur.
  
Acik kod: java ile gerceklestirilen acik kodlu proje ve framework sayisi on binlerle ifade ediliyor. hemen her ticari uygulamanin bir acik kodlu karsiligini bulmaniz mumkun.
  
Destek, Java su anda IBM, Oracle, Sun, Bea gibi dev sirketler tarafindan desteklenmektedir. Bu sirketlerin hic birisi .Net yoluna gideceklerine dair en ufak bir isaret vermemislerdir. O nedenle java'nin gelecegini aydinlik olarak goruyorum.
  
Eger iyi derecede java ve yazilim gelistirme bilirseniz iyi ve ciddi bir is bulma sansiniz diger dillerden daha yuksektir.



___________________________________________

Zaman, can çekişirken,
Akrep yelkovan, arasında; Bir adım öteye gidemezken geceden,
Ay, ışığını çekerken sinesine,Yıldızlar çekilirken kuytu karanlıklara,
Hüzün, bakır bir çaydanlıkta demleniyordu...

 Offline  
 
Alıntı ile Cevapla
Alt 23-02-2015 21:50   #2
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
02/2012
Mesajlar
Konular

Teşekkür (Etti): 291
Teşekkür (Aldı): 1821




Öğrenmesi c# a göre kolay kısmına hiç katılmıyorum. Syntax olarak aşırı benzer %60 olarak aynı kodlarla yazıyorsun. Çoğu fonksiyon isimlerine kadar aynı.

C/C++ a tercih etmek sizin yorumunuz burada c/c++ ı kötüler bir tavırla konuşmuşsunuz dışarıdan öyle algılanıyor, ki c/c++ kullanırken her şey sizin ellerinizdedir tabiri caizse kendinizi hükümdar olarak hissedersiniz.

Her şey bir yana java bir yana gerçi orası ayrı bir mesele.



___________________________________________

Computer Engineer.

Senior Software Engineer.
 Offline  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz.
Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.



         

Powered by vBulletin® Copyright ©2000 - 2019

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı

Google+
Pomeranian Boo
Siber Güvenlik
sosyal medya bayilik paneli

wau