0% found this document useful (0 votes)
2 views31 pages

JavaDersNotu_1

Uploaded by

rosgold.co
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views31 pages

JavaDersNotu_1

Uploaded by

rosgold.co
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

JAVA

PROGRAMLAMA DİLİ
Dr. Öğr. Üyesi Nurullah ÖZTÜRK
JAVA PROGRAMLAMA DİLİ
• Hafta 1-2: • Hafta 3-4: Nesne Yönelimli • Hafta 5-6: Veri Yapıları ve
Temel Kavramlar ve Giriş Programlama (OOP) Temelleri Algoritmalar
• Java'nın Tanıtımı, Tarihçesi ve • OOP Kavramları: Sınıflar,
Özellikleri Nesneler, Metotlar • Diziler ve Dizi İşlemleri
• Java Geliştirme Ortamının (IDE) • Constructorlar ve Metotlar: • ArrayList ve LinkedList Veri
Kurulumu ve Temel Kullanımı Parametreli, Parametresiz, Dönüş Yapıları
• İlk Java Programı: "Hello World!" Değerli
• Kalıtım (Inheritance) ve İnterface • Stack ve Queue Kavramları
• Değişkenler, Veri Tipleri ve
Kavramı
Operatörler • Set ve Map Veri Yapıları
• Temel Kontrol Yapıları: if, else-if, • Polimorfizm ve Soyut Sınıflar
switch-case • Sınıf ve Nesne Arasındaki İlişki
• Temel Arama ve Sıralama
Algoritmaları
• Döngüler: while, do-while, for

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• Hafta 7-8: Hata Yönetimi ve Dosya • Hafta 9-10: Çoklu İş Parçacığı • Hafta 11-12: Veritabanı Bağlantısı ve
İ/O (Multithreading) ve Paralel GUI Programlama
• Exception Handling: try-catch, Programlama • JDBC (Java Database Connectivity)
throws, throw
• Thread Kavramı ve Thread • SQL Sorguları ve
• Checked ve Unchecked Exceptions Oluşturma PreparedStatement'lar
• Özelleştirilmiş Exception Sınıfları • Runnable ve Thread Sınıfları • Veritabanı Yönetimi ve CRUD
İşlemleri
• Dosya İ/O İşlemleri: FileReader, • Senkronizasyon ve Thread
FileWriter, BufferedReader,
Güvenliği • JavaFX veya Swing ile Temel GUI
BufferedWriter Tasarımı
• Try-With-Resources Yapısı • Java'nın Executor Framework'ü • Olay İşleme ve GUI Uygulama
• Paralel Programlama Temelleri ve Geliştirme
• Lambda İfadeleri ve Functional
Interface Kavramı Fork-Join Framework'ü • GUI Tasarımı ve İleri Seviye
Bileşenler

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• Hafta 13-14: Web Uygulama • Vize Sınavı Tarihi :
Geliştirme ve İleri Konular
• Temel Web Kavramları: HTTP,
HTML, CSS
• Servlet ve JSP Temelleri • Final Sınavı Tarihi:
• MVC (Model-View-Controller)
Tasarım Deseni
• RESTful Web Hizmetleri ve API
Geliştirme
• Java EE (Enterprise Edition) ve
Spring Framework'e Giriş
• İleri Seviye Konular: Reflection,
Generics, Unit Testing

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• Java, Sun Microsystems tarafından geliştirilen nesne yönelimli bir programlama dilidir.
• Yazılımcı, Java kodunu yazar.
• Bu kod bir Java derleyicisi ile derlenir. Derleme sonucunda "bytecode" adı verilen bir tür sanal makine kodu
ortaya çıkar. Platform bağımsızlığını sağlayan bytecode'dur. Çünkü bir kere bytecode oluştuktan sonra yazılım,
sanal makine içeren tüm işletim sistemlerinde çalışabilmektedir.
• Bu bytecode Java Sanal Makinesi (Java Virtual Machine - JVM) tarafından işletilir. Bu aşama, her bir bytecode
komutunun teker teker yorumlanması ile icra edilebileceği gibi, anında derleme (Just-in-time compilation - JIT)
kullanılarak da gerçekleştirilebilir.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• Java teknolojisi ilk olarak 1995 yılında ortaya çıktı.
• İlk olarak 1.0 sürüm çıkarıldı. Ardandan sırasıyla 1.1 ve 1.2 sürümleri
çıkarıldı ve 1.2 sürümüyle birlikte gelen ciddi değişikler, bu dilin Java 2
olarak anılmaya başlamasına neden oldu.
• Java uygulamalarınızı yazmak için, Notepad, Eclipse, NetBeans, IntelliJ
IDEA, Visual Studio Code (VS Code) kullanılabilir.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• Java basittir. Java’yı tasarlayanlar kaynak programın kolay yazılabilmesini, kolay derlenmesini ve kolay
düzeltilmesini (debug) amaçladılar. Java’nın C++ diline göre çok daha basit olmasının temel nedeni, otomatik
bellek tahsisi yapması ve işi biten nesneleri bellekten yok etmesidir (garbage collection).
• Java nesne yönelimli bir programlama dilidir. Nesne yönelimli programlama paradigmasının bütün
avantajlarını taşır. Programcıya kalıtım, polimorfizm, modular programlama, hata ayıklama (debug) ve kodların
yeniden kullanılabilmesi gibi önemli yetenekleri sunar.
• Java çoklu iş yapma (multithreaded) yeteneğine sahiptir. Çoklu iş yapma niteliği, bilgisayarın aynı anda
birden çok işi yapabilmesi demektir. Başka dillerde sistemle ilgili prosedürlerin çağrılmasıyla yaptırılan
multithreaded özeliği java dilinin özünde vardır. Multithreaded yeteneği, özellikle görsel programlamada ve ağ
programlamada önem kazanır.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• Java platform bağımsızdır. Java programları harklı platformlar için ayrı ayrı değil, JVM için bir kez derlenir.
Derleme sonunda ortaya çıkan java bytecode JVM tarafından yorumlanır. Bytecode, JVM yüklü her makinede
çalışabilir. JVM sanal makinesi her makineye kolayca ve ücretsiz yüklenebilir. Dolayısıyla, java programları bir
kez yazılır ve her yerde çalışır.
• Java taşınabilir. İşletim sisteminden ve donanımdan bağımsız oluşu nedeniyle, Java Bytecode bir bilgisayar
sisteminden farklı bir başkasına kolayca taşınır. Aynı java programının farklı sistemlerde sorunsuz çalışabilme
yeteneği, programlama alanında geniş ufuklar açmıştır.
• Java sağlamdır. Başka dillerin ancak koşturma anında belirleyebileceği hataları, java derleme anında belirler.
Güçlü hata ayıklama (debug) yeteneği vardır.
• Java güvenlidir. Java dili, derleyicisi ve yorumlayıcısı güvenlik öncelikli olarak tasarlanmıştır. Tasarımında
güvenliği öne çıkaran ilk dildir.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ

