C#nedir?com
 
YAZAR HAKKINDA
Rıfat Yavuz
Rıfat Yavuz
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
2 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  J#.NET / Java Rıfat Yavuz
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : J#.NET / Java
Yayınlanma Tarihi : 9.12.2003
Okunma Sayısı : 29783
Yorum Sayısı : 6     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
Conda install environment.yml Package 12.12.2019
Turhal Temizer 'in Blogu
Mac OS/X Removing CUDA 12.12.2019
Burak Selim Şenyurt
Ruby Tarafından Redis(Docker Bazlı) Veritabanı ile Konuşmak 12.12.2019
Burak Selim Şenyurt
Bir React Uygulamasında En Ala SQL Veritabanını Kullanmak 12.12.2019
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Java Dili ve J2EE Platformu
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Java her yerde geçen bir konudur, peki gerçekten nedir bu “java” ? Aşağıdaki bölümler, “java”nın nerelerde kullanıldığını, özelliklerini ve bir programlama dili olmasının yanısıra nasıl bir platform oluşturduğundan bahsetmektedir.

Java Programlama Dili Ve Platformu

Java oldukça basit, nesnel programlamaya dayalı, güvenli, dinamik ve yüksek performansa sahip bir programlama dilidir. Java’nın yaratıcıları C++ programlama dilini kendilerine model olarak seçmişler , gerekli görmedikleri özellikleri kaldırarak yeni özellikler ile Java’yı daha güçlü hale getirmişlerdir. C++ nesnel programlamaya dayalı son derece güçlü bir programlama dilidir. Ancak kimi zaman C++ ‘ın bu özellikleri problemler çıkarabilir. Yazılım geliştirme sırasında çıkan problemlerin zaman çok fazla zaman kaybına yol açması nedeniyle Java’da mantıksal hatalara yol açabilecek bir çok özellik daha iyi duruma getirilmiş, diğer programcıların da kodu daha kolay anlamaları için çalışmalar yapılmıştır. Bu çalışmalar yazılımın maliyetini düşürmede son derece önemli rol oynarlar ve bu yönüyle Java C ve C++ dillerinden ayrılır.

 Java’nın Nesnel Programlama Yönü

Java nesnel programlamaya destek verir. Nesnel programlamada heşey bir nesnedir.Bir nesne veriler ve bu veriler üzerinde işlemler uygulayabilecek metodlardan oluşur. Bu metodlar nesne içerisinde korunabilir veya verileri koruyabilir. Nesnel programlamada kalıtımsallık da son derece önemli bir yer tutar. Kalıtımsallık sayesinde işinize yarayan başka bir metodun özelliklerini yeni yarattığınız metoda atayabilir ve üzerinde değişiklik yaparak hem baştan sona tekrar yazmak zorunda kalmaz hemde zamandan kazanabilirsiniz. Kalıtımın bir başka yararı ise anlaşılabilir olmasıdır. Nesnelerinizi sınıflarına göre düzenli bir şekilde ayırdığınızda , dokumantasyonu ve ilerki çalışmaların daha kolay yürümesini sağlarsınız.

 Java’nın Özellikleri :

1. “ struct, union ve pointer” data tipleri desteklenmez.

2. “typedef ya da #define” desteklenmez.

3. “multiple inheritance” desteklenmez.

4. “memory allocation” desteklenmez. Memory ayırma ya da boşaltmak için garbage collection denilen otomatik bir sistem bulunur.

5. Komut satırı argumanları C veya C++ ‘a göre Java daha farklı algılar.

6. “operator overloading” desteklenmez.

7. Stringler C ve C++ ‘a göre farklı değerlendirilirler ve Stringler için java.lang package içerisinde String class ‘ı bulunur.

Bir çok programlama dilinde, kaynak kod önce derlenir ve daha sonra çalıştırılır. Java derlenmesi ve çalıştırılması bakımından biraz farklıdır.

Derleme sırasında java kaynak kodu, bytecode’lara çevrilir. Platformdan (işletim sisteminden) bağımsız olarak bytecode’lar, java interpreter’i tarafından bilgisayarda java platformu üzerinde çalıştırılırlar. Derleme sadece bir kez gerçekleştirilir , ancak java programı her çalıştırıldığında java interpreter’i her seferinde devreye girer.



Java bytecode’larını Java Virtual Machine’in (Java VM) anlayabileceği kodlar olarak düşünebilirsiniz. Java VM her işletim sisteminde bulunur ve bytecode’ları anlayarak sistem üzerinde oluşturduğu Java platformu sayesinde java programının ya da java applet’ının çalışmasını sağlar.  Bu sayede hangi işletim sisteminde yazılmış ve derlenmiş olursa olsun, java programınızı başka işletim sistemleri üzerinde de çalıştırabilirsiniz.

Örneğin, Unix’de derleyerek oluşturduğunuz ,bytecode dosyasını , Windows’da ya da Macintosh bir bilgisayarda çalıştırabilirsiniz. Bu nedenle java bytecode’ları “bir kere yaz, her yerde çalıştır” sloganı ile de anılırlar. Bunun anlamı, sisteminizde Java VM yüklü olduğu sürece, java programlama dili ile yazılmış aynı program Windows 2000 de,Linux’da ya da iMac’da çalışabilir.



Java Platformu    

Bir programın çalıştığı donanım ya da yazılım ortamına platform denir. Windows 95/98, Windows 2000 , Linux, Solaris, MacOS gibi populer kullanılan platformlardan bahsettik. Bir çok platform da işletim sistemi ve donanımın birleşmesi ile oluşturulur. Java platformu, donanım tabanlı platformların üzerinde çalışan ve sadece yazılım platfomu olması yönüyle diğer platformlardan ayrılır.

Java platformunun iki birimi vardır.

·  Java Virtual Machine (Java VM)

·  Java Application Programing Interface (Java API)

 

Java VM java platformunun tabanını oluşturur ve çeşitli donanım tabanlı platformlar üzerine oturtulmuştur.

Java API ise , son derece yararlı özelliklere sahip hazır yapılmış yazılım parçalarından oluşur. Grafik ara birimi (GUI) bunlardan birisidir. Java API iki  grupta toplanır. Birinci grupta ilgili classların kütüphane dosyaları,paketler, ikinci grupta ise ara birimler yer alır.



Figürde Java API’nin ve Java VM’nin donanım üzerinde bir platform oluşturduğu görülür.

Native code, derlendikten sonraki koddur. Derlenen kod belirli bir platformda çalışır. Platformdan bağımsız olmasıyla Java’nın biraz yavaş olabileceği düşünülebilir. Bununla birlikte, akıllı derleyeciler, iyi ayarlanmış interpreterlar, ve just-in-time bytecode derleyeciler performansı biraz daha arttırarak native koddan elde edilen başarıya yakın bir değer yakalayabilir.

JAVA NELER YAPABİLİR ?

Java web’e yeni bir akıcılık getirmiştir. Java programcıları çeşitli medya formatlarını ve veri protokollerini her java uyumlu browserda görünebilir hale getirmişlerdir. Düz html ve multimedya içeren sayfalara, çalıştırışabilir ve işlem yapılabilir içerik eklenmesine olanak sağlanmıştır.

Java programları applet olarak ya da uygulama olarak yazılırlar. Appletları java uyumlu browserlarda görebilirsiniz. Animasyonlar ve interaktif uygulamalar ile internette gezinirken muhtemelen karşılaşmışsınızdır. Ancak java programlama dili sadece akıllı ve eğlenceli appletlar yazmak için değil, aynı zamanda güçlü bir yazılım platformudur. Çeşitli API’leri kullanarak birçok program yazabilirsiniz.

Appletlarından farklı olarak, uygulamalar direk olarak Java platformu üzerinde çalışan programlardır. Server olarak bilinen özel bir çeşit uygulama, network üzerinde hem hizmet verir , hem de diğer client’ları destekler. Örneğin, Web Serverları, Proxy Serverları, Mail Serverları.... Diğer bir özel programda Java Web Serverlarında çalışan, cgi scriptleri gibi interaktif olarak web uygulamaları yaratmaya yarayan servlet’tır.

JavaBeans de Java platformuna bileşen teknolojisini sunar. JavaBeans API ile tekrar kullanılabilen, platformdan bağımsız olarak çalışabilen bileşenler yaratmak mümkündür. Bu bileşenleri applet, uygulama ya da karışık bileşenler olarak birleştirmekde desteklenmektedir.JavaBean componentleri Beans olarak bilinir.

Java 2D API , java programlarınızda 2D grafikler ile çalışma olanağı sunar. Java 2D API ile, her kalınlıkta çizgi çizebilir, şekilleri gradient ya da desen ile doldurabilir, text ya da grafikleri taşıyabilir, döndürebilir, ölçeklendirebilir, kesebilir, üstüste getirebilirsiniz.

 Java Sound Engine, birçok farklı türde ses dosyasını ( AIFF, AU, WAV, MIDI, and RMF dosyaları ) applet ya da uygulamanız içerisinde çalmanızı sağlar.

RMI (Remote Method Invocation) sistemi sayesinde, bir Java VM’de çalışan java programı ile başka bir Java VM’de çalışan ancak uzaktaki java programları ile iletişimi sağlayabilirsiniz.

Java IDL ise JDK 1.2 den sonra desteklenen CORBA uyumlu dağıtımlı nesne teknolojisidir. Java IDL’yi kullanarak java uygulamaları ya da appletları web üzerinde herhangi bir yerdeki CORBA destekli dile ile yazılmış nesne ile iletişim kurabilir.

Makale:
Java Dili ve J2EE Platformu J# ve Java dili Rıfat Yavuz
  • Yazılan Yorumlar
  • Yorum Yaz
