Java'ya Giriş ve İlk Program
Giriş
Öğrenme Çıktıları
Programı veri ve işlemler bütünü olarak açıklamak.
Kaynak kod, bytecode ve JVM ilişkisini kurmak.
Java dosyasını yazıp derlemek ve çalıştırmak.
Söz dizimi, çalışma zamanı ve mantık hatalarını ayırt etmek.
Temeller
Program Nedir?
- Bilgisayarın belirli bir görevi yerine getirmesi için yürüttüğü komutlar bütünüdür.
- Girdi alabilir, veriyi işler, durum saklar (bellekteki değerler) ve çıktı üretir.
- Davranışı dilin kuralları ve yazılan algoritma belirler.
- Örnek: iki notun ortalaması → girdi 70, 90; çıktı 80.
Temeller
Programlama Dilinin Yönleri
- Söz dizimi geçerli biçimi, anlam çalıştırıldığında ne olacağını tanımlar.
- Tip sistemi işlemleri sınırlar; çalışma modeli belleğin ve komutların nasıl yürütüldüğünü belirler.
- Derleyici söz dizimini ve tipleri çalıştırmadan önce denetler.
Kaynak Kod
Düz Metin Kaynak Dosyası
- .java dosyası düz metindir; Not Defteri, VS Code veya IDE ile açılabilir.
- Sürüm kontrol sistemleri satır değişikliklerini izleyebilir.
- Karakter kodlaması (UTF-8), satır sonu ve dosya adı tutarlı olmalıdır: Türkçe karakterler yanlış kodlamada bozulur.
Kaynak Kod
Programlama Araçları
Kaynak kodu yazma.
Proje, tamamlama, derleme ve hata ayıklama.
Kaynak kodu bytecode'a derleme.
Sınıfı JVM üzerinde çalıştırma.
API belgesi üretme.
Değişiklik geçmişi.
Java
Java'nın Doğuşu ve Sürümleri
- James Gosling ve ekibi 1991'de Sun Microsystems'te başladı; dil 1995'te Java adıyla yayımlandı. 2010'dan beri Oracle geliştiriyor, açık kaynak kodu OpenJDK'dadır.
- Tasarım hedefi bir kez yaz, her yerde çalıştır: aynı bytecode her platformun JVM'sinde çalışır.
- Diğer özellikleri: nesne yönelimli, güçlü tip denetimi, otomatik bellek yönetimi (çöp toplama) ve geniş sınıf kütüphanesi.
- 2018'den beri her altı ayda bir yeni sürüm çıkar; LTS (uzun süreli destek) sürümleri yıllarca güncelleme aldığı için kurumlarda ve derslerde tercih edilir.
Java
Java Nerelerde Kullanılır?
Bankacılık, e-ticaret ve kamu sistemlerinin arka ucu; Spring ve Jakarta EE çatıları.
Uygulamalar Java ya da Kotlin ile yazılır; bytecode, telefondaki Android çalışma ortamına (ART) uygun biçime çevrilir.
Hadoop ve Kafka gibi veri işleme araçları JVM üzerinde çalışır.
IntelliJ IDEA, Eclipse ve NetBeans gibi IDE'lerin kendisi de Java ile yazılmıştır.
SIM kartlar ve banka kartlarındaki küçük programlar Java Card ile çalışır.
Minecraft'ın Java Sürümü; masaüstü oyun ve simülasyonlar.
JVM yalnızca Java'yı değil, aynı bytecode'a derlenen Kotlin, Scala ve Groovy gibi dilleri de çalıştırır.
Java
JDK, JRE ve JVM
- JVM (Java Sanal Makinesi) bytecode'u yürüten sanal makinedir.
- JRE = JVM + sınıf kütüphanesi: programı çalıştırmak için gerekenler.
- JDK = JRE + geliştirme araçları (javac, jar, javadoc…). Geliştirici JDK kurar.
- Oracle, Java 11'den beri ayrı JRE sunmaz; geliştirici JDK kurar (bazı dağıtıcılar JRE'yi ayrıca sunar).
Java
İlk Java Programı
her yerden erişilebilir
nesne oluşturmadan çağrılır
değer döndürmez
komut satırı argümanları
Java
main Metodunun İmzası
| Yazılan (hepsi derlenir) | java A ile çalıştırınca |
|---|---|
public static void main(String[] args) | çalışır |
public static void Main(String[] args) | Error: Main method not found in class A, … |
public void main(String[] args) | Error: Main method is not static in class A, … |
public static int main(String[] args) | Error: Main method must return a value of type void in class A, … |
static void main(String[] args) | Error: Main method not found in class A, … |
- Derleyici için hepsi sıradan bir metottur; bu yüzden hata derlemede değil, başlatırken çıkar. JVM giriş noktasını adı, parametresi ve dönüş tipiyle arar.
- Parametre adı serbesttir (
String[] a);String args[]yazımı da geçerlidir.mainküçük harfle yazılır: Java büyük-küçük harfe duyarlıdır. - İletiler JDK 21 ile alınmıştır. Java 25'ten itibaren public ya da static olmayan
mainda başlatılabilir; bu derste klasik imza kullanılır.
Java · Kodu adım adım çalıştır
Kod İzleme: Merhaba
java Merhaba komutuyla JVM başlar ve Merhaba sınıfını (Merhaba.class) belleğe yükler.
JVM main metodunu çağırır: yığında main çerçevesi açılır. Komut satırında argüman verilmediği için args boştur.
Deyim çalışır: "Merhaba" metni System.out.println metoduna gönderilir.
println metni yazar ve satır sonu ekler: imleç alt satıra geçer. Metot biter, main'e dönülür.
main bloğunun } karakterine gelindi: main biter, çerçevesi yığından kaldırılır.
Çalışacak başka kod yok: JVM kapanır, program sonlanır. Toplam 1 deyim çalıştı, 1 satır çıktı üretildi.
public class Merhaba { public static void main(String[] args) { System.out.println("Merhaba"); } }
Java · Kodu adım adım çalıştır
Kod İzleme: Komut Satırı Argümanları
Sınıf adından sonra yazılan sözcükler komut satırı argümanlarıdır. JVM bunları bir String dizisine koyup main'e verir.
args.length dizideki argüman sayısıdır: 2.
İlk argüman args[0]'dadır (indis 0'dan başlar): Selam Ali.
args[1] → Veli. main biter, program sonlanır.
İkinci çalıştırma: aynı .class, bu kez tek argüman. Kod değişmedi, yeniden derlemek gerekmez.
args.length = 1.
args[0] var: Selam Ali.
args[1] yok: JVM ArrayIndexOutOfBoundsException fırlatır ve program durur. Derleyici bunu bilemezdi; hata çalışırken, girdiye bağlı olarak çıktı.
public class Selamla { public static void main(String[] args) { System.out.println(args.length); System.out.println("Selam " + args[0]); System.out.println("Selam " + args[1]); } }
Java · Kodu adım adım çalıştır
Kod İzleme: print ve println
JVM main metodunu çağırır; konsol henüz boş, imleç 1. satırın başında.
print "Merhaba " yazar ama satır sonu eklemez: imleç aynı satırda, boşluğun hemen arkasında kalır.
println "Dünya" yazar ve satır sonu ekler: sonraki çıktı alt satırdan başlar.
println "Java" yazar ve satır sonu ekler: sonraki çıktı alt satırdan başlar.
main biter; konsolda 2 satır var: 3 çağrı yapıldı ama yalnızca println satırı bitirdi.
public class Selam { public static void main(String[] args) { System.out.print("Merhaba "); System.out.println("Dünya"); System.out.println("Java"); } }
Java
Kaçış Dizileri
| Dizi | Anlamı | Örnek | Çıktı |
|---|---|---|---|
\n | yeni satır | "A\nB" | A, alt satırda B |
\t | sekme (tab) | "Ad\tNot" | Ad Not |
\" | çift tırnak | "\"Java\"" | "Java" |
\\ | ters eğik çizgi | "C:\\ders" | C:\ders |
\' | tek tırnak (char içinde) | '\'' | ' |
- Dizgi içinde yazılamayan veya özel anlamı olan karakterler
\ile başlayan dizilerle yazılır. - Tırnak içindeki
"metni bitirir; metnin parçası olacaksa\"yazılır.
Java · Kodu adım adım çalıştır
Kod İzleme: Kaçış Dizileri
main başlar; konsol boş.
\t imleci bir sonraki sekme durağına (9. sütun) taşır.
Sekme sayesinde 85, Not başlığının altına hizalanır: basit tablo.
\" metni bitirmeden çift tırnak yazar.
Tek print iki satır üretti: \n satır sonu karakteridir; println de satır sonu ekler (Windows'ta \r\n).
public class Kacis { public static void main(String[] args) { System.out.println("Ad\tNot"); System.out.println("Ali\t85"); System.out.println("\"Java\" dili"); System.out.print("Satır 1\nSatır 2\n"); } }
Java
Kaçış Dizisi Tuzakları
| Deyim | Sonuç |
|---|---|
System.out.println("C:\yeni"); | derleme hatası: illegal escape character; \y diye bir kaçış dizisi yok |
System.out.println("C:\new"); | derlenir ama iki satır yazar: C: ve ew |
System.out.println("C:\\yeni"); | C:\yeni: ters eğik çizgi iki kez yazılır |
System.out.println("Ali'nin notu"); | Ali'nin notu: dizgi içinde tek tırnak kaçışsız yazılır |
System.out.println("\u00C7ay"); | Çay: \u ve dört onaltılık basamak bir Unicode karakteri verir |
Windows dosya yolu yazarken en sık yapılan hata tek ters eğik çizgidir; Java dosya işlemlerinde "C:/yeni" biçimi de kabul edilir.
Java
Dizgi Birleştirme: + İki İş Yapar
- İki sayı arasında
+toplar; işlenenlerden biri String ise birleştirir: sayı metne çevrilip sona eklenir. - Aynı önceliktekiler soldan sağa değerlendirilir;
*ve/her zaman+'dan önce yapılır.
| İfade | Çıktı | Neden? |
|---|---|---|
40 + 45 + " puan" | 85 puan | önce iki int toplanır, sonra metin eklenir |
"Puan: " + 40 + 45 | Puan: 4045 | en soldaki String; ikisi de metne eklenir |
"Puan: " + (40 + 45) | Puan: 85 | parantez önce hesaplanır |
"Ort: " + 85 / 2 | Ort: 42 | / önce; iki int bölününce kesir atılır |
Kaynak Kod
Java Dosyasının Yapısı
package okul; import java.util.Scanner; public class Program { public static void main(String[] args) { System.out.println("Merhaba"); } }
- package ve import bildirimleri sınıftan önce gelir; public sınıf adı dosya adıyla eşleşir.
package okul;→ dosyaokul/klasöründe durur; çalıştırma:java okul.Program.
Çalıştırma
Derleme Hattı Adım Adım
1. Yaz: kaynak kod Merhaba.java adıyla kaydedilir. Dosya adı public sınıf adıyla aynı olmalıdır.
2. Derle: javac (JDK'daki derleyici) tüm dosyayı çalıştırmadan önce denetler.
3. Bytecode: derleme başarılıysa aynı klasörde Merhaba.class oluşur. Bu dosya Windows, Linux ve macOS'ta aynıdır.
4. Çalıştır: java Merhaba JVM'yi başlatır. Sınıf adı yazılır; .class uzantısı yazılmaz.
5. Çıktı: konsolda Merhaba görünür. Değişiklik yaparsanız yeniden derlemeniz gerekir.
Hata olursa: javac satır numarasıyla hata bildirir ve .class üretmez. Önce derleme hataları giderilir.
Çalıştırma
JDK Kurulumu ve Komutlar
| Komut | Ne yapar? |
|---|---|
java -version | kurulu Java sürümünü gösterir |
javac -version | derleyici sürümünü gösterir (javac yalnız JDK içindedir) |
javac Merhaba.java | derler: Merhaba.class üretir |
java Merhaba | çalıştırır (uzantı yazılmaz) |
java Merhaba.java | Java 11+: derle ve çalıştır tek adımda, .class bırakmaz |
Komutlar bulunamıyorsa JDK'nın bin klasörünü PATH ortam değişkenine ekle. JAVA_HOME JDK klasörünü gösterir; araçlar bunu kullanır.
Derlerken javac -encoding UTF-8 Merhaba.java. Çıktıda harfler bozuksa konsolda önce chcp 65001 çalıştır.
Çalıştırma · Komutları adım adım çalıştır
Konsol Oturumu: Derle, Değiştir, Yeniden Derle
Derleme başarılı olduğunda javac hiçbir şey yazmaz; sessizce Merhaba.class oluşur.
JVM Merhaba.class'ı yükler ve çalıştırır.
Kaynak düzenlendi ve kaydedildi. Ama .class dosyası kendiliğinden güncellenmez.
Çıktı hâlâ Merhaba: java komutu kaynağa bakmaz, yalnızca .class'taki bytecode'u çalıştırır.
Yeniden derleme .class dosyasını yeniler.
Değişiklik artık görünüyor: Selam.
java'ya dosya adı verildi: JVM "Merhaba.class" adlı bir sınıf arar, bulamaz. Uzantı yazılmaz.
> javac Merhaba.java
> java Merhaba
(düzenleyicide "Merhaba" → "Selam", kaydet)
> java Merhaba
> javac Merhaba.java
> java Merhaba
> java Merhaba.classÇalıştırma
IDE ile Çalışmak
- ▶ Çalıştır düğmesi arka planda derleme ve çalıştırma adımlarını yapar; değiştirilen dosya önce yeniden derlenir, eski .class sorunu yaşanmaz.
- Derleme hataları daha yazarken kırmızı alt çizgiyle işaretlenir; imleç üzerine gelince derleyicinin iletisi görünür.
- Kod tamamlama, otomatik girinti, yeniden adlandırma ve kesme noktalı hata ayıklayıcı sunar. Yaygın Java IDE'leri: IntelliJ IDEA, Eclipse, NetBeans; VS Code Java eklentileriyle.
- IDE kolaylık sağlar, ama arka planda olanı bilmek IDE'nin olmadığı ortamlarda (sunucu, uzak bağlantı) hata iletisini anlamayı sağlar.
Çalıştırma
Bytecode ve JVM
- Derleyici işlemciye özel makine kodu yerine bytecode üretir.
- Her platformun kendi JVM'si bytecode'u yorumlar; sık çalışan kısımları JIT ile o işlemcinin makine koduna çevirir.
- Sınıf yükleme, doğrulama ve bellek yönetimi (çöp toplama) çalışma ortamının parçalarıdır.
Çalıştırma
Bytecode'un İçi: javap
> javap -c Merhaba ... public static void main(java.lang.String[]); Code: 0: getstatic // System.out 3: ldc // "Merhaba" 5: invokevirtual // println 8: return
javap sabit havuzu göstergelerini de yazar; burada kısaltıldı.
javap -cJDK ile gelir; .class dosyasındaki komutları okunur biçimde listeler.- getstatic System.out nesnesini, ldc "Merhaba" sabitini işlenen yığınına koyar.
- invokevirtual ikisini yığından alıp println'i çağırır; return main'i bitirir.
- Her komutun işlem kodu bir bayttır; "bytecode" adı buradan gelir. Soldaki sayılar komutun bayt konumudur.
Çalıştırma · Kodu adım adım çalıştır
Kod İzleme: JVM Bytecode'u Yürütüyor
Kaynaktaki dört satır javap -c ile görülen 12 komuta derlendi. iconst_3 yığına 3 koyar, istore_1 onu alıp 1 numaralı yerel değişkene (a) yazar.
Aynı çift b için: 4 yığına, oradan 2 numaralı yuvaya.
iload_1 a'nın değerini yığına kopyalar: [3].
iload_2: [3, 4]. Toplanacak iki değer yığının tepesinde.
iadd üstteki iki değeri alır, toplar ve sonucu geri koyar: [7].
istore_3: 7 yığından alınır, c'ye yazılır. Yığın yeniden boş.
getstatic System.out nesnesinin başvurusunu yığına koyar.
iload_3: yazdırılacak değer (7) de yığında.
invokevirtual iki değeri yığından alır ve println(int)'i çağırır: konsola 7 yazılır.
return: main biter, çerçeve kaldırılır. Yerel değişkenler ve işlenen yığını çerçeveyle birlikte yok olur.
0: iconst_3 1: istore_1 2: iconst_4 3: istore_2 4: iload_1 5: iload_2 6: iadd 7: istore_3 8: getstatic // System.out 11: iload_3 12: invokevirtual // println(int) 15: return
Dil Yapısı
Temel Programlama Unsurları
- Derleyici kodu önce belirteçlere (token) ayırır: anahtar sözcük, tanımlayıcı, sabit değer, işleç, ayırıcı.
- Java büyük-küçük harfe duyarlıdır:
sayiveSayifarklı adlardır. - Deyimler çoğunlukla noktalı virgülle biter; bloklar süslü parantezle çevrilir.
Dil Yapısı
Boşluk, Girinti ve Süslü Parantez
public class Tek { public static void main(String[] args) { System.out.println("Merhaba"); } }
public class Tek { public static void main(String[] args) { System.out.println("Merhaba"); } }
- İki program aynı bytecode'a derlenir: derleyici için boşluk, sekme ve satır sonu yalnızca belirteçleri birbirinden ayırır.
x=1;ilex = 1;aynıdır, amapublicclasstek bir sözcük sayılır. - Girinti blokların iç içeliğini okuyana gösterir: her yeni blok 4 boşluk içeriden başlar, kapanan
}açtığı satırın hizasına döner. - Java geleneğinde açılış
{satırın sonunda durur. Dizgi içindeki boşluklar ise metnin parçasıdır:"Merhaba "ile"Merhaba"farklıdır.
Dil Yapısı
İfadeler ve Deyimler
- İfade bir değer üretir:
2 + 3→ 5,sayi > 0→ true. - Deyim bir işlemi tamamlar:
toplam = 5;veyaSystem.out.println(toplam); - Blok, süslü parantez içindeki deyimleri tek yapı olarak gruplar.
- Bir deyimin içinde bir veya daha çok ifade bulunabilir.
Dil Yapısı · Kodu adım adım çalıştır
İfade, Deyim ve Blok Adım Adım
fiyat için bellekte int kutusu ayrılır ve 120 yazılır.
adet kutusu oluşur: 3.
Önce sağdaki ifade değerlendirilir: fiyat * adet → 120 * 3 → 360.
Üretilen değer toplam kutusuna atanır: toplam = 360.
Koşul ifadesi: toplam > 300 → 360 > 300 → true. Doğru olduğu için bloğa girilir.
Blok içindeki deyim çalışır: konsola İndirim yazılır.
Blok biter. adet = 2 olsaydı toplam 240 olur, koşul false olur ve blok hiç çalışmazdı.
int fiyat = 120; // tanımlama deyimi int adet = 3; // tanımlama deyimi int toplam = fiyat * adet; // ifade + atama if (toplam > 300) { // koşul + blok System.out.println("İndirim"); }
Kaynak Kod
Açıklamalar
//satır sonuna kadar açıklamadır./* ... */birden fazla satırı kapsar./** ... */Javadoc (API belgesi) açıklamasıdır.- Derleyici açıklamaları atlar; bytecode'a girmezler.
- Açıklama kodun ne yaptığını tekrarlamak yerine nedenini açıklamalıdır.
/** Merhaba programı (Javadoc). */ public class Merhaba { /* Birden fazla satıra yayılan açıklama */ public static void main(String[] args) { // selamı yaz System.out.println("Merhaba"); } }
Kaynak Kod
Açıklama Tuzakları
| Kod | Ne olur? |
|---|---|
/* dış /* iç */ kalan */ | derleme hatası: illegal start of expression. Açıklama ilk */'da biter; kalan */ kod sanılır. |
System.out.println("a // b"); | a // b yazılır: tırnak içindeki // açıklama değil, metnin parçasıdır. |
// System.out.println(x); | satır geçici olarak devre dışı kalır; IDE'lerde Ctrl+/ seçili satırları bu biçimde açıklamaya çevirir. |
double fiyat = net * 1.20; // KDV %18 | derlenir, ama açıklama kodla çelişiyor: güncellenmemiş açıklama okuyanı yanıltır. |
- İçinde
/* */bulunan bir bölümü kapatmak için satırları tek tek//ile açıklama yapmak daha güvenlidir. - Açıklama ile kod çeliştiğinde derleyici kodu çalıştırır; doğru olan her zaman koddur.
Temeller
Hata Türleri
| Hata | Ne zaman? | Örnek |
|---|---|---|
| Söz dizimi | Derleme sırasında | Eksik noktalı virgül |
| Tip | Derleme sırasında | Metni sayıya atama |
| Çalışma zamanı | Program çalışırken | Sıfıra bölme |
| Mantık | Program çalışır ama sonuç yanlıştır | Yanlış koşul |
Temeller · Adım adım
Hata Türleri Örneklerle
Söz dizimi hatası
public class Hata1 { public static void main(String[] args) { System.out.println("Merhaba") } }
Hata1.java:3: error: ';' expected
System.out.println("Merhaba")
^
1 errorDerleyici kuralı bozulan yeri satır numarasıyla gösterir; .class üretilmez. Düzeltme: satır sonuna ; ekle.
Tip hatası
public class Hata2 { public static void main(String[] args) { int sayi = "42"; } }
Hata2.java:3: error: incompatible types: String cannot be converted to int
int sayi = "42";
^
1 errorDizgi (String) int kutusuna konamaz. Tipler derleme sırasında denetlenir. Düzeltme: int sayi = 42;
Çalışma zamanı hatası
public class Hata3 { public static void main(String[] args) { int a = 10, b = 0; System.out.println(a / b); } }
Exception in thread "main" java.lang.ArithmeticException: / by zero at Hata3.main(Hata3.java:4)
Kod derlenir, ancak çalışırken tam sayı sıfıra bölünür: JVM bir istisna fırlatır ve program durur.
Mantık hatası
public class Hata4 { public static void main(String[] args) { int a = 70, b = 90; System.out.println(a + b / 2); } }
115
Hata iletisi yok, ama sonuç yanlış: beklenen 80. / önce yapılır: 70 + 45. Düzeltme: (a + b) / 2.
Temeller · Gerçek javac / java iletileri
Sık Derleme Hataları
| Hata | Gerçek ileti | Çözüm |
|---|---|---|
| Noktalı virgül yok | Merhaba.java:3: error: ';' expected | önceki deyimin sonuna ; ekle |
| Metot adı yanlış ( System.out.printn) | error: cannot find symbolsymbol: method printn(String)location: variable out of type PrintStream | adı println yap |
| Küçük harf ( system.out) | error: package system does not exist | System büyük S ile yazılır |
| Ad ile dosya uyuşmuyor | error: class Selam is public, should be declared in a file named Selam.java | dosya adı = public sınıf adı |
| Yanlış çalıştırma ( java Selam) | Error: Could not find or load main class Selam | .class yok ya da ad/konum yanlış; uzantı yazma |
İletiler JDK 21 ile alınmıştır; sürüme göre ek satırlar (ör. Caused by: ClassNotFoundException) çıkabilir. Her zaman ilk hatadan başla.
Temeller
Hata İletisini Okumak
- javac iletisi dosya:satır: error: açıklama biçimindedir; altında sorunlu kaynak satırı ve hatanın fark edildiği sütunu gösteren ^ işareti yer alır.
- ^ her zaman hatanın kendisini değil, derleyicinin onu fark ettiği yeri gösterir: eksik
;satırın sonunda, eksik}ise dosyanın sonunda (reached end of file while parsing) bildirilir. - Çalışma zamanı hatasında ilk satır istisnanın türünü ve ayrıntısını, at ile başlayan yığın izi satırları hatanın oluştuğu metodu ve satırı verir.
Temeller · Kodu adım adım düzelt
Kod İzleme: Hataları Sırayla Düzeltme
İlk derleme: yalnız bir hata bildirilir. javac söz dizimi bozuk olduğu sürece anlam denetimine geçmez; 4. satırdaki yanlış henüz görünmez.
İletinin gösterdiği yer düzeltilir: satır sonuna ; eklenir ve dosya kaydedilir.
Yeniden derleme: söz dizimi artık doğru, anlam denetimi çalışır ve printn adlı metodu bulamaz.
symbol: satırı bulunamayan adı söyler: metot adı println olarak düzeltilir.
Üçüncü derleme sessizce başarılı olur, Not.class oluşur ve program çalışır. Hata sayısı bir düzeltmeden sonra azalmayabilir, artabilir de: her zaman ilk hatadan başlanır.
public class Not { public static void main(String[] args) { int puan = 85 System.out.printn("Puan: " + puan); } }
Tasarım
Program Bir Tariftir
- Her adımın ön koşulu ve ürettiği değer belirlenmelidir.
- Büyük tarifler alt görevlere ayrılır (Java'da bunlar ileride metot olacak).
Tasarım
Kodlamadan Önce
- Örnek girdi ve beklenen çıktıyı yazın.
- Çözümü doğal dil veya sözde kodla adımlara ayırın.
- Sınır durumlarını ve hata davranışını belirleyin.
- Ardından adımları Java yapılarına dönüştürün.
| Örnek girdi | Beklenen çıktı | Neden? |
|---|---|---|
| 70, 90 | 80 | olağan durum |
| 0, 0 | 0 | alt sınır |
| 101, 50 | hata iletisi | geçersiz girdi |
Özet
Bölüm Özeti
- Program, bilgisayarın bir görevi yerine getirmek için yürüttüğü komutlar bütünüdür.
- Java kaynak dosyası javac ile bytecode'a derlenir ve JVM üzerinde çalışır.
- public sınıf adı dosya adıyla eşleşir; main programın giriş noktasıdır.
- İfadeler değer üretir, deyimler işlemi tamamlar, bloklar deyimleri gruplar.
- Kodlamadan önce örnek girdi, beklenen çıktı ve sınır durumları belirlenir.
Özet
Kontrol Soruları
- JDK, bytecode ve JVM arasındaki ilişki nedir?
- Merhaba.java dosyası hangi komutlarla derlenip çalıştırılır?
- main metodunun görevi nedir?
- İfade ile deyim arasındaki fark nedir?
- Söz dizimi hatası ile mantık hatası nasıl ayrılır?
- Kaynak kod değiştirilip yeniden derlenmezse
javakomutu neyi çalıştırır? "Puan: " + 40 + 45ifadesi nedenPuan: 4045verir?- Komut satırı argümanları programa nasıl ulaşır?
Özet
Alıştırmalar
- Adınızı, bölümünüzü ve öğrenci numaranızı üç ayrı satırda yazdıran
Kimlikprogramını yazın, derleyin, çalıştırın. - Aynı çıktıyı tek bir
printlnve\nkullanarak üretin. \tile üç satırlık bir ders–kredi tablosu yazdırın.System.out.println("Merhaba")satırındaki;işaretini silip derleyin; hata iletisinin satır numarasını ve ^ işaretini yorumlayın.- Sınıf adını
Merhaba, dosya adınımerhaba.javayapıp derleyin. Ne olur, neden? System.out.println(5 + 3);ileSystem.out.println("5 + 3");çıktılarını tahmin edin; çalıştırarak doğrulayın.
Özet
Kaynaklar
- Deitel ve Deitel, Java: How to Program, Early Objects, 11. baskı, Pearson, 2018.
- Liang, Introduction to Java Programming and Data Structures, 13. baskı, Pearson, 2024.
- Oracle, The Java Tutorials: A Closer Look at the "Hello World!" Application.
- Oracle, The Java Language Specification, Java SE 21 Edition.
- Sedgewick ve Wayne, Computer Science: An Interdisciplinary Approach, Addison-Wesley, 2016: 1.1 Your First Program.
- Downey ve Mayfield, Think Java, 2. baskı, O'Reilly, 2019 (ücretsiz çevrim içi sürüm).