• Java Dilinin Başlıca Uygulamaları;


• Sınıf Kütüphaneleri Başka uygulamalarda kullanılacak kütüphane sınıfları yaratır.
• Konsol Uygulamaları Satır komutu arayüzü için görsel Java uygulamaları yaratır.
• Web Uygulamaları Web kullanıcı arayüzü için görsel Java uygulamaları yaratır.
• XML Uygulamaları Xml Web servisleri yaratır.
• Veritabanı Uygulamaları Veritanlarını yönetmek için uygulama programları yaratır.
• Mobile Web Uygulamaları PDA, cep telefonları gibi taşınabilir cihazlar için uygulama programları yaratır.
• Oyun Programları Java ile geliştirilen oyun programları yazılır.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• Java dilinde kullanýlan veri tipleri, sözdiziminin ve genel yapısının çoğunu
aldığı C++ dilinden gelir. C++’ta dolayısıyla Java’da, temel veri tipleri ve
sınıflar (referans/nesne veri tipleri) birbirinden ayrılmıştır.
JAVA PROGRAMLAMA DİLİ
JAVA PROGRAMLAMA DİLİ
JAVA PROGRAMLAMA DİLİ
JAVA PROGRAMLAMA DİLİ
JAVA PROGRAMLAMA DİLİ
JAVA PROGRAMLAMA DİLİ
JAVA PROGRAMLAMA DİLİ
• Denetim Deyimleri
JAVA PROGRAMLAMA DİLİ
• Denetim Deyimleri
JAVA PROGRAMLAMA DİLİ
• Döngüler
JAVA PROGRAMLAMA DİLİ
• Döngüler
JAVA PROGRAMLAMA DİLİ
• Denetim Deyimleri
JAVA PROGRAMLAMA DİLİ
• Örnek kodlama çalışmaları
JAVA PROGRAMLAMA DİLİ

• Java’da diziler, aynı veri tipine sahip birden fazla değeri barındırabilen nesnelerdir.
Diziler, oldukça kullanışlıdırlar ve işlemleri kolaylaştırmak ve kod kalabalığından
kurtulmak amacıyla oldukça önemlidir.
• Dizi oluşturmak için veritipi [] dizi adı=new veriTipi[elemanSayisi];

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ

• Dizi Tanımlama ve Oluşturma:


• // Integer türünde 5 elemanlı bir dizi tanımlama ve oluşturma
• int[] sayilar = new int[5]; // Diziye değer atama
• sayilar[0] = 10; sayilar[1] = 20; sayilar[2] = 30; sayilar[3] = 40; sayilar[4] = 50;
• Diziye Erişim:
• // Dizinin ikinci elemanına erişim (indeks 1)
• int ikinciEleman = sayilar[1]; // Değeri 20 olacak

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ

• Dizi Uzunluğu:
• // Dizinin uzunluğuna erişim
• int uzunluk = [Link]; // Değeri 5 olacak
• Dizi Döngüleri:
• // Dizi elemanlarını ekrana yazdırma
• for (int i = 0; i < [Link]; i++)
• { [Link](sayilar[i]); }

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• Dizi İnitialization (Başlangıç Değerleri ile):
• // Elemanları başlangıç değerleriyle tanımlama
• int[] digerSayilar = {1, 2, 3, 4, 5};
• Çok Boyutlu Diziler:
• // 2 boyutlu bir dizi tanımlama ve oluşturma
• int[][] ikiBoyutluDizi = new int[3][4];
• // 2 boyutlu diziye değer atama
• ikiBoyutluDizi[0][0] = 1; ikiBoyutluDizi[1][2] = 3;

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ

• Dizi işlemleri, Java programlamasında oldukça yaygındır ve birçok senaryoda


kullanılır. Dizi kullanımı, veri gruplarını düzenli bir şekilde saklamak ve bu verilere
erişim sağlamak için güçlü bir araçtır. Java'da dizi işlemleri ile ilgili birçok özellik ve
metodun yanı sıra [Link] sınıfı gibi yardımcı sınıflar da bulunmaktadır. Bu
sınıflar, diziler üzerinde çeşitli işlemleri gerçekleştirmek için kullanılır.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ

• Java'da ArrayList ve LinkedList sınıfları, dinamik dizi (dynamic array) ve bağlı liste
(linked list) veri yapılarını sağlayan, sıklıkla kullanılan veri yapılarıdır. Her iki sınıf
da [Link] paketi altında bulunur ve genişletilmiş bir dizi (array) gibi davranan
ArrayList ve düğümler arasında bağlantılar kurarak elemanları saklayan LinkedList
olarak özetlenebilir.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
• ArrayList:
• Dynamic Array (Dinamik Dizi): ArrayList, dinamik bir dizi olarak çalışır. Bu, boyutunun
dinamik olarak genişleyebileceği anlamına gelir. Eğer kapasitesi dolarsa, otomatik olarak
büyütülür.
• Hızlı Eleman Erişimi: ArrayList, elemanlara indeks numaraları aracılığıyla hızlı bir şekilde
erişim sağlar. Ancak, eleman ekleme veya silme işlemleri belirli durumlarda performans
sorunlarına yol açabilir.
• Null Değerlere İzin Verir: ArrayList null değerleri kabul eder ve içinde null elemanları
saklayabilir.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ

• LinkedList:
• Linked List (Bağlı Liste): LinkedList, düğümler arasında bağlantılar kurarak
elemanları saklayan bir veri yapısıdır. Elemanlar, bir önceki ve bir sonraki elemana
olan referansları üzerinden bağlıdır.
• Hızlı Ekleme ve Silme: LinkedList, eleman ekleme ve silme işlemlerinde daha
hızlıdır. Ancak, belirli bir indeksteki elemana erişim daha yavaş olabilir.
• Null Değerlere İzin Verir: LinkedList de null değerleri kabul eder ve içinde null
elemanları saklayabilir.

Öğr. Gör. Dr. Nurullah ÖZTÜRK


JAVA PROGRAMLAMA DİLİ
Sınıflar (class) Nesne Yönelimli Programlamanın temel
package deneme; taşlarıdır. Programın kullanacağı her değişken, her deyim, her
metot mutlaka bir sınıf içinde tanımlanmalıdır. Bir sınıf içinde
public class deneme { tanımlanan metotlar ve değişkenler o sınıfın öğe'leridir.
Karışmamaları için, bir sınıfta aynı adı taşıyan iki öğe olamaz.
public static void main(String[] args) { // simgesinden sonra satır sonuna kadar yazılanlar derleyici
tarafından işlenmez. Bir satırın bütününü ya da bir satırın
// TODO Auto-generated method stub ortasından sonuna kadar olan kısmı açıklamaya koyabiliriz.

[Link]("Merhaba Dünya..");
ardışık açıklama satırlarını /* */ simgeleri arasına
} alırız.
}

Öğr. Gör. Dr. Nurullah ÖZTÜRK

You might also like