Java İle İlgİlİ GÜzel Bİr Kaynak

yusuf1125

New member
Katılım
3 Eyl 2006
Mesajlar
260
Reaction score
0
Puanları
0
Konum
olurmu
BU KONUYU E BOOK'A MI YOKSA BURAYAMI AÇİM KARAR VEREMEDİM GEREKİRSE TAŞANIR


İÇİNDEKİLER

Önsöz 15
Bölüm 1. Java nedir? 17
1.1. Java ile Ne Yapılabilir? 18
1.2. Java Nasıl Çalışır? 8
1.3. Java Sınıflaması 20
1.3.1. Standart Java 20
1.3.2. Komple Java 21
1.3.3. Gömülü Cihazlar İçin Java 21
1.3.4. XML Teknolojileri 22
1.3.5. Diğer Teknolojiler 22
1.4. Java’nın Gelişim Evreleri 23
1.5. Java’nın Başarılı Olmasındaki Anahtar Sözcükler 23
1.6. Çöp Toplayıcı 24
1.7. Java’da Açıklama Satırı 24
1.8. Herşey Nesne 24
1.9. Sınıf Nedir? Nesne Nedir? 26
1.10. Depolanan Veriler Nerede Durmaktadır? 27
1.11. Temel Tipler 27
1.12. Geçerlilik Alanı 28
1.13. Nesnelerin Geçerlilik Alanları 29
1.14. Yeni Sınıf Oluşturma 29
1.15. Alanlar ve Yordamlar 30
1.16. İlk Java Programımız 35
1.17. Java Kurulumu, Derleme ve Çalıştırma 36
1.17.1. Java’nın Unix/Linux İşletim Sistemlerinde Kurulumu 37
1.17.2. Java’nın Windows İşletim Sisteminde Kurulumu 38
1.17.3. Java Kodlarını Derleme ve Çalıştırma 39
1.18. args[ ] Nedir? Ne İşe Yarar? 39
1.19. Javadoc = Yorum İle Dokümantasyon Oluşturmak 41
1.19.1. Söz Dizimi Kuralları 41
1.19.2. Gömülü HTML 41
1.19.3. Doc Tag 42
1.19.3.1. Ortak Kullanılan Yorum Ekleri 42
1.19.3.2. Sınıflara Ait JavaDoc Etiketleri 43
1.19.3.3. Global Değişkenlere Ait JavaDoc Etiketleri 43
1.19.3.4. Yordamlara Ait JavaDoc Etiketleri 43
1.19.4. Dokümantasyon Örneği 44
1.20. Sınıf İsimleri ve Yordam İsimleri 45
1.21. Dosya İsimleri 45
1.22. Özet 46
1.23. Sorular 46


Bölüm 2. JAVA’DA PROGRAM DENETİMİ VE OPERATÖRLER 47Atamalar 47
2.1.1. Temel Tiplerde Atama 47
2.1.2. Nesneler ve Atamalar 48
2.2. Yordamların Çağrılması 50
2.3. Java Operatörleri 52
2.3.1. Aritmetik Operatörler 53
2.3.1.1. Dönüştürme İşlemi 55
2.3.1.2. Bir Artırma ve Azaltma 56
2.3.2. İlişkisel Operatörler 57
2.3.3. Mantıksal Operatörler 59
2.3.4. Bit Düzeyinde Operatörler 60
- VE İşlemi/Operatörü 61
- VEYA İşlemi/Operatörü 61
- YA DA İşlemi/Operatörü 62
- TÜMLEME İşlemi/Operatörü 62
- Öteleme Operatörleri 63
2.3.5. Atama Operatörleri 64
2.3.6. String Operatörü 66
2.3.7. Nesnelerin Karşılaştırılması 66
2.4. Kontrol Deyimleri/İfadeler 68
2.4.1. Döngü Deyimleri 68
- while Döngü Deyimi 68
- do-while Döngü Deyimi 69
- for Döngü Deyimi 70
2.4.2. Karşılaştırma Deyimleri 72
- if-else Deyimi 72
- switch Deyimi 75
2.4.3. Dallandırma Deyimleri 77
- break Deyimi 77
- continue Deyimi 79
- return Deyimi 80
2.5. Özet 81
2.6. Sorular 81



Bölüm 3. NESNELERİN BAŞLANGIÇ DURUMU VE TEMİZLİK 83

3.1. Başlangıç Durumuna Getirme İşlemi ve Yapılandırıcılar 83

3.1.1. Bir İsmin Birden Çok Yordam İçin Kullanılması-Adaş Yordamlar 85

- Adaş Yordamlar Nasıl Ayırt Edilir? 86

- Dönüş Değerlerine Göre Adaş Yordamlar Ayırt Edilebilir mi? 87

3.1.2. Varsayılan Yapılandırıcılar 88

- Büyünün Bozulması 88

3.1.3. this Anahtar Sözcüğü 89

- Yordam Çağrımlarımda this Kullanımı 91

- Bir Yapılandırıcıdan Diğer Bir Yapılandırıcıyı Çağırmak 92

3.1.4. Statik Alanlar 93

3.1.5. Statik Yordamlar 94

3.1.6. Bir Yordamın Statik mi Yoksa Nesne Yordamı mı Olacağı

Neye Göre Karar Verilecek? 95

3.2. Temizlik İşlemleri: finalize() ve Çöp Toplayıcı 97

3.2.1. finalize() Yordamı 97

3.2.2. Bellekten Hangi Nesneler Silinir? 100

3.2.3. finalize() Yordamına Güvenilirse Neler Olur? 102

3.2.4. Çöp Toplayıcısı Nasıl Çalışır? 103

- Eski Yöntem 103

- Yeni Yöntemler 104

3.2.5. Heap Bölgesi 104

3.2.6. Yeni Nesil 105

3.2.7. Eski Nesil 105

3.2.8. Heap Bölgesi Boyutları Nasıl Denetlenir? 105

3.2.9. Kopyalama Yönteminin Gösterimi 107

3.2.10. İşaretle ve Süpür Yönteminin Gösterimi 108

3.2.11. İlk Değerlerin Atanması 109

3.2.12. Yerel Değişkenler 110

3.2.13. Nesnelere Ait Global Alanlar 110

3.2.13.1. Nesnelere Ait Global Alanların Temel Bir Tip Olması Durumunda 110

3.2.13.2. Nesnelere Ait Global Alanların Sınıf Tipi Olması Durumunda 111

3.2.14. Sınıflara Ait Global Alanlar 112

3.2.14.1. Sınıflara Ait Global Alanların Temel Bir Tip Olması Durumunda 112

3.2.14.2. Sınıflara Ait Global Alanların Sınıf Tipi Olması Durumunda 113

3.2.15. İlk Değerler Atanırken Yordam Kullanımı 113

3.2.16. İlk Değer Alma Sırası 114

3.2.17. Statik ve Statik Olmayan Alanların Değer Alma Sırası 115

3.2.18. Statik Alanlara Toplu Değer Atama 117

3.2.19. Statik Olmayan Alanlara Toplu Değer Atama 117

3.3. Diziler 118

3.3.1. Dizi Türündeki Referanslar 118

3.3.2. Dizileri Oluşturmak 119

3.3.2.1. Temel Türlerden Oluşan Bir Dizi 119

3.3.2.2. Nesnelerden Oluşan Bir Dizi 120

3.3.3. Dizi Boyu/Uzunluğunun Değiştirilmesi 121

3.3.4. Dizi Elemanlarına Erişim 121

3.3.5. Dizi Elemanlarını Sıralama 123

3.3.6. Dizilerin Dizilere Kopyalanması 124

3.3.7. Çok Boyutlu Diziler 125

3.4. Özet 129

3.5. Sorular 130



Bölüm 4. Paket Erişimleri 131
4.1. Paket 131

4.2. Varsayılan Paket 132

4.3. Paket Oluşturma 134

4.4. Classpath Ayarları 135

4.4.1. Önemli Nokta 137

4.5. Çakışma 138

4.6. Paket İçerisindeki Tek Başına Yürütülebilir Uygulamaları Çalıştırmak 139

