Ondokuz Mayıs Üniversitesinde Hazırladığım Bir Materyaldir.
Java Programlama Dilini Anlatmaz Sadece Bilgi Verir.
Yararlı olması dileği ile
Muhammet ÇAĞATAY
http://muhammetcagatay.com/
Tarihçesine bakıldıktan sonra, Java programlama dilinin temel özellikleri anlatılıyor. Sunum Java'nın yordamsal programlama yaklaşımıyla kullanıldığı örnekler ile bitiyor. Nesne paradigması için diğer sunumlara biraz sabır!
NOT: Sunum içindeki bağlantılara tıklayarak daha ayrıntılı bilgilerin verildiği makalelere ulaşabilirsiniz.
Sporda doping kavramının incelenmesi, doğru değerlendirilmesi alanında eczacının rolü ne olmalıdır. Koruyucu ve önleyici hizmetlerde eczacıların kaçınılmaz önemi vardır.
Tarihçesine bakıldıktan sonra, Java programlama dilinin temel özellikleri anlatılıyor. Sunum Java'nın yordamsal programlama yaklaşımıyla kullanıldığı örnekler ile bitiyor. Nesne paradigması için diğer sunumlara biraz sabır!
NOT: Sunum içindeki bağlantılara tıklayarak daha ayrıntılı bilgilerin verildiği makalelere ulaşabilirsiniz.
Sporda doping kavramının incelenmesi, doğru değerlendirilmesi alanında eczacının rolü ne olmalıdır. Koruyucu ve önleyici hizmetlerde eczacıların kaçınılmaz önemi vardır.
PrimeFaces, JavaServer Faces icin gelistirllen ve dunya capinda populer olan zengin bir arayuz kutuphanesidir. Bu sunumda PrimeFaces Bilesenleri, Mobil, Ajax Push, Tema Destegi gibi modullerin yani sira PrimeFaces ekibinin gelistirdigi yeni jQuery javascript kutuphanesi PrimeUI'da tanitilmaktadir.
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
md5 algoritmasının çalışma prensibi, e ticaret hakkında bilgiler ve veri güvenliği
Yararlı olması dileği ile
Muhammet ÇAĞATAY
http://muhammetcagatay.com/
Android mimarisinin linux çekirdeğine extradan yaptığı bazı değişiklikler anlatıldı ayrıca android de linux un init fonksiyonunun çalışma mantığı ve yaşam döngüsü anlatıldı.
PrimeFaces, JavaServer Faces icin gelistirllen ve dunya capinda populer olan zengin bir arayuz kutuphanesidir. Bu sunumda PrimeFaces Bilesenleri, Mobil, Ajax Push, Tema Destegi gibi modullerin yani sira PrimeFaces ekibinin gelistirdigi yeni jQuery javascript kutuphanesi PrimeUI'da tanitilmaktadir.
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
md5 algoritmasının çalışma prensibi, e ticaret hakkında bilgiler ve veri güvenliği
Yararlı olması dileği ile
Muhammet ÇAĞATAY
http://muhammetcagatay.com/
Android mimarisinin linux çekirdeğine extradan yaptığı bazı değişiklikler anlatıldı ayrıca android de linux un init fonksiyonunun çalışma mantığı ve yaşam döngüsü anlatıldı.
Android işletim sistemine mobil uygulama geliştirirken kullanılacak en temel programlama dili Java'dır. Java ile ilgili genel bilgilere buradan ulaşabilirsiniz.
Android tüm bileşenleriyle son derece geniş bir ekosistemdir. Bu ekosistemin anlatımında aşağıdaki başlıklar temel alınmıştır:
Android’e Giriş 1 eğitiminde, temel Java bilgisine sahip olmanız ve basit Java uygulamalarını bilgisayarınızda çalıştırabilmeniz hedeflenmektedir. Java dünyasıyla ilk kez tanışacaklar için hem dilin temel kavramları hem de uygulamaya yönelik kod örnekleriyle birlikte bir anlatım esas alınmıştır.
Android’e Giriş 2 eğitiminde, Android platformunun detaylarına ve geliştirme ortamına değinilmiştir. Platform özelinde bilgiler, cihazların özellikleri ve Android için geliştirme ortamının kurulumu yer almaktadır.
jQuery ile ASP.NET Uygulamaları Geliştirmeİbrahim ATAY
jQuery ile ASP.NET Uygulamaları Geliştirme Internet Semineri Notları
http://www.ibrahimatay.com/post/2011/03/jquery-ile-asp-net-uygulamalari-gelistirme-internet-semineri-notlari/
JQuery
http://www.ibrahimatay.com/category/jquery/
ASP.Net
http://www.ibrahimatay.com/category/aspnet/
Mevlana Üniversitesi - JSF ve Primefaces UIMimar Aslan
Turkey JUG (Java User Group) Leader,
Turkey JBUG (JBoss User Group) Leader,
Computer Engineer, Senior Java Architect,
Software (Author, Speaker, Trainer)
Mimar Aslan
Android Study Jam - Kotlin ile Temel Android EğitimiMuhammet ÇAĞATAY
Eğitim Videosu :
https://www.youtube.com/watch?v=yxdd3EuxnQA&ab_channel=GoogleDSC%26WTMKarab%C3%BCk
Android Study Jam - Kotlin ile Temel Android Eğitimi
Google DSC Karabük olarak düzenleyecek olduğumuz Android Study Jam etkinliğimizde Muhammet Çağatay Bey eğitmenimiz olacak!
Etkinlikte gerçek zamanlı uygulama yapmak isteyenlerin, etkinlik saatinden önce Android Studio’yu kurması gerekmektedir.
Android Studio ve Emülatör kurulumu için buraya tıklayabilirsiniz.
Program Akışı:
Hoş geldiniz
Muhammet Çağatay Kimdir?
Kotlin Nedir?
Agile ve Scrum Metotları
Temiz Kod (Clean Code)
Uygulama
Etkinlik Tarihi: 20 Aralık 2020 Pazar 17.00
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAYMuhammet ÇAĞATAY
METİNDEN KONUŞMA SENTEZLEME (MKS) NEDİR?
Metinden Konuşma Sentezleme; bilgisayar tarafından yazılı bir metnin ses sinyallerine dönüştürülme işlemidir. Günümüzde MKS uygulamaları çoklu ortam araçlarında kullanıcı ile olan etkileşimin artırılması için kullanılmaktadır. Görme engelliler başta olmak üzere belirli kitleler için geliştirilen bu sistemler sabit veya taşınabilir birçok cihaz üzerinde kullanılabilen bir teknolojidir ve İngilizcesi Text to Speech (TTS) olarak adlandırılır.
Bir MKS sistemi başlıca iki bölümden oluşur. Bunlar metin işleme ve konuşma sentezleme bölümleridir. Metin işleme bölümü girdi metni ayrıştırarak konuşma sentezleme bölümüne hazırlamakla sorumludur. İdeal bir sistemde metin işleme bölümü oldukça karmaşık olabilir. Çünkü her metni doğru bir şekilde işleyebilmek ve doğru sonuç üretebilmek oldukça zor bir süreçtir.
Metin işleme bölümünün esas amacı girdi metni konuşma sentezleme bölümü tarafından işlenebilecek doğru alt bölümlere ayırabilmektir. Doğru alt parçalar konuşma sentezleme bölümünde kullanılan sentezleme tekniğine göre değişebilir. Örneğin hece tabanlı olarak hazırlanmış eklemeli yöntemlerde metin işleme bölümü girilen metni hecelere, difon tabanlı hazırlanan sistemlerde ise metinleri difonlara ayırmalıdır. Metin işleme bölümünün diğer görevleri ise doğru tonlamaya karar verebilme, kısaltmaları çevirebilme ve sayıları okunabilecek birimlere çevirebilmektir.
Konuşma sentezleme bölümü çıkış verisini yani son konuşmayı sentezlemeden korumludur. Kural tabanlı ve birleştirilmiş sentez olmak üzere konuşma sentezleme tekniğinin iki popüler çeşidi vardır. Kullanılan sentezleme tekniğinin çeşidine göre sistem için bazı önişlemlerde yapılmalıdır. Örneğin birleştirilmiş sentezleme yöntemi kullanılacaksa ses veri tabanının hazırlanması ve kaydedilen seslerin düzenlenmesi gibi işlemler önceden yapılmalıdır.
Bu basamaklar sonuçlandırıldığında doğru ve kararlı bir şekilde çalıştırılabilen bir MKS
sistemi oluşturulabilir. Bu şekilde oluşturulabilecek bir MKS sistemi oldukça geniş bir kullanım alanına sahip olacaktır. Hali hazırda oluşturulmuş MKS sistemlerinin günümüzde çok yaygın kullanım alanları bulunmaktadır. Bunlardan bir kaçı sesli yanıt sistemleri, bilgi ve uyarı sistemleri, görme engelli kişiler için sözlü iletişim aracı vb. gibidir. Sonuç olarak bu şekilde oluşturulan bir sistemle dijital ortamda bulunan bütün yazıların sesli olarak okutulması mümkün olmaktadır.
5e modeli öğrencinin sahip olduğu bilgi ve becerileri aktif bir şekilde kullanmasını sağlayan, öğrencinin araştırma merakını arttıran ve öğrencinin beklentilerine cevap veren bir öğretim modelidir. Kpss soruları içinde fazla yer almasa da şıklarda bolca karşımıza çıktığı için bilmemiz gereken bir konudur.
5e modeli süreci adından da anlaşılacağı üzere 5 aşamadan oluşmaktadır.
1) Giriş: Ön öğrenmelerin değerlendirilmesi, merak uyandırılması, hazırbulunuşluğun ortaya çıkartılması gibi etkinlikleri kapsamaktadır. Öğretmen kavramları, ilkeleri kesinlikle hazır olarak vermez. Sorduğu sorularla öğrencilere hatırlatmaya çalışır.
5e modeli giriş bölümünde ön bilgilere erişim sağlanır, merak uyandırılır, öğrencilere ”neden” sorusu sordurulur, öğrenciler motive edilir ve öğrencilerin ilgisi çekilir.
2) Keşfetme: Öğrenci bir problem durumuyla karşılaştırılır ve bu problemi çözmesi beklenir.
Öğrencinin en aktif olduğu basamaktır.
5e modeli keşfetme bölümünde, öğrencilerle laboratuvar etkinlikleri yapılır ve birlikte çalışılır, öğrenciler kendi kararlarını kendileri verir ve bir problem durumunda soru ve fikir üretir.
3) Açıklama: Öğrenci problemin nasıl çözüldüğünü, problemi nasıl formüle ettiğini, problemin çözüm yollarının neler olduğunu ve nasıl transfer ettiğini ortaya koyar. Öğrenci bunu tek başına gerçekleştiremeyebilir. Bu yüzden öğretmen ipuçları verir.
5e modeli açıklama bölümünde, öğrencilere ulaştıkları yargıları hakkında sorular sorulur, sınıfta tartışma yürütülür, daha fazla soru üretilir ve yeni tanımlar araştırılır.
4) Derinleştirme: Öğrenci yeni bir problem durumuyla karşılaştırılır. Bu problem çözülürken kavramlara ilişkin alt kavramlara dair yeni formüller elde eder.
5e modeli derinleştirme bölümünde, öğrencilerin kavramsal anlama yetenekleri geliştirilir, öğrencilerin yeni deneyimlerle daha derinlemesine ve geniş anlama yeteneği geliştirilir.
5) Değerlendirme: Kpss öğretim yöntem ve teknikleri dersine ait 5e modelinin son süreci olan değerlendirme sürecini öğrenci ve öğretmen birlikte gerçekleştirir. Süreç yönelimli bir değerlendirme vardır.
Osmangazi Üniversitesinde Ders Notu olarak kullanılan temel bir C++ kilavuzudur. Hedef kitlesi matematikçiler olup, C++ diline yeni başlayan mühendislere de yol gösterebilir.
Anlatımda kavramlar üzerine çok durulmamıştır, adından anlaşılacağı üzere en sade hali ile verilmeye çalışılmıştır.
Yararlı olması dileği ile
Muhammet ÇAĞATAY
http://muhammetcagatay.com/
Osmangazi Üniversitesinde Ders Notu olarak kullanılan temel bir matlab kilavuzudur. Hedef kitlesi matematikçiler olup, matlaba yeni başlayan mühendislere de yol gösterebilir.
Anlatımda kavramlar üzerine çok durulmamıştır, adından anlaşılacağı üzere en sade hali ile verilmeye çalışılmıştır.
Yararlı olması dileği ile
Muhammet ÇAĞATAY
http://muhammetcagatay.com/
2. II
ÖZET
Bu çalıĢmada, günümüzün en popüler programlama dili olarak
kabul edilen java dilinin ortaya çıkıĢından günümüzdeki halini alıncaya
kadar izlediği yolu en iyi Ģekilde incelemeye çalıĢırken, java dilinin
yapısını, java dilini diğer dillerden ayıran özelliği de en iyi Ģekilde
anlatmaya çalıĢtık.
Java dilini anlatırken, tek kaynağa bağlı kalmayıp, birçok internet
sitesi ve java adına yazılmıĢ olan rapor ve tezleri inceleyerek, en
doğruyu bilgiyi en iyi Ģekilde aktarmaya çalıĢtık. Faydalı bir çalıĢma
olması dileği ile…
MUHAMMET ÇAĞATAY
Anahtar kelimeler: Programlama Dili Olarak Java, Java Dilini Tanıyalım,
Nedir Bu Java? , Java Sanal Makinesi Nedir?
DANIŞMAN
Yrd. Doç. Dr. MUSTAFA ÇAĞATAY TUFAN
SAMSUN – 2011
4. IV
Resim 1.1. Sun Microsystems firmasının logosu
1
Resim 1.2. James Gosling 1
Resim 1.3. Java Logosu 2
Resim 2.1. java ve c++ dillerinin derleme akıĢ diyagramları 3
SEMBOLLER DİZİNİ
AMD Advenced Micro Devices (Bir İşlemci Markası)
GB Garbage Collector (Çöp Toplayıcı)
JDK Java Development Kit
JIT Just Ġn Time (Olay Anı)
JNI Java Yerel Arayüzü (Java Native Interface)
JVM Java Sanal Makinesi (Java Virtual Machine)
MAC Macintosh (Apple Şirketinin Ürettiği Bir Bilgisayar)
OS Operating Ssytem (İşletim Sistemi)
SM Sun Microsystem (Java Dilini Geliştiren Firma)
5. 1
1. NEDİR BU JAVA?
1.1. Java Nedir?
Java Sun Microsystems firması tarafından geliĢtirilmiĢ olan üst seviye bir
programlama dilidir. Ġlk adı OAK olan Java aslında bilgisayarlar için değil, set üstü araçlar
(WEB TV gibi) veya avuç içi cihazlar (PDA'ler gibi) için hazırlanmıĢtı. OAK 1995 yılında
baĢarısız olunca, Sun firması bu programlama dilinin adını Java olarak değiĢtirdi ve Internet
üzerinde popüler bir programlama dili haline getirmeye çalıĢtı.
Resim 1.1. Sun Microsystems firmasının logosu
Java, C++ dili gibi nesne yönelimli bir programlama dilidir ancak bu dile göre çok
daha sadeleĢtirilmiĢtir. Soyadı.java olan Java programlarının çalıĢtırılabilir hale getirildiğinde
soyadları.class olur ve Java desteği olan herhangi bir web tarayıcısı ile çalıĢtırılabilirler. Java
programları çalıĢtırıldığı iĢletim sisteminden hemen hemen bağımsızdır, çünkü bu programlar
için hemen hemen tüm platformlarda (UNIX, Macintosh OS ve Windows gibi) gerekli destek
verilmektedir.
1.2. Java Dilinin Ortaya Çıkışı
Resim 1.2. James Gosling
Adı “Green Project” olarak bilinen bir projenin içerisinde yer alan James Gosling,
proje için en uygun dilin belirlenmesi isini üstlenmiĢti. 1984'de Sun Microsystems'de göreve
baĢlayan Gosling, çalıĢmalarına C++ ile baĢlamıĢ ancak bu dilin proje için yeterli olmayacağı
düĢüncesiyle, yine bu dilin bir türevi olan ve ilk adı “Oak” olan yeni bir dili geliĢtirmeye
baĢlamıĢtı. Daha sonra yerel bir kefeden çağrıĢım yaparak bu dilin adını Java olarak
değiĢtirmiĢtir. O günlerden bu güne Java halen geliĢtirilmekte olan ve günümüzde popülaritesi
tartıĢılmaz olan bir dil olarak kullanılmaktadır.
6. 2
1.3. Niçin Java İsmi?
Neden Java olmasın? Java ismi Web de insanların aklında hemen yerleĢebilecek bir
kelimenin arandığı beyin fırtınasında ortaya çıkmıĢtır. Ġlk olarak HotJava ve Java isimleri akla
gelmiĢtir. Daha Java ile ilgili her programa kahve isimleri verilmiĢtir. Bu yüzden ki Java’nın
sembolü kahvedir.
Resim 1.3. Java Logosu
2. JAVA NASIL ÇALIŞIR?
Bir Java yazılımı su şekilde geliştirilir:
1. Programcı Java kodunu yazar.
2. Bu kod bir Java derleyicisi ile derlenir. Sonuçta byte-kod adi verilen bir tur
makine kodu ortaya çıkar. Platform bağımsızlığını sağlayan Ģey byte-code'dir.
Çünkü bir kere byte-code oluĢtuktan sonra yazılım tüm iĢletim sistemlerinde
çalıĢabilir.
3. Bu byte kod Java virtual Machine (Java Sanal Makinesi) tarafından adım adım
iĢletilir.
AĢağıda Java ve C++ kodunun geçirdiği aĢamalar gösterilmiĢtir.
7. 3
Resim 2.1. java ve c++ dillerinin derleme akıĢ diyagramları
2.1 Java Kodunun Yazılması.
Java nesneye yönelik bir dil olduğundan tüm yazılım sınıflar ve nesneler üzerinden
yürütülür. Sınıflar uygulamadaki nesnelerin tanımlandığı kod parçalarıdır. Java'da her bir sınıf
bir dosya içerisinde yer alır. Dosyaların uzantıları Java seklindedir. Dosya adı ise içinde
tanımlanan sınıf ile aynidir. Örneğin; Benim Sınıf cagatay gibi.
2.2 Java Kodunun Derlenmesi
Derleyici kısaca herhangi bir editör ile yazılan Java kaynak kodlarını (yani Java uzantılı
sınıfların yer aldığı dosyaları) Java sanal makinesinin çalıĢtırabileceği bir tür makine dili
(assembler) olan Byte-code'a dönüĢtürür. Bu dönüĢtürülen byte kod ise ( class ) dosyaları
içerisinde saklanır. Java kodunu derlemek için bir Java derleyicisine ve Java kütüphanelerine
ihtiyacınız var. ġu anda iki derleyici yaygın olarak kullanılmaktadır. Bir tanesi Sun'in SDK'si
ile birlikte gelen Java diğeri ise IBM'in açık kodlu derleyicisi jikes.
Jikes, çok hızlı derlemesi ile ünlü olsa da en son Java yazılımlarını derlemek için
javac'ye ihtiyaç duyulabilir. Ayrıca Linux altında derleme yapmak için gnu lisansı ile
geliĢtirilen açık kodlu Gnuj da kullanılabilir. Derleyici ve kütüphanelerin bulunduğu (Java
API) uygulamaya "J2SE SDK" adi verilmiĢtir.
8. 4
2.3 Çalıştırma ve Java Sanal Makinesi
Sanal makine, donanımdan bağımsız yazılım geliĢtirme ihtiyacına cevap verme amacıyla
geliĢtirilen bir teknolojidir. Java’nın temel felsefesi olan "bir kere yaz, her yerde çalıĢtır" sanal
makine sayesinde var olmuĢtur. Sanal makineyi bir yönden bir tür hayali bir mikroiĢlemci gibi
düĢünebiliriz.
Gerçek tüm mikroiĢlemciler (Intel Pentium, AMD Athlon, Sun Sparc vs.) belirli bir
grup komutu iĢlemek üzere tasarlanmıĢtır. Bu komutlara iĢlemcinin komut kümesi adı verilir.
Örneğin x86 komut kümesi gibi. Tüm yazılımlar çalıĢabilmek için önce bu komut kümesine
dönüĢtürülür, daha sonra iĢlemci bu komutları sıra ile gerçek iĢlemci komutlarına dönüĢtürüp
iĢletir. Java Sanal makinesi de Byte-kod komut kümesini tıpkı iĢlemci gibi adım adım iĢletir.
Java’nın interpreted bir dil olarak adlandırılmasının nedeni budur. Byte-kod ilkel iĢlemlerin
yanında (ilkel iĢlemler, mikroiĢlemci seviyesi komutlardır, aritmetik iĢlemler, bit iĢlemleri,
bellek ve yığın iĢlemleri vs.) sanal makinenin üzerinde çalıĢtığı iĢletim sistemine yönelik
iĢlemler de barındırır. Bu sayede Java Virtual Machine yazıcı, seri port, grafik, dosya servisi,
ağ bağlantısı gibi yazılım ve donanım servislerine eriĢim yapabilir.
Java’nın doğrudan byte code çalıĢtırması performansının düĢük olabileceği izlenimini
verebilir. Ancak, JVM tasarımı geçen on yılda çok değiĢmiĢ ve geliĢtirilmiĢtir. ġu anda
Java’nın performansı çoğu alanda C++'in performansına yakin bir seviyededir ve iĢlemci hızı
ve bellek miktarının her geçen yıl katlanarak artması ile performans konusu çoğu uygulamada
artık ikinci planda kalmıĢtır.
3. JAVA İLE İLGİLİ YAZILARDA KARŞILAŞABİLECEĞİNİZ
BAZI KAVRAMLAR
3.1 Hot Spot teknolojisi
Java sanal makinesi Hot Spot adı verilen özel bir teknolojiyi içinde barındırır. Hot
Spot yani sıcak nokta, bir yazılımda sürekli olarak tekrarlanan ve üzerinden geçilen kod
bölümlerine verilen bir isimdir. Java sanal makinesi bir kod çalıĢmaya baĢladıktan sonra
sıklıkla kullanılan kod bloklarını gözler. Bir süre sonra bu byte code bloklarının çalıĢılan
sistemdeki gerçek iĢlemci komut karĢılıklarını bir tür cep belleğe yazar ve zaman ilerledikçe
artık byte kod üzerinden değil doğrudan sistemin öz komutlarını kullanarak yazılımın o
bölümlerini isletmeye baslar. Bu Ģekilde ciddi performans avantajı sağlanmıĢtır.
3.2 JIT
Java ilk çıktığında byte code 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 com pile, "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
9. 5
dönüĢtürmesiydi. Bu sayede performansta ciddi artıĢlar sağlandı. Ama 2000 yılından sonra
Hot Spot teknolojisinin geliĢmesi ile 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 bir kaç ürün pazarda bulunsa da genellikle bu yöndeki ihtiyaç yok
olmuĢ gibi gözükmektedir.
3.3 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'nin bir parçasıdır.
3.4 Çöp toplayıcı (Garbage Collector)
Çöp toplayıcı Java’nın en belirgin özelliklerinden birisidir. C++, C gibi dillerin en
büyük handikaplarından birisi dinamik bellek yönetimidir. Yazılımda iĢaretçi (pointer)
kullanarak dinamik olarak bellek ayırdıktan sonra o bellek ile isiniz bittiğinde mutlaka ayrılan
belleği bellek yöneticiye özel metotlar yardımıyla (delete, destructor vs.) iade etmeniz gerekir.
Yoksa bellek sızıntısı (Memory Leak) oluĢur ve bu bir sure sonra yazılımın ve iĢletim
sisteminin beklenenden farklı davranmasına yol acar. 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 dâhil). Sızıntıların tespiti
oldukça güçtür ve bulunması zor hatalara yol açar. Çöp toplayıcı sayesinde Java'da bir nesne
oluĢturulduktan sonra o nesne ile isiniz bittiğinde hiç bir Ģey yapmanız gerekmez. Sanal
makine akilli bir biçimde kullanılmayan bellek bölümlerini belirli aralıklarla ya da adaptif
metotlarla sisteme otomatik olarak temizler ve sisteme iade eder. Bu iĢleme Çöp toplama, ya
da Garbage collection adi 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
3.5 Jar
Jar, 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 bicimde hazırlanırsa
iĢletim sisteminden doğrudan çalıĢtırılabilecek bir Ģekilde kullanılabilir (Executable Jar,
isletilebilir 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
girecek. Pack200 adı verilen hiper-compression algoritması ile jar dosyaları 8 kata varan
oranlarda daha az yer kaplayacak. Bunun özellikle uzak uygulamaların kullanımını ciddi
biçimde kolaylaĢtırması bekleniyor.
3.6 AWT ve Swing
AWT, ilk Java ile birlikte geliĢtirilen temel grafik ara yüz oluĢturma kütüphanesine
verilen isimdir. Ancak Java 2 platformu ile birlikte AWT'nin 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ı ara yü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
10. 6
Java 1.4 ile Swing, hem genel olarak sanal makinenin hızlanması ve kimsen donanım
hızlandırmayı kullanması ile bu kötü Ģöhretinden sıyrılmaya baĢladı. Java 1.5 ile donanım,
özellikle OpenGL kullanımı ve yeni ara yüz gösterim Ģekli ile Java’nın masaüstü uygulama
geliĢtirmede popülerleĢmesi bekleniyor. AWT halen swingin bir alt katmanında, temel 2
boyutlu grafik iĢlemlerinde kullanılmaya devam ediyor.
3.7 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. Ancak yapı itibari ile
SWT kullanımı Swing kadar efektif olamayabiliyor (özellikle olay mekanizması, tablo ve
ağaç yapılarındaki yavaĢlığı, ayrıca Linux performansı ile SWT eleĢtirilmiĢtir.) Swing in Java
1.5 ile performans açığını kapatacağı iddia edilse de SWT'nin de artik Java camiasında kabul
görmüĢ bir sistem olduğu aĢikardır. SWT'nin dezavantajı ise Java’nın bir parçası olmamasıdır.
yani SWT uygulamaları SWT kütüphanesi ile birlikte dağıtılmaktadır. En bilinen SWT
uygulaması ünlü Java yazılım geliĢtirme aracı Eclipse' tir. Bununla birlikte son yıllarda Swing
ile profesyonel derecede ara yüze sahip masaüstü yazılımları da ortaya çıkmıĢtır. Sonuçta her
Ģey yazılımcının aracı ne kadar efektif kullandığına bakıyor.
3.8 Applet
Applet, uzaktaki sistem üzerinden indirilip internet tarayıcı üzerinde çalıĢtırılabilinen
Java uygulamalarına verilen isimdir. Java’nın son kullanıcılar tarafından tanınması applet
sayesinde olmuĢtur dersek yanlıĢ olmaz herhalde. Applet'ler sisteme zarar veremeyecek bir
Ģekilde tasarlanmıĢtır ve bugün özellikle oyun sitelerinde halen yaygın olarak
kullanılmaktadır. Ġçerisinde Applet olan bir sayfayı açmaya çalıĢtığınızda tarayıcınız otomatik
olarak Java sanal makinesini çalıĢtırıp ekranın applet'e ayrılan bölümünde uygulamanın
çalıĢmasını sağlar.
4. JAVA PROGRAMLAMA DİLİNİN ÖZELLİKLERİ
4.1 Java Her ortamda çalışabilir
Java teknolojisinin en önemli özelliği her ortamda, en küçük bilgisayarlardan süper
bilgisayarlara kadar, çalıĢabilmesidir. Java teknolojisi bileĢenleri nasıl bir bilgisayar, telefon,
televizyon veya iĢletim sistemi olduğuna bakmaksızın Java platformunu destekleyen her türlü
ortamda çalıĢır. Java teknolojisinin yaratılıĢ amacı daha önce hiç kolay olmadığı kadar kolay
bir Ģekilde bilgisayar ve diğer iletiĢim araçları arasında etkileĢim kurmaktır. Java ilk ortaya
çıktığında asıl amacı elektronik ev aletlerinin birbirleriyle iletiĢim kurabilmesini sağlamaktır.
Java hızlı bir Ģekilde geliĢerek bugün ki halini almıĢtır.
11. 7
4.2 Java Basittir
Java ile program hazırlamak oldukça kolay ve zevklidir. Daha önce bir programlama
dili ile çalıĢmıĢ veya en az bir nesneye programlama dili ile çalıĢmak yeterlidir. Ayrıca Java
programlama dilinin C++ programlama diline olan benzerliği sebebiyle C++ programlama
dili çalıĢmıĢ olanlar için çok zevkli yeni bir deneyim olacaktır.
4.2 Java Nesne Tabanlıdır
Java nesne yönelimli bir programlama dilidir. Bir programlama dilinin nesne yönelimli
olması, dilin kendi özelliği itibariyle aynı amaca yönelik görevlerin sınıf (class) denilen
yapılar içerisinde toplanmasına ve bu prensibe göre kullanımına izin vermesidir. Nesne
yönelimli programcılığın birçok avantajı vardır. Bunlardan en önemlisi, bir projede
birbirinden bağımsız olarak tasarlanan sınıf nesneleri kullanılmasıdır. Böylece projeye belli
görevlerin eklenmesi veya çıkarılması projenin bütününe dokunmadan mümkün hale
gelebilmektedir.
4.3 Java Güvenlidir
Java programlama dili hazırlanan programlar bugün güveliğin çok önemli üst düzey
devlet kuruluĢlarında ve NASA da kullanılmaktadır. Java ile hazırlanan programlara virüslere
ve hacker’lara karĢı geliĢtirilen en güvenli programlar olarak düĢünülmektedir.
4.4 Java Yüksek Performanslıdır
Java ile hazırlanan programlar hızlı çalıĢmaları ve bilgisayara az yük getirmeleri
nedeniyle Ġnternet ve intranet uygulamalarında tercih edilmektedir.
12. 8
6. KAYNAKLAR
1. Academytech_java_tr.pdf modülü
2. Zafer DĠNÇ “Java programlama dilinde veri tabanına bağlantı için
JDBODBC ara yüzü” isimli tezi
3. http://www.bilgiustam.com/java-nedir-nasil-calisir//print
4. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#Java_programlar.
C4.B1_nas.C4.B1l_.C3.A7al.C4.B1.C5.9Ft.C4.B1r.C4.B1l.C4.B1r.3F
5. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#Java_API
6. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#At.C4.B1k_veri_to
play.C4.B1c.C4.B1
7. http://www.1923turk.com/forumdisplay.php?f=30
8. http://www.javaturk.org/?cat=10
9. http://www.csharpnedir.com/
10.http://www.bilisimterimleri.com/bilgisayar_bilgisi/bolum/1.html
11.http://www.forumalev.net/diger-kodlama-dilleri/8833-java-nedir.html