45
Akın Kaldıroğlu Java ile Nesne Merkezli Programlama www.javaturk.org Mart 2011

1. Bölüm Java'ya Giriş

Embed Size (px)

DESCRIPTION

Java ile Nesne Merkezli Programlama'nın ilk bölümü.

Citation preview

Page 1: 1. Bölüm Java'ya Giriş

Akın Kaldıroğlu

Java ile Nesne Merkezli Programlama

www.javaturk.org Mart 2011

Page 2: 1. Bölüm Java'ya Giriş

Java’nın Kısa Tarihi

1991 yılında Sun, kapalı kapılar ardında ve Patrick Naughton, Mike Sheridan, and James Gosling önderliğindeki küçük bir takımla bir proje başlattı.

13 kişiden oluşan ve “Green Team” (Yeşil Takım) adı verilen bu grubun amacı ITC dünyasında geleceği tahmin edip ona göre ARGE yapmaktı.

Ve bu takım da geleceğin, kişisel ve ev elektronik cihazlarında olduğunu öngörüp bu alana yöneldi.

2 www.javaturk.org

Page 3: 1. Bölüm Java'ya Giriş

*7

18 aylık hummalı bir çalışmadan sonra 1992 yazında “*7”, “Star Seven” isimli ve dokunmalı ekrana sahip bir kontrol cihazı geliştirdirler.

Bu cihaz TV, video oynatıcısı ve müzik seti gibi pek çok ev cihazını kontrol edebiliyordu.

Cihazın bu yeteneği, platformdan bağımsız bir dile sahip olmasından kaynaklanıyordu.

James Gosling bu dile “Oak” adını vermişti.

3 www.javaturk.org

Page 4: 1. Bölüm Java'ya Giriş

Java ve Internet

Bu proje pek çok kablolu TV şirketine teklif edildi ama zamanının biraz ilerisinde olduğundan kabul görmedi.

Ama takımın ileri gelenleri o sırada, geliştirdikleri altyapının Internet’e çok uygun olduğunu farkettiler.

Ve hemen yönlerini değiştirip, ismi daha sonra resmi olarak HotJava olan Java-tabanlı bir tarayıcı geliştirdiler: WebRunner.

4 www.javaturk.org

Page 5: 1. Bölüm Java'ya Giriş

İç Giyim Olarak Oak Gosling explains: "We had already been developing the kind