4.7. JAR Dosyaları 141

4.7.1. JAR Dosyası İçersindeki Bir Uygulamayı Çalıştırmak 143

4.8. Erişim Belirleyiciler 143

4.8.1. friendly 143

4.8.1.1. Varsayılan Paketlerde Erişim 145

4.8.2. public 146

4.8.3. private 147

4.8.4. protected 148

4.9. Kapsüllenme 151

4.10. Genel Bir Bakış 152

4.11. Özet 154

4.12. Sorular 154



Bölüm 5. SINIFLARIN TEKRAR KULLANILMASI 155
5.1. Komposizyon 155

5.2. Kalıtım 158

5.2.1 Gizli Kalıtım 161

5.2.2. Kalıtım ve Başlangıç Değeri Alma Sırası 163

5.2.3. Parametre Alan Yapılandırıcılar ve Kalıtım 164

5.3. Komposizyon mu? Kalıtım mı? 166

5.4. İptal Etmek 168

5.4.1. Sanki İptal Ettim Ama... 171

5.4.2. İptal Etmek ve Adaş Yordamların Birbiriyle Karıştırılması 173

5.5. Yukarı Çevrim 174

5.6. Final Özelliği 175

5.6.1. Global Alanlar ve Final Özelliği 175

5.6.2. Final Parametreler 177

5.6.3. Boş Final 177

5.6.4. Final Yordamlar 178

5.6.5. Private ve Final 179

5.6.6. Final Sınıflar 179

5.7. Kalıtım ve İlk Değer Alma Sırası 180

5.8. Özet 181

5.9. Sorular 182



Bölüm 6. POLİMORFİZM 183
6.1. Ayrıntılar 183

6.2. Geç Bağlama 185

6.3. Final Deyimi ve Geç Bağlama 188

6.4. Neden Polimorfizm? 189

6.5. Genişletilebilirlik 192

6.6. Soyut Sınıflar ve Yordamlar 195

6.6.1. Niye Soyut Sınıf ve Yordamlara İhtiyaç Duyulur? 197

6.7. Yapılandırıcılar İçersindeki İlginç Durumlar 199

6.8. Kalıtım ve Yukarı Çevrim 201

6.9. Aşağıya Çevrim 203

6.10. Özet 207

6.11. Sorular 207



Bölüm 7. Arayüzler ve Dahili Sınıflar 209
7.1. Arayüz 209

7.1.1. Birleştiricilik 209

7.1.2. Arayüz ve Soyut Sınıflar 212

7.1.3. Arayüz İle Çoklu Kalıtım 214

7.1.4. Arayüzlerin Kalıtım Yoluyla Genişletilmesi 217

7.1.5. Çakışmalar 219

7.1.6. Arayüzün İçerisinde Alan Tanımlama 220

7.6.1.1. Arayüzün İçerisinde Tanımlanmış Alanlara

Başlangıç Değerleri Verilmesi 221

7.1.7. Genel Bakış 222

7.1.8. Dahili Arayüzler 224

7.1.8.1. Sınıflarda Tanımlanan Dahili Arayüzler 225

7.2. Dahili Sınıflar 227

7.2.1. Dahili Üye Sınıflar 227

7.2.1.1. Dahili Üye Sınıflar ve Erişim 228

7.2.1.2. Dahili Üye Sınıflar ve Bunları Çevreleyen Sınıflar Arasındaki İlişki 230

7.2.1.3. Statik Dahili Üye Sınıflar 232

7.2.1.4. Statik Dahili Üye Sınıflar ve Statik Yordamlar 235

7.2.1.5. Statik ve Final Alanlar 235

7.2.1.6. Dahili Üye Sınıflar ve Yapılandırıcılar 236

7.2.1.7. İç İçe Dahili Üye Sınıflar 237

7.2.1.8. Soyut Dahili Üye Sınıflar 237

7.2.1.9. Türetilebilen Dahili Üye Sınıflar 240

7.2.2. Yerel Sınıflar 241

7.2.3. İsimsiz Sınıflar 244

7.2.4. Fiziksel İfade 248

7.2.5. Neden Dahili Sınıflar? 249

7.3. Özet 251

7.4. Sorular 251



Bölüm 8. AYRICALIKLI (İSTİSNA) DURUMLAR 253
8.1. İstisnalara Giriş 253

8.1.1. İstisna Nasıl Oluşabilir? 254

8.1.2. Başka İstisnalar Neler Olabilir? 255

8.1.3. İstisna Yakalama Mekanizması 255

8.1.4. İstisna İfadeleri 257

8.1.5. İstisna Tip Hiyerarşisi 268

8.1.5.1. Diğer İstisna Tiplerini Yakalamak 269

8.1.5.2. RuntimeException İstisna Tipleri 269

8.1.6. İstisna Mesajları 270

8.1.7. Kendi İstisnalarımızı Nasıl Oluşturabiliriz? 277

8.1.8. finally Bloğu 281

8.1.8.1. return ve finally Bloğu 285

8.1.8.2. Dikkat System.exit(); 286

8.1.9. İstisnanın Yeniden Fırlatılması 287

8.1.10. printStackTrace() ve Hata Mesajlarının Kısaltılması 290

8.1.11. İlginç Gelişme 292

8.1.12. İptal Etme ve İstisnalar 294

8.1.13. İstisnaların Sıralanması 298

8.2. Özet 299

8.3. Sorular 300



Bölüm 9. JAVA’DA GİRİŞ/ÇIKIŞ İŞLEMLERİ 301
9.1. Sekizli Irmakları 302

9.1.1. InputStream Sınıfı 302

9.1.1.1. FilterInputStream Sınıfı 312

9.1.1.2. BufferedInputStream Sınıfı 312

9.1.1.3. CheckedInputStream Sınıfı 316

9.1.1.3.1. Checksum Arayüzü 317

9.1.1.3.2. CRC 317

9.1.1.3.3. CRC32 Sınıfı 317

9.1.1.3.4. Adler32 Sınıfı 318

9.1.1.4. DataInputStream Sınıfı 319

9.1.1.5. PushbackInputStream Sınıfı 321

9.1.1.6. Standart Okuma 323

9.1.2. OutputStream 324

9.1.2.1. FilterOutputStream Sınıfı 329

9.1.2.1.1. BufferedOutputStream Sınıfı 329

9.1.2.1.2. CheckedOutputStream Sınıfı 332

9.1.2.1.3. DataInputStream ve DataOutputStream Sınıfları 333

9.1.2.1.4. Printstream Sınıfı 334

9.1.3. Önemli Noktalar 336

9.2. Karakter Irmakları 337

9.2.1. Reader 338

9.2.1.1. InputStreamReader Sınıfı 340

9.2.1.1.1. FileReader Sınıfı 340

9.2.1.2. BufferedReader Sınıfı 344

9.2.1.2.1. BufferedReader İle Standart Okuma 347

9.2.1.3. PushbackReader Sınıfı 348

9.2.2. Writer 350

9.2.2.1. OutputStreamWriter ve FileWriter Sınıfı 352

9.2.2.2. PrinterWriter Sınıfı 356

9.2.2.3. BufferedWriter Sınıfı 358

9.2.2.4. StringWriter Sınıfı 359

9.3. Başarım (Performans) 360

9.4. Unicode 368

9.5. File Sınıfı 373

9.5.1. Geçici Dosyalar 373

9.5.2. Listeleme 375

9.6. Rasgele Erişimli Dosyalar 377

9.7. Dönüşüm 378

9.7.1. Externalizable 389

9.8. Sıkıştırma 393

9.9. Bölümleyiciler 400

9.9.1. StreamTokenizer Sınıfı 401

9.9.2. StringTokenizer Sınıfı 403

9.10. Özet 405

9.11. Sorular 406



Bölüm 10. JAVA’DA YENİ GİRİŞ/ÇIKIŞ ÖZELLİKLERİ 407
10.1. Tamponlar 408

10.1.1. hasRemaining(), flip(), get() Yordamları 411

10.1.2. Bağıl ve Mutlak Operasyonlar 413

10.1.2.1. Bağıl Operasyonlar 413

10.1.2.2. Mutlak Operasyonlar 415

10.1.3. Sarmalama 416

10.1.4. Doğrusal ve Doğrusal Olmayan Tamponlar 417

10.1.5. compact() Yordamı 420

10.1.6. duplicate() 422

10.1.7. slice() Yordamı 424

10.1.8. ByteOrder sınıfı 426

10.1.9. Nesne Dönüştürme 429

10.1.10. Salt Okunur Tamponlar 430

10.1.11. Tampon Nesneler ve Diziler 431

10.1.12. İşaretleme İşlemleri 432

10.2. Kanallar 433

10.2.1. FileChannel Sınıfı 434

10.3. Özet 441

10.4. Sorular 441



Bölüm 11. JAVA’DA İŞ PARÇACIKLARI (THREADS) 443
11.1. İş Parçacıklarının Başlatılması 448

11.2. Durumlar 450

11.3. Öncelik Sırası 451

11.4. İş Parçacıklarının Sonlandırılması 452

11.5. İş Parçacıklarının Denetimi 454

11.5.1. sleep( ) ve interrupt( ) Yordamları 454

11.5.2. yield( ) Yordamı 461

11.6. İş Parçacığı Yaşıyor mu? 463

11.7. Bekle Beni... join( ) Yordamı 465

11.8. İş Parçacıklarının Tasarımı 466

11.8.1. Thread Sınıfından Kalıtım 466

11.8.2. Runnable Arayüzü 467

11.9. Giriş/Çıkış ve İş Parçacıkları 469

11.10. Daemon ve User İş Parçacıklarının Arasındaki Fark 472

11.11. Paylaşılamayan Kaynak 474

11.11.1. Nesnenin Kilidi 476

11.11.2. synchronized Anahtar Kelimesi 477

11.11.3. wait(), notify() ve notifyAll() Yordamları 480

11.11.3.1. wait() Yordamı 480

11.11.3.2. notify() Yordamı 481

11.11.3.3. notifyAll() Yordamı 481

11.11.4. Problemin Çözümü 481

11.11.5. synchronize Anahtar Kelimesi Üzerine... 483

11.11.6. Sınıf Kilidi 488

11.11.7. Semafor 488

11.11.8. Birden Fazla Nesne Kilidini Kullanmak 491

11.12. Ölümcül Kilitlenme (deadlock) 494

11.13. İş Parçacıkları Arasındaki Veri Alış Verişi 497

11.13.1. PipedReader ve PipedWriter Sınıfları 500

11.14. Gruplar 501

11.15. Oynaklık 507

11.16. suspend( ) ve resume( ) Yordamları Neden Tedavülden Kalktı? 509

11.17. stop( ) Yordamı Neden Tedavülden Kalktı? 509

11.18. Özet 510

11.19. Sorular 510



Bölüm 12. NESNELER İÇİN TORBALAR 511
12.1. Diziler 511

12.2. Arrays Sınıfı 512

12.2.1. fill( ) Yordamı 513

12.2.2. equals( ) Yordamı 514

12.2.3. sort( ) Yordamı 515

12.2.4. binarySearch( ) Yordamı 517

12.3. Torba Sistemi 518

12.3.1. Collection Arayüzü 519

12.3.2. Ayrıntılı Şema 523

12.3.3. List Arayüzüne Erişen Sınıflar 524

12.3.3.1. ArrayList Sınıfı 524

12.3.4. Iterator Arayüzü 527

12.3.5. ListIterator Arayüzü 529

12.3.6. Acaba Torbaya Ne Koymuştum? 531

12.3.7. Garantili Torbalar 532

12.3.8. LinkedList Sınıfı 534

12.3.8.1. LinkedList Sınıfı Kullanılarak Yığın Yapısı Oluşturmak 535

12.3.8.2. LinkedList Sınıfı İle Kuyruk Yapısı Oluşturmak 536

12.3.9. Collections Sınıfı 537