MAR
20
2006
Makale için teşekkürler .Yalnız diğer arkadaşlarında belirttiği gibi bazı düzeltmeler yapmakta fayda var. Öncelikle Java multiple inheritance ı class lar arasında desteklemez.Yani class A extends B,C { } ifadesi yalnıs bir gosterimdir.Bunun nedeni , JVM default olarak dynamic binding i destekler .Polymorphism kullanırken diger bazı dillerdeki gibi virtual anahtar sozcugunu kullanmazsınız.B ve C class larının özelliklerini alan Bir A class ı yaratıldığı zaman hem B hemde C de olan bir metod yani class B { public void f() } class C { public void f() } A class ına indiği zaman A classından bir nesneyle cagrildiği zaman B deki mi yoksa C deki f() i cagiracagini compiler kestiremez.Java multiple inheritance i bu yonunden desteklememesine ragmen , interface(arayüz) ve inner classes(dahili sınıfları) programcıya sunarak çoklu türetme yapmasını sagalayabiliyor.Birden fazla arayüz implement edebilirsiniz.Ayrıca bu arayüzleri başka arayüzlerdende ister single ister multiple olarak türetebilirsiniz.Arkadaş yazarken memory allocation desteklemez demiş.Sanırsam yanlıs anlasılma olmus.Java da destructor yoktur.Ama gene syntax olarak yoktur.isterseniz finalize() metodunu override ederek nesne yokedilirken yapmasını istediğiniz işlemleri yaptırabilirsiniz.Nesnelerin temizlenmesi işleri yani , herhangi bir referans tarafından baglı olmayan nesneler garbage collector tarafından toplanır.Garbage collector un ne zaman calisacagi belli değildir.Mesela 100000 tane obje yarattınız bir for loopla.Eğer bir 512 mblık bir bilgisayarda iseniz bu nesnelerin temizlenmesi program bittiginde gercekleşir .Ama bir 32 mblık ramlik bir bilgisayarda bu temizleme işlemi run-time da yapılır.Bunun nedeni , JVM işletim sistemine kendisi için ayrılıcak belleği bildirmiş ve bu limit asıldıgında ise Garbage Collector devreye girer.Yani sonucda 32mblık bir bilgisayar ile 512 mblık bir bilgisayar (ram acısından) ikisisinin arasında fark vardır.Ama su bir gerçek ve kesindir ki ömürleri biten nesneler garbage collector tarafından silinirler. iyi çalışmalar ilker ACAR
AĞU
31
2004
*Java dili, multiple inheritance desteklemez ancak burada kastedilen class inheritance. Java da multiple inheritance i sadece interfacelere uygulayabilirken, sınıflara uygulayamazsınız.! *memory allocation desteklenmez cümlesinden sonra, zaten garbage collection in bunu yaptigi yazıyor. *Java dili, tüm array ve objeleri referans olarak geçirir ve ayrıca bir pointer tipine a sahip degildir. belirsiz bellege referans veremezsiniz.Programlamayı daha kolaylastirmak icin, pointerin yanlis kullanımından dogan hataları azaltır. *Operator overloading java da desteklenmez! *Bununla birlikte Java, struct ve union gibi yapıları desteklemez. Birleşik tipler yaratmak için, struct ve union yerine, sınıf ve arabirim(interface) kavramlarına bakınız. Not : Yazının kaynagı java 1.3 dokumantasyonudur.
AĞU
30
2004
Java desteklemez diye yazdığın (tum fonksyonaliteleri) java destekliyor, multiple inheritance, operator overloading ve struct patternlerine sahip bir dil. Memory allocation desteklemez demek zaten başlı başına bir yanlış. Onun yerine deallocation ı programcıya bırakmaz kendi yapar diyebilirdin. Biraz daha dikkat bence...
ŞUB
27
2004
Bende Kaan arkadaşımın düştüğü "Tuzağa" düştüm malesef. Ayrıca Kaan Sarıoğlu ve Sefer Algan arasında geçen mesajlaşmanın üzerinden 2 aydan fazla süre geçmesine rağmen neden hala başlık konusunda bir deişiklik yok meraj ettim doğrusu.
ARA
19
2003
Elbetteki yayınlana yazılar editöryel incelemeden geçiyır.ancak J2EE platformu ile Java dili nerdeyse birbirleriyle özdeşleştiği için böyle bir başlık konulmuş. Eğer J2EE platformunda başka bir dil ile geliştirme yapılabiliyor olsaydı o zaman başlık doğru olmazdı sizin dediğiniz gibi..Yinede yazardan yeni başlık önerisi alınacaktır.ilginize teşekkür ederiz..
ARA
19
2003
Makalenin başlığı "Java Dili ve J2EE Platformu" olmasına karşın J2EE ile ilgili bir bilgiye rastlamadım. Acaba gelen makeleler editöryal bir incelemeden geçmiyor mu?
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor