07 Eylül
Selam gençler;
Java'da veri tiplerine değineceğiz. Veri tipleri 2'ye ayrılır primitive (ilkel) ve referans veri tipleri; aşağıya 15 dakika uğraşıp efsanevi Leonardo da Vinci'ye taş çıkaran tabloyu bırakıyorum.
Java da 8 tane built-in primitive types vardır. Bunlar;
byte | 1 byte | -128'den 127'ye | 0 |
short | 2 byte | -32.768'den 32.767'ye | 0 |
int | 4 byte | -2,147,483,648'den 2,147,483,647'ye | 0 |
long | 8 byte |
-9,223,372,036,854,775,808'den 9,223,372,036,854,775,807'ye |
0 |
float | 4 byte | ,'den sonra 7 rakama kadar destek | 0.0F yada 0.0f |
double | 8 byte | ,'den sonra 16 rakama kadar destek | 0.0d yada 0.0D |
char | 2 byte | ASCII değerler 0'dan 255'e kadar | '\u0000' |
boolean | 1 byte | true yada false | false |
Şimdi sırasıyla inceleyelim.
boolean benimSartimDogruMu = true;
boolean yanlisiTut = false;
byte kucukDeger = 23;
byte buyukDeger = -99;
short mint = 25000;
short maxt = -20000;
int sayim = 14;
long longDegerim = 120321321L;
long longDegerimKucukHarf = 120321321l;
float sayim = 44.5f;
float sayim2 = -55.4F;
eğer ki sonuna 'f' yada 'F' bırakılmazsa double olarak algılandığından compiler hata verecektir.
double d = 44.4D;
double d2 = 25.8d;
double d3 = 99.9;
normalde double kullanılırken sonuna herhangi bir harf 'd' yada 'D' getirmeyiz zaten default olarak da kayan sayı kullandığımızda Java onu double veri tipi olarak algılayacaktır.
char myChar = 65; // Unicode tablosunda 65 'A' yı temsil eder.
System.out.println("myChar : "+myChar); // Çıktısı "myChar : A" yazar.
char myLetter = 'A';
System.out.println("myLetter : "+myLetter);
System.out.println("myLetter'in int değeri : "+(int)myLetter);
https://en.wikipedia.org/wiki/List_of_Unicode_characters
Birkaç Ufak Not : Kod içerisinde eğer ki rakam yada bir sayı varsa bu "literal" olarak adlandırılır. Varsayılan olarak, Java siz eğer ki bir literal tanımlıyorsanız bunu int olarak kabul eder. O yüzden dedik ya numeric bir sayı yani virgül olmayan sayı tanımlarsanız bunu Java varsayılan olarak int veri tipi olarak kabul edecek.
Java 7'de eklenen güzel özellikte şudur, eğer ki sayı çok uzun ise bunu daha okunaklı yapabilmek için sayıyı yazarken (_) kullanabiliriz.
int million = 1000000;
int million_2 = 1_000_000;
// _ (underscore) nerelerde kullanılamaz ?
double baslangictaKullanilamaz = _1000.00; // Hata verir.
double sondaKullanilamaz = 1000.00_; // Hata verir.
double noktaIleKullanilamaz = 1000_.00; // Hata verir.
double noktaIleKullanilamaz2 = 1000._00; // Hata verir.
double sinirBozucuAmaCalisir = 1_00_0.0_0; // Çalışır.
Bir nesneye atıfta bulunan veri tipine biz referans veri tipi diyoruz (bir sınıfın instancesi-örneği-nesnesi). Referans veri tipi bir nesneye atıfta bulunur yani primitive tiplerden daha complex verileri tutarlar. Örneğin :
java.util.Date today;
String greeting;
"today" Date tipinin bir referansıdır ve sadece bir Date nesnesini işaret edebilir.
"greeting" bir String tipinin referansıdır ve sadece String nesnesini işaret edebilir.
today = new Date();
greeting = "How are you?";
Unutulmamalıdır ki bizim değişkenlerde nesnelerimizin ismi yoktu yani String yada Date isimli nesnelerimizin ismi yoktur bunlar sadece bunlara uygun olan referanslar (today,greeting) tarafından erişilir.
Bir değeri bir referansa atamak için 2 yolu vardır :
int value = null; // Derlemez
String s = null; // Derler.