of `underwear' to make content available at the same time the Web was being developed. Even though the Web had been around for 20 years or so, with FTP and telnet, it was difficult to use. Then Mosaic came out in 1993 as an easy-to-use front end to the Web, and that revolutionized people's perceptions. The Internet was being transformed into exactly the network that we had been trying to convince the cable companies they ought to be building. All the stuff we had wanted to do, in generalities, fit perfectly with the way applications were written, delivered, and used on the Internet. It was just an incredible accident. And it was patently obvious that the Internet and Java were a match made in heaven. So that's what we did."

5 www.javaturk.org

Page 6: 1. Bölüm Java'ya Giriş

Oak’tan Java’ya

Oak ismi bu sırada Java olarak değiştirildi

Ve 23 Mayıs 1995’te Java resmi olarak piyasaya sunuldu

Ve o tarihlerde ne Java’yı geliştirenlerin ne de bir başkasının tahmin edemeyeceği yoğunlukta bir ilgiyle karşılaştı

2010 yılında Oracle’ın Sun’ı satın almasıyla Java da el değiştirmiş oldu

6 www.javaturk.org

Page 7: 1. Bölüm Java'ya Giriş

Java Nedir? Sun 1995’te Java’yı sunarken yayınladığı bir yazıda Java’yı

şöyle tanıtıyordu:

Java: Basit, nesne-merkezli, ağlarda yetenekli, yorumlanan,

sağlam, güvenli, mimari olarak tarafsız, taşınabilir, yüksek performanslı/başarımlı, çok kanallı, dinamik bir dil.

Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, dynamic language

7 www.javaturk.org

Page 8: 1. Bölüm Java'ya Giriş

Java Basittir I

Java’nın o kadar da basit değildir aslında

Java, ataları olan C ve C++ dillerinden daha basittir

Çünkü bu dillerde olan ve karmaşıklık getiren özellikleri ve yapıları içermez:

Pointer aritmetiği

Bellek yönetimi (Memory management)

İşlem Yükleme (Operator Overloading)

Dolayısıyla Java daha yüksek seviyeli bir dildir

8 www.javaturk.org

Page 9: 1. Bölüm Java'ya Giriş

Java Basittir II

Java bu dillere göre aşağıdaki avantajlara sahiptir

Platforma bağlı olmayan basit veri yapıları

Daha derli toplu geliştirme ortamları

Daha küçük ve sade bir dil ile daha güçlü olmayı tercih eder

Ama son yapılan eklemelerle Java nispeten büyüdü

9 www.javaturk.org

Page 10: 1. Bölüm Java'ya Giriş

Java Nesne Merkezlidir I Java nesne merkezli bir dildir.

Nesne merkezli diller, daha çok aşina olunan prosedürel/yordamsal dillerden çok farklıdırlar.

Yordamsal dillerde en önemli kavram/soyutlama yordam/prosedür/fonksiyondur ve bu yapılar, bir problemi alt problemlere bölüp, her birini adım adım (step-wise decomposition) tanımlamakta kullanılır

Fakat nesne merkezli diller tamamen nesne kavramı üzerine otururlar

10 www.javaturk.org

Page 11: 1. Bölüm Java'ya Giriş

Nesne Nedir? Nesne, insan zihninin kendisine yöneldiği, özellik ve

davranışlara sahip, fiziksel olan ya da olmayan herhangi bir varlıktır.

Yazılımda her tip nesne için, verisi ile davranışını bir paket haline getirip sarmalayan (encapsulation) ve adına genelde sınıf (class) denen şablonlar oluşturulur. Nesneler, şablonlardan üretilir.

Nesnelerin çoğu zaman gerçek dünyadaki varlıkları ifade ettikleri düşünüldüğünde, nesnelerin özellikleri gerçek varlıkların özelliklerine, davranışları ise varlıkların birbirleriyle olan iletişimine karşılık gelir

11 www.javaturk.org

Page 12: 1. Bölüm Java'ya Giriş

Alan Key’in 5 Kuralı

Herşey bir nesnedir

Program birbirlerine mesaj (message) göndererek ne yapmalarını belirten nesnelerden oluşur

Her nesne diğer nesnelerden (association/composition) oluşur ve hafızada yer kaplar

Her nesnenin bir tipi (type) vardır

Aynı tipten olan nesneler aynı mesajları alabilirler

12 www.javaturk.org

Page 13: 1. Bölüm Java'ya Giriş

Java Nesne Merkezlidir II

Java’da basit veri tipleri hariç herşey, bütün tipler, bir nesnedir

Çok güçlü kapsülleme (encapsulation) ve bilgi saklama (information hiding) ayırımı vardır

Arayüz (interface) ile gerçekleştirme (implementation) arasında çok açık bir ayrım vardır

13 www.javaturk.org

Page 14: 1. Bölüm Java'ya Giriş

Java Ağlarda Yeteneklidir

Tarihi olarak Java’nın ve Web devriminin doğumu aynı döneme rast gelmiştir.

Bu yüzden Java, ağ ve ilgili yapılar akılda tutularak tasarlanmış ilk dildir.

Java ile bilgisayar için değil ağ için yazılım geliştirirsiniz.

HTTP ve HTTPs gibi en yaygın Web protokolleri

Web Servisleri

Uzak nesneler (remote objects)

Ve Telnet, FTP vs. gibi diğer bütün protokoller

14 www.javaturk.org

Page 15: 1. Bölüm Java'ya Giriş

Java Yorumlanır

Platformdan bağımsız olabilmesi için Java kaynak kodları doğrudan makina koduna derlenmez

Java kaynak kodları (.java dosyaları), Java bytecodelarına (.class dosyaları) derlenir.

Bytecodelar JVM’in komutlarıdır ve çalıştırma zamanında (run-time) JVM tarafından yorumlanır.

15 www.javaturk.org

Page 16: 1. Bölüm Java'ya Giriş

Java Yorumlanır Aslında Java hem derlenen (compiled) hem de yorumlanan

(interpreted) bir dildir.

Java kaynak kodları (.java dosyaları) Java bytecodelarına (.class dosyaları) derlenir.

Bytecodelar çalıştırma zamanında (run-time) JVM tarafından yorumlanır.

Dolayısıyla Java’da kod yazarken, nihai çalışma ortamını bilmeniz gerekmez.

16 www.javaturk.org

Page 17: 1. Bölüm Java'ya Giriş

Bytecode Nedir?

Bytecode, JVM’in makina dilidir

Bir byte uzunluğunda olduğu için böyle adlandırılmıştır

Bytecode, herhangi bir işlemciye özel değildir

Bytecodelar, JVM tarafından çalışma zamanında (run-time) platforma özel komutlara çevrilir

Yorumlama

Bu şekilde Java’nın platformdan bağımsız olması sağlanır

17 www.javaturk.org

Page 18: 1. Bölüm Java'ya Giriş

18 www.javaturk.org

Page 19: 1. Bölüm Java'ya Giriş

JVM

JVM (Java Virtual Machine ya da Java Sanal Makinası), donanım ve işletim sistemi üzerinde çalışan sanal bir platformdur.

Her platform için en az bir JVM mevcuttur.

Derlenmiş Java kodlarıyla platform arasında bir katman oluşturur ve aynı bytecodeların farklı platformlarda değişmeden, aynı şekilde çalışmasını sağlar.

19 www.javaturk.org

Page 20: 1. Bölüm Java'ya Giriş

20 www.javaturk.org

Page 21: 1. Bölüm Java'ya Giriş

21

public class Selam{

public String selamSoyle(String isim){

return "Selam " + isim + " :)";

}

}

public class SelamTest {

public static void main(String[] args) {

Selam selam = new Selam();

String cevap = selam.selamSoyle("Ali");

System.out.println(cevap);

}

}

www.javaturk.org

Page 22: 1. Bölüm Java'ya Giriş

Java Taşınabilirdir

Java tanımlı standartlar/teknik şartnameler (specifications) üzerine kurulmuştur.

Bu açıdan Java’da gerçekleştirmeye (implementation) bağlı hiçbir noktanın olmaması amaçlanmıştır.

Örneğin int veri tipi her yerde 32 bittir.

Ayrıca, Java dili ve JVM, platformlarla alakalı sadece en genel ön kabullere sahiptir.

Bu durum Java’nın platform bağımsızığı ve taşınabilirliğinin sağlayıcısıdır ve Java programcısına üzerinde çalıştığı ortamdan bağımsız davranma gücünü verir.

22 www.javaturk.org

Page 23: 1. Bölüm Java'ya Giriş

WORA

Başından bu yana bir kere yaz her yerde çalıştır (Write Once, Run Anywhere, WORA) Java’nın taşınabilirlik konusundaki hedefidir.

Tabi olarak bu prensipin geçerli olması için programcı da herhangi bir platforma özel kod yazmamalıdır.

Java’yı uzunca sürediruygulayanlar, bir kere yaz her yerde test et (WOTA) prensibinin daha doğru olduğu üzerinde hemfikirdirler.

23 www.javaturk.org

Page 24: 1. Bölüm Java'ya Giriş

Java Sağlamdır

Sağlamlık (robustness) çalışma zamanı güvenirliği olarak tanımlanır.

Java, dayanıklı (reliable) ve sağlam yazılımlar üretmek için tasarlanmıştır.

Java güçlü bir tip sistemine sahiptir dolayısıyla hem derleme zamanında hem de çalıştırma zamanında tip uyumu ve çevrimi (cast) kontrol edilir.

Sıradışı durumları ele almak için mekanizma oluşturulmuştur (exception handling).

Hafıza işletimi otomatiktir, programcıya bırakılmamıştır.

Ve daha pek çok derleme/çalışma zamanı kontrollerini içerir.

24 www.javaturk.org

Page 25: 1. Bölüm Java'ya Giriş

Java Güvenlidir

Java’nın ağ ortamlarında kullanılmak için tasarlanmış olduğu belirtilmişti.

Bu yüzden Java, ağ ortamlarında bulunmanın getirdiği tehlikelere karşı koyacak şekilde yapılandırılmıştır.

Yabancı makinlardaki nesnelerin, yerel makinadaki nesnelere ve işletim sistemine erişimi kontrol altındadır.

Java’nın ilk yıllarında duyulan güvenlik açıklarına artık pek rastlanılmamaktadır.

Java’daki güvenlik API’ları sayesinde şifrelemeden (encryption) sayısal imzalara (digital signatures) kadar her türlü güvenlik kodu yazılabilir.

25 www.javaturk.org

Page 26: 1. Bölüm Java'ya Giriş

Java Mimari Olarak Tarafsızdır

Java, birbirlerinden farklı, pek çok değişik platformun bulunduğu ağ üzerinde çalışmak için tasarlandığından, herhangi bir platformu varsaymaz, platformlardaki ortak özellikler dışında herhangi bir ön kabulü yoktur.

Bu durum Java’nın sanal bir makina üzerinde çalışması ve hiç bir platforma varsaymayan bir şekilde, standartlar üzerine inşa edilmesinin bir sonucudur.

26 www.javaturk.org

Page 27: 1. Bölüm Java'ya Giriş

Java Yüksek Başarımlıdır I

Bu özelliği tabiki açıklanmaya muhtaçtır.

Nesne-merkezli diller, tip hiyerarşileri ve polimorfizm gibi özelliklerinden dolayı zaten çalışma zamanında çok iş yaparlar.

Java, taşınabilir ve mimari olarak tarafsız olmak için sanal makina gibi bir ara katman üzerinde çalışmayı tercih etmiştir.

Ayrıca Java sağlam bir mimari kurgulamak için daha pek çok çalışma zamanı kontrollerine sahiptir.

Bu durum Java’yı tabii olarak çalışma zamanında daha yavaş kılmaktadır.

27 www.javaturk.org

Page 28: 1. Bölüm Java'ya Giriş

Java Yüksek Başarımlıdır II

Java’nın çalışma zamanı performansını arttırmak için çok mesafe katedilmiştir.

Etkin derleyici (Optimized compiler)

Etkin JVM, JIT ve HotSpot teknolojileri

Java’cılar da performanslı kod yazmak için hem hız hem de bellek tüketimi açısından, diğer dilleri kullananlara göre daha bilgili olmalıdırlar.

28 www.javaturk.org

Page 29: 1. Bölüm Java'ya Giriş

Java Yüksek Başarımlıdır III

Ama unutulmamalıdır ki projeler daha çok ihtiyaçların yanlış kavranması vs. gibi sebeplerden başarısız olmaktadır, performanstan değil.

Ayrıca performans ve ölçeklenirlik (scalability) genel olarak mimarinin bir özelliğidir ve mimariler bu konulardaki hedefler gözönüne alınarak tasarlanmalıdır.

29 www.javaturk.org

Page 30: 1. Bölüm Java'ya Giriş

Java Çok Kanallıdır

Kanal (thread), bir işlem/süreç (process) içinde oluşturulan hafif hafif bir işlem/süreçtir (lightweight process).

Aynı işlem içinde çalışan farklı kontrol akışlarına kanal denir.

Kanallar aynı işlem içinde çalıştıklarından, birçok işi aynı anda ve daha hızlı ve etkin olarak yerine getirebilirler

Böylece daha yetenekli ve hızlı cevap veren yazılımlar geliştirilebilir.

CPU ve platformların çok hızlı hale gelmesi, dillerdeki çok kanallı özellikleri kullanmamızı zorlamaktadır.

30 www.javaturk.org

Page 31: 1. Bölüm Java'ya Giriş

Java Dinamiktir .class dosyalarındaki Java tiplerinin daha program

derlenirken hazır olmaları şart değildir, JVM’e çalıştırma zamanında her hangi bir anda yüklenebilir.

Dolayısıyla pek çok dilde var olan derleme zamanındaki statik bağlantı kurma (static linking) Java’da yoktur.

Bu da ağ üzerinde çalışan ve derleme sırasında erişilmesi mümkün olmayıp, çalıştırma zamanında ulaşılan nesnelerin dinamik olarak JVM’e yüklenebilmesini sağlar.

31 www.javaturk.org

Page 32: 1. Bölüm Java'ya Giriş

Java’nın Sahibi Kimdir?

Excel’in sahibinin Microsoft olması anlamında Java’nın sahibi yoktur.

Java’nın orijinal geliştiricisi olan Sun, Java’nın lisanslayıcısıdır.

32 www.javaturk.org

Page 33: 1. Bölüm Java'ya Giriş

Java’yi Kim Geliştirmektedir?

Java, JCP (Java Community Process, http://www.jcp.org ) tarafından geliştirilmektedir.

JCP, kişi ve kuruluşların serbestçe katılabildiği ve kararların oy çoğunluğu ile verildiği milletlerarası bir ortamdır.

Çok farklı bilgi ve tecrübeye sahip binlerce kişi ve kurum JCP çatısın altında Java’nın gidişatını belirlerler.

Her ne kadar Sun, JCP’de çok etkin olsa ve bu yüzden eleştirilse de java’nın geleceği çok daha demakratik yollarla belirlenmektedir.

33 www.javaturk.org

Page 34: 1. Bölüm Java'ya Giriş

JSR I

JCP’nin üyeleri yeni bir Java teknolojisini Java Specification Request (JSR) mekanizması ile teklif edebilirler.

Her JSR’ın bir yürütücü heyeti ve teknik bir lideri vardır.

JSR’lar, içinde halka açık incelemenin de (public review) bulunduğu bir dizi safhadan geçip tamamen demokratik bir oylama ile sonuçlandırılırlar.

34 www.javaturk.org

Page 35: 1. Bölüm Java'ya Giriş

JSR II Kabul edilen her JSR aşağıdaki üç şeyi üretmek zorundadır:

API’ı da içeren bir tarifname (specification)

Bir referans olan gerçekleme (reference implementation)

Teknoloji uyumluluk paketi (technology compatibility kit)

Dolayısıyla her Java teknolojisi gerçekleştirmesi, bu açık ve üzerinde mutabakat oluşmuş tarifname ve API’lar üzerine bina edilirler

İsteyen her kişi ve kurum da bu tarifnameler üzerine ürün geliştirip, bedava ya da ücretiyle lisanslayabilir.

35 www.javaturk.org

Page 36: 1. Bölüm Java'ya Giriş

Özgür Yazılım

Java’nın bu açık ve standartlara dayalı yapısı özgür yazılımların gelişmesine de yardımcı olmaktadır.

Java bugün açık kaynak kodlu (open source) yazılım felsefesine gönül verenlerin en fazla kullandıkları dil haline gelmiştir.

Bu sayede hemen her Java teknolojisinin ticari olmayan, açık kaynak kodlu gerçekleştirmesi mevcuttur.

36 www.javaturk.org

Page 37: 1. Bölüm Java'ya Giriş

Java’nın Tipleri

Sun, tek bir tipin yeterli olmayacağını düşünerek, Java’nın üç farklı tipini oluşturmuştur:

Standart Java (Standard Edition, SE)

Mikro Java (Micro Edition, ME)

Kurumsal Java (Enterprise Edition, EE)

Şu anda

Java SE’nin 6. sürümü vardır, 7.si çıkmak üzeredir,

Java EE’nin 6. sürümü Aralık 2009’da çıkmıştır

Java ME’nin 3.0 sürümü vardır.

37 www.javaturk.org

Page 38: 1. Bölüm Java'ya Giriş

Java’ya Nasıl Başlarım?

Java’ya http://www.oracle.com/technetwork/java/index.html (eskiden http://java.sun.com ) adresine gidip JDK’in en son sürümünü indirip makinanıza kurarak başlayabilirsiniz.

JDK’i kurduğunuz yerdeki bin klasörünü path’e koyup, javac ile kodunuzu derleyip, java ile de çalıştırabilirsiniz.

İsterseniz Netbeans (http://www.netbeans.org) ya da Eclipse (http://www.eclipse.org) gibi geliştirme ortamlarını da kullanabilirsiniz.

38 www.javaturk.org

Page 39: 1. Bölüm Java'ya Giriş

Java’nın Tabiatı ve Zorlukları I

Java nesne-merkezlidir:

Artık prosedürel değil nesne merkezli düşünmeniz gereklidir.

Java, sürükle-bırak merkezli programlama yaklaşımından ziyade, C/C++ geleneğine daha uygun olarak, ne yazdığınızı tam olarak bilmenizi ister.

Java tarifname/şartname (specification) temellidir:

Dolayısıyla tarifname ve onu gerçekleştiren farklı ürünlerin olduğunu anlamanız gereklidir.

Dolayısıyla aynı işe yapan değişik ürünler vardır.

39 www.javaturk.org

Page 40: 1. Bölüm Java'ya Giriş

Java’nın Tabiatı ve Zorlukları II Java, yazılım mimarilerine, tasarım şablonlarına (design

patterns) önem verir ve onları kullanır. Java’da düşünmek ve modellemek yazmaktan daha önemlidir

Küçük bir şey yapmak için bile hiç tahmin edemeyeceğiniz kadar düşünmeniz gerekebilir.

Dolayısıyla örneğin sürükle-bırak yoğun, 2000 satırlık ASP ya da PHP sayfası yerine, çoğunlukla satır satır yazılmış ama çok daha modüler ve şablonlara uygun tasarlanmış 50-100 satırlık JSP sayfaları yazmak gereklidir.

Java özgür ve açık kaynak kodlu yazılımların en yoğun olduğu dildir: Dolayısıyla aynı işe yapan açık kaynak kodlu pek çok farklı

ürün vardır.

40 www.javaturk.org

Page 41: 1. Bölüm Java'ya Giriş

Java Sertifikaları I

Java’yı, sistemli bir şekilde, temellerinden başlayarak öğrenmenin bir yolu da Oracle’ın Java sertifikalarını almaktır.

Oracle’ın Java sertifikaları, Java SE 5 ve 6 ile Java EE 5 ve 6 sürümleri ile Java ME üzerinedir.

Sertifikalar, tecrübeniz olmasa bile temel bilginizin sağlam olduğunu göstermenin en güzel yoludur.

OCP, Java Programmer, diğer sertifikalar için zorunludur.

41 www.javaturk.org

Page 42: 1. Bölüm Java'ya Giriş

42 www.javaturk.org

OCM, Java EE 5 Enterprise Architect

OCM, Java SE 6 Developer

OCP, Java EE 5 Web

Component Developer

OCP, Java EE 5 Business

Component Developer

OCP, Java EE 5 Web Services

Developer

OCP, Java Platform, Enterprise Edition 6

JavaServer Pages and

Servlet Developer

OCE, Java Platform, Enterprise Edition 6

Enterprise JavaBeans Developer

OCE, Java Platform, Enterprise

Edition 6 Java Persistence

API Developer

OCE, Java Platform, Enterprise

Edition 6 Web Services

Developer

OCP, Java ME 1 Mobile

Application Developer

OCP, Java Programmer

OCA, Java SE 5/SE 6

Page 43: 1. Bölüm Java'ya Giriş

43 www.javaturk.org

Name Information Duration (min) # of Questions Passing Score (%)

OCA, Java SE 5/SE 6

This certification provides an ideal entry into an application development or a software project management career using Java technologies. It validates basic knowledge of OO concepts, the Java programming language and general knowledge of Java platforms and technologies.

115 51 68

OCP, Java Programmer

This foundation certification is for programmers interested in demonstrating proficiency in the fundamentals of the Java programming language. To achieve this certification, candidates must successfully complete one exam. It is not necessary to be a Sun Certified Java Associate prior to taking this exam.

180 60 58.33

OCM, Java SE 6 Developer

To achieve this certification, candidates must successfully complete two elements: a programming assignment and an essay exam. Prior to attempting certification, candidates must be certified as a Sun Certified Programmer (SCJP), any edition. It is not necessary to be a Sun Certified Java Associate prior to taking this exam.

For project: 12 months from assignment purchase. For essay exam: 120

For essay exam: 4

For project: 320 points out of 400 possible points. Passing score is subject to the evaluation of the Step 2 essay exam and validation of the authenticity of the assignment.For exam: Subject to the evaluation of the essay exam and validation of the assignment.

OCP, Java EE 5 Web Component Developer

This certification is for developers specializing in the application of JavaServer Pages and servlet technologies used to present Web services and dynamic Web content. To achieve this certification, candidates must successfully complete one exam. Prior to attempting certification, candidates must be certified as a Sun Certified Programmer (SCJP), any edition.

180 69 70

OCP, Java EE 5 Business Component Developer

This certification is for Enterprise JavaBeans (EJB) technology business component developers who are responsible for designing, developing, testing, deploying and integrating EJB applications. To achieve certifications, candidates must successfully complete one exam. Prior to attempting certification, candidates must be certified as a Sun Certified Programmer (SCJP), any edition.

145 61 59

OCP, Java EE 5 Web Services Developer

This certification is for developers who create Web service for applications using Java technology components. To achieve this certification, candidates must complete one exam. Prior to attempting certification, candidates must be certified as a Sun Certified Programmer (SCJP), any edition.

150 69 68

OCM, Java EE 5 Enterprise Architect

This certification is for enterprise architects responsible for architecting and designing Java EE compliant applications with an emphasis on making the best use of Java EE features to create flexible, scalable, secure designs. The SCEA certification “signifies that its holders can handle advanced design responsibilities and lead roles in creating applications. To succeed, SCEA candidates must demonstrate a deep understanding of appropriate uses of modern design architecture and current Java EE technologies for business applications.” (Ed Tittel and Dr. Bill Brogden) To achieve this certification, candidates must successfully complete three elements: a knowledge-based multiple choice exam, an assignment and essay exam.

For exam: 120 For assignment: 12 months from

assignment purchase For

essay: 90

For exam: 64 For assignment: 120

For essay: 8 For exam: 57 For assignment: 71 For essay: N/A

OCP, Java Platform, Enterprise Edition 6 JavaServer Pages and Servlet Developer

The Sun Certified JSP and Servlette Developer for the Java EE6 Platform certification is geared toward experienced developers of Java technology applications. Certified individuals should have the knowledge and skills to quickly build web applications suited to any Java EE 6 application server using JSP and servlet technologies. They should be familiar with the current methods for analyzing, designing, developing, and deploying web applications with Java technologies and have some experience in constructing and deploying the small-to-medium scale web applications found in intranet and low-volume commercial sites.

TBD TBD TBD

OCE, Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer

The Oracle Certified Expert, Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer should have the knowledge required to build robust back-end functionality using Enterprise JavaBeans (EJB[TM]) version 3.1 technology. Through careful exam preparation, the candidate should gain practical experience with the EJB technology coding experience of session beans and message driven-beans. This candidate should also be familiar with EJB design, best practices, transaction management, messaging fundamentals, and security.

110 60 60

OCE, Java Platform, Enterprise Edition 6 Java Persistence API Developer

Sun Certified JPA Developers for the Java EE6 Platform should have the knowledge required to build robust back-end functionality using Enterprise JavaBeans (EJB[TM]) version 3.1 technology. They are familiar with the EJB technology coding experience of session beans and message driven-beans. Through careful exam preparation, they should also gain an understanding of EJB design, best practices, transaction management, messaging fundamentals, and security.

135 65 60

OCE, Java Platform, Enterprise Edition 6 Web Services Developer

Preparing for the Sun Certified Developer for Java EE 6 exam gives candidates the information they need to create, implement, and deploy web services and web service clients using Java technology components and the Java Platform, Enterprise Edition 6 SDK (Java EE 6 SDK). Certified individuals should understand and appreciate web services as a realization of Service Oriented Architecture (SOA), and how to use the Java Platform, Enterprise Edition (Java EE) technology design patterns and best practices when designing web services.

90 60 60

OCP, Java ME 1 Mobile Application Developer

This certification is for developers who create mobile applications using Java technologies for cell phones or "smart" devices. To achieve this certification, candidates must successfully complete one exam. Prior to attempting certification, candidates must be certified as a Sun Certified Programmer (SCJP), any edition.

150 68 55

Page 45: 1. Bölüm Java'ya Giriş

Java Sertifikaları Sınavları

Sınavlarda çok yoğun kitabi bilgi ve uygulama sorulmaktadır.

Dolayısıyla teorik bir altyapıya sahip olmadan Java’yı kullanıyor olmak ya da hiçbir Java uygulama tecrübesi olmadan sadece kitaba çalışarak bu sınavları geçmek zordur.

OCM, Java SE 6 Developer ’da programlama projesi ve makale yazımı ,

OCM, Java EE 5 Enterprise Architect’de ise sınav, programlama projesi ve makale yazımı vardır.

Diğer sınavlar çoktan seçmelidir

Ayrıca OCA dışındaki sınavların hepsi için OCP, Java Programmer sınavını başarmış olmak bir ön koşuldur.

45 www.javaturk.org