12.3.10. Hangisi Daha Hızlı, ArrayList Sınıfı mı, LinkedList Sınıfı mı? 550

12.3.11. Set Arayüzü 553

12.3.11.1. HashSet Sınıfı 553

12.3.11.2. TreeSet Sınıfı 556

12.3.12. Map Arayüzü 558

12.3.12.1. HashMap Sınıfı 559

12.3.12.2. Hangisi Daha Hızlı, ArrayList Sınıfı mı, HashMap Sınıfı mı? 566

12.3.12.3 TreeMap Sınıfı 568

12.3.12.4. Hangisi Daha Hızlı, HashMap Sınıfı mı, TreeMap Sınıfı mı? 569

Genel Özet 571

12.3.13. Iterator Arayüzü ve Dikkat Edilmesi Gereken Hususlar 571

12.3.14. Zamandaş Torbalar 573

12.3.15. HashTable Sınıfı 577

12.3.16. Vector Sınıfı 578

12.4. Özet 579

12.5. Sorular 579



Bölüm 13. Java’da Ağ (NETWORK) programlama 581
13.1. Kullanıcı/Sunucu Nedir? 582

13.2. IP Adresi ve Port Kavramları 583

13.3. Sihirli Numara 127.0.0.1 585

13.4. IPv4 ve IPv6 Uyarlamaları 587

13.4.1. Ipv6’nın Adres Biçimi 587

13.4.2. Adres Gösterimi 588

13.5. Kullanıcı/Sunucu Uygulamaları 589

13.6. Bloke Bağlantılar 597

13.6.1. İş Parçacıkları İş Başında 599

13.6.2. Havuz 602

13.7. URL ve URLConnection Sınıfları 609

13.8. TCP ve UDP Protokolleri 611

13.9. Blokesiz Bağlantılar 612

13.9.1. Java 1.4’den Önce... 613

13.9.2. Java 1.4’den Sonra... 615

13.9.3. Kanal Arayüzü 615

13.9.4. Blokesiz Kanal Oluşturulması 616

13.9.5. Seçici Oluşturulması 616

13.10. Veritabanı Sunucularına Bağlantı 625

13.10.1. SQL 625

13.10.2. Java Veritabanı Bağlanılabilirliği – JDBC 626

13.10.3. MySQL 628

13.10.4. CLASSPATH Ayarları 628

13.10.5. İlk Bağlantı 628

13.10.6. SQL ve Java Uygulamaları 630

13.10.7. MUSTERİ Tablosuna Yeni Bir Kayıt Eklenmesi 635

13.10.8. MUSTERİ Tablosundaki Kayıtların Değiştirilmesi 636

13.10.9. MUSTERİ Tablosundaki Mevcut Kayıtların Silinmesi 637

13.11. Özet 638

13.12. Sorular 639

Bölüm 14. HATA YAKALAMANIN ÖTESİ... 641
14.1. Assertion Özelliği Nerede Kullanılır? 643

14.2. Assertion Özelliğini Kullanmak 647

- Birinci Yol 647

- İkinci Yol 648

14.3. Assertion ve Derleme 649

14.4. Assertion Özelliği Nasıl Kontrol Edilir? 650

14.5. Paket Denetimleri 652

14.5.1. Tüm Paketler İçin Assertion Özelliği Açık 655

14.5.2. Toplama İşlemlerinde Bir Hata Var Sanki... 655

14.5.3. Yalnızca com.kodcu.math.* Altındaki Tüm Sınıflar İçin Assertion

Özelliği Açılmak İstenirse... 656

14.5.4. Sıralamanın Önemi 657

14.6. Assertion Özelliği Açık mı? Kapalı mı? 658

14.7. AssertionError İstisnalarını Yakalamak 659

14.8. Assertion ve Başlangıç Değerlerinin Alınması 660

14.9. Ne Zaman ve Nerede? 662

14.9.1. Kuralların Açılımı 663

14.9.2. Assertion Özelliğinin Kullanılması Gereken Yerler 667

14.10. Özet 670

14.11. Sorular 670

KAYNAKLAR 671
DİZİN 683
 
Geri
Üst