Java 8 Sertifikasyonu (OCAJP 8) – Bölüm 1: Java’nın Temelleri

Bu birinci bölümden itibaren sınavda karşımıza çıkacak konulara değinmeye başlıyoruz. Verilen bilgilerin bazıları zaten bildiğiniz şeyler olacak, ancak bir sınava gireceğimizi ve pek çok yanıltıcı soru olacağını unutmayalım. Bazılarına önceleri benim de dikkat etmediğim, sınavda çeldirici olabilecek bazı özel noktaları “DİKKAT!” etiketiyle belirtiyorum. Verilen bilgilerin çoğunu bu kategoriye girmeye aday olanlardan seçmeye çalıştım. Eğer tamamını okumaktan sıkılırım diyorsanız sadece “DİKKAT!” etiketli kısımları okuyabilirsiniz.

Java Sınıf (Class) Yapısı

  • Java sınıflarının iki temel elemanı vardır: metotlar (methods) ve alanlar (fields).
  • Bunlara aynı zamanda sınıfın üyeleri (members) da denir.
  • Metotlar fonksiyon (function) yada prosedür (procedure) olarak da ifade edilebilir.
  • Alanlar değişkenler (variables) olarak da bilinir.
  • Alanlar sahip oldukları değerler itibariyle sınıf örneğinin (instance) durumunu (object’s state) belirlerken, metotlar sınıf örneğinin durumu üzerinde işlem (operation) yapar ve sınıfın davranışlarını tanımlar.
  • Bir sınıf bu sınıf üyelerinin hiçbirini barındırmayabilir, yada birini veya her ikisini barındırabilir. Yani şu üçü de geçerli sınıf tanımlarıdır:
class Animal {
}
class Animal {

    String name;

}
class Animal {

    String name;

    public String getName() {
        return name;
    }

    public void setName(String newName) {
        name = newName;
    }

}
  • Bir başka sıklıkla karşımıza çıkan kod parçaları ise yorumlardır (comments). Yorumlar kod içerisine eklediğimiz açıklamalardır ve derleyici (compiler) tarafından dikkate alınmaz. Tek satırlı, çok satırlı ve Javadoc tipinde yorumlar mevcuttur:

Okumaya devam et

Java 8 Sertifikasyonu (OCAJP 8) – Bölüm 0: Giriş

Java 8 sertifikasyon sınavına (OCAJP 8) hazırlanırken aldığım notlardan derlemelerimi içeren yazı dizisine hoş geldiniz. 5 yıldan uzun süredir Java programlama dili ile geliştirme yapan birisi olarak burada paylaşacağım notlar haliyle daha çok “highlights” (önemli noktalar) tadında olacak.

java8-logo

Lafı uzatmadan…

OCAJP 8 nedir?

  • Açılımı “Oracle Certified Associate, Java SE 8 Programmer”.
  • Oracle Sun’ı satın almadan ve kapsamını bölerek iki ayrı sertifikasyon programı haline getirmeden önceki adı “Sun Certified Java Programmer (SCJP)” olan sertifikasyon programının birinci aşaması.
  • Java’nın temel/görece basit konularının ele alındığı bu programın bir büyüğü ise OCAJP 8 (Oracle Certified Professional, Java SE 8 Programmer)
  • Bu iki program da Java SE konularını kapsamaktadır ve Java EE ile ilgili sertifikasyon programlarının ön koşuludurlar.
  • Kapsamı, giriş ücreti (şu sıralar 612 TL / 210$ civarı) ve sınav merkezi lokasyon bilgisi için (Türkiye’de pek çok test merkezi mevcut): http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-808

OCAJP 8 konuları?

Yukarıda paylaştığım linkte de bulabileceğiniz konu başlıklarını buraya ufak açıklamalar eşliğinde ekledim:

  • Java Basics:
    Değişkenlerin kapsamları (scope of variables), bir Java sınıfının (class) yapısı, “main” metodu ve çalıştırılabilir (executable) Java uygulamaları…
  • Working With Java Data Types:
    Java veri tipleri, ilkel tipler (primitive data types), nesne (object) referans değişkenleri ve ilkel tip değişkenler arasındaki farklar, nesne yaşam döngüsü…
  • Using Operators and Decision Constructs:
    Operatörler, karar yapıları (if, switch…), eşitlik kontrolü (== ve equals())…
  • Creating and Using Arrays:
    Bir ve çok boyutlu diziler oluşturma ve kullanma…
  • Using Loop Constructs:
    Döngü yapıları (for, while, do+while), döngü yapılarının karşılaştırması, “break” ve “continue” anahtar kelimeleri…
  • Working with Methods and Encapsulation:
    Metotlar, kapsülleme (encapsulation) yani sınıfın iç işlerini dış mihraklardan gizleme, “static” anahtar kelimesi…
  • Working with Inheritance:
    Kalıtım (Inheritance), soyut (abstract) sınıflar, arabirimler (interfaces), çok biçimlilik (polymorphism), “casting”, “this” anahtar kelimesi, üst sınıf davranışını ezme (overriding)…
  • Handling Exceptions:
    İstisna (Exception) yönetimi, “try-catch” blokları, “checked” ve “unchecked” istisnalar arasındaki farklar, temel istisna tipleri: “NullPointerException”, “ArithmeticExcpetion”, “ArrayIndexOutOfBoundsException”, “ClassCastException”…
  • Working with Selected classes from the Java API:
    “String”, “StringBuilder”, “java.time.LocalDateTime”, “java.time.LocalDate”, “java.time.LocalTime”, “java.time.format.DateTimeFormatter”, “java.time.Period”, “ArrayList” gibi temel Java API sınıfları ile çalışma, basit Lambda deyimleri yazabilme…

Gördüğünüz gibi OCAJP 8’in pek çok konu başlığı bir Java programcısının (hatta pek çok programcının) ekmeği suyu olan konular. Peki neden hazırlık yapmaya ihtiyaç var? Çünkü bu bir sınav ve doğası gereği kısıtlı bir zaman diliminde (150 dakika) sorulan soruların (77 adet soru) belli bir kısmını (%65’lik bir kısmını) doğru cevaplamamız istenmekte. Bunun için de ilgili konuların kafamıza net bir şekilde oturmuş olması ve soruları şak diye cevaplayabiliyor olmamız gerekmekte.

OCPJP 8 ise, günlük hayatta çokta dikkat etmediğimiz “Thread” gibi kavraması daha güç bir çok konuyu kapsamakta. Yani OCAJP 8’i atlattığımızda asıl macera bizi orada bekliyor olacak. :)

Neden sertifikasyon?

  • Birincil sebep:
    Yıllardır kullandığım bu programlama dilini gözümden kaçan, gündelik hayatta kullanmadığım (çoğu zaman alışkanlıklarımıza uygun şekilde, neredeyse ezbere diyebileceğimiz yöntemlerle kodlama yaparız) fakat faydalı olabileceğini keşfettiğim özellikleri ve konseptleriyle birlikte tam olarak kavramak, ve tabiki bunları sizlerle paylaşmak.
  • İkincil sebep:
    Neye faydası olur bilmiyorum ama, öz geçmişime bir satır daha eklemek. :)