Pure Java – 22 Literals

Merhaba Arkadaslar,
Bu yazimda Java da Literal konusuna deginecegiz. Java da literaller ;

  • Integer Literals
  • Floating-Point Literals
  • Boolean Literals
  • Character Literals
  • Literal Values For Strings

Integer Literals
Java da integer/tamsayi degerlerinin 3 farkli gosterimi vardir. decimal, octal ve hexadecimal literaller.Sirasiyla inceleyelim.

Decimal Literal
Decimal Literal her zaman kullandigimiz varsayilan gosterimdir,

int size=100;
int length=50;

Octal Literal
Octal (Sekizli) Literallerde 0 ve 7ye kadar olan rakamlar kullanilabilir.Octal literalleri gosterirken basina 0 eklemeyi unutmayalim. Ornegimizi inceleyelim

OctalTest.java

public class OctalTest {
	public static void main(String[] args) {

		int zero = 0;
		int one = 01;
		int six = 06;
		int seven = 07;
		int eight = 010;
		int nine = 011;
		//int compileError = 08;

		System.out.println(zero + "  " + one + "  " + six + " " + seven + " " + eight + " " + nine);
	}
}

Ornegimizi incelersek ,eight yani 8 degerini yazarken Octal/8lik sistemi kullandigimizin farkina varabiliriz. 08 seklinde bir gosterim derleme hatasina neden olur. Cunku  Octal sistemde 0 ve 7 kapali araliginda degerleri kullanabiliriz.

Hexadecimal Literal
Octal Literal de oldugu gibi burada 16lik sayi sistemine gore sayilar ifade edilmektedir.
Bildigimiz uzere 16lik sistemde 10-15 arasi sayilar su sekilde ifade edilmektedir.

10 a  11 b 12 c 13 d 14 e 15 f

HexTest.java

public class HexTest {
	public static void main(String[] args) {

		int a = 0x01;
		int b = 0X8abc;
		int c = 0xDead;
		System.out.println(a + " " + b + " " + c);
	}
}

Hex Decimal Literalleri ifade ederken sayimizin basina 0x veya 0X ekliyoruz. Burada hem x hem diger a,b,c karakterlerinde buyuk kucuk harf farkliligi yoktur.a veya A ayni anlami ifade eder.

Bu uc literal de int tipinde tanimlanir. Java da varsayilan tam sayı ; int tir. long turunde bir degisken tanimladigimizda bunu derleyiciye acikca belirtmemiz gerekmektedir. Bunu l veya L karakteri ile belirtebiliriz.

long d = 100l;
long e = 0234l;
long f = 0xFabL;

Binary Literal
Binary Literal’ler Java7 ile eklenmistir. 0b ya da 0B ile ifade edebiliriz.
Binary literal kullandigimizda sadece 0 ya da 1 kullanabiliriz.

public class BinaryLiteralTest {

	public static void main(String[] args) {
		int binaryLiteral = 0b11; //3
		int binaryLiteral2 = 0b1000; //8
		int binaryLiteral3 = 0B1001; //9
		System.out.println(binaryLiteral);
		System.out.println(binaryLiteral2);
		System.out.println(binaryLiteral3);
	}
}

Floating-Point Literals
Kayan Noktali Literaller, onluk sayilari kesirli bilesenleriyle gosterir. Java da , kayan noktali literaller varsayilan olarak double dir. float bir literal tanimlamak icin biraz once long literal icin yaptigimiz gibi bu durumu derleyiciye ozel olarak bildirmemiz gerekmektedir.

Bu bildirimi f veya F karakteri ile yapabiliriz.  Ek olarak hatirlayacagimiz gibi double bir degisken icin 64 bit yer gerekirken float bir degisken icin bu durum 32 bittir.

Bir diger detay olarak dilersek double literaller icin D veya d ekini kullanabiliriz. Kullanmasak da varsayilan olarak double literal olacaktir.

		// float g = 100.343; // derleme zamani hatasi alir
		float h = 100.343f;
		float i = 100.343F;

		double j = 13231.4334D; // D opsiyoneldir
		double k = 43243.254523d; // d opsiyoneldir
		double l = 2013;
		double m = 24.5;

Not; Araya virgul degil nokta koydugumuza dikkat edelim.

Boolean Literals
Bir mantiksal literal true veya false degerini alir. Java da true ve false degerlerinin sayisal bir karsiligi bulunmaz. C de 0 false diger sayilar true anlamina gelmekteydi , Java da boyle bir durum yoktur.

		boolean  b = true;
		boolean c = false;
		//boolean d = 1; // derleme zamani hatasi

Character Literals
Karakter Literaller Java da tek tirnak icerisinde ifade edilirler. Ayrica karakterin Unicode degerini yazip da ifade edebiliriz. Hatirlayacagimiz gibi Javada karakterler 16 bit unsigned/isaretsiz integer degerlerdir.

public class CharTest {
	public static void main(String[] args) {

		char a = 'a';
		char b = 100;
		char c = (char) 90000;
		char d = (char) -20;
		char e = '\'';
		char f = '\"';

		System.out.println(a + "  " + b + "  " + c + " " + d + " " + e + " " + f);
	}
}

a degiskenine tek tirnak ile bir karakter atamasinda bulunduk.
b degiskenine direkt olarak bir integer atamasinda bulunduk.
c ve d degiskenlerine bakacak olursak, burada bir cast islemi soz konusu neden peki ? Yukarida belirttigim gibi karakterler 16 bittir (maximum 65535) ve unsigned / isaretsiz yani negatif deger alamaz. Bu nedenle 90000 degeri siniri astigi icin cast islemine tabi tutulmalidir. Ayni sekilde -20 degeri de sinirin altinda kaldigi icin kast islemine tabi tutulmalidir.
e ve f degiskenlerinde \ kacis karakter yardimi ile tek tirnak ve cift tirnak karaterlerinin atamalarinda bulunduk.

Literal Values For Strings
Karakter Katari literalleri cift tirnak arasinda gosterilir. Bir string literali, String objesinin degerini temsil degerini/value of String object temsil etmektedir.

String s = " Levent";

Burada belirtmeden gecmemiz gerekir ki stringler primitive degildir, burada sadece literal kismi basitce anlatildi. Ilerleyen konularda String konusuna detaylica goz atacagiz.

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *