Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
132
Tıklama
0
Öne Çıkarma
veri tiplerinin ve String libraryde nerede tanımlanmış olduğu ?
D
9 yıl
Yüzbaşı
Konu Sahibi

buradahttp://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/java/ch03/class02.htm her obje bir bir sınıfa ait nesnedir diyor burayı anladım, burada dahttps://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/java/ch05/dataTypes.htm her veri tipi bir clastır diyor buraya kadar da anladım ama sormak istediğim String ifadesiyle == opetörünü kullanamıyoruz çünkü string standart bir veri tipi değil (Sanırsam objeymiş new operatörüyle de String ataması yapabiliyormuşuz ) ama normal veri tipleryle yanı yukardaki linkteki yazdığına göre veri tipi = class imiş direk new operatörü kullanmadan atama yapabiliyormuşuz, şimdi bu veri tipleri yani classlar nerede tanımlanmış ? Ve String objesi nerede tanımlanmış (bilidğim kadarıyla library de ama nerede bilmiyorum ) ? İşte benim görmek isteiğim bu tanımladığımız veri tiplerinin (int,double,float..) ve String objesinin nerede tanımlanmış olduğu.
Umarım derdimi tam anlatabilmişimdir

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



M
9 yıl
Yarbay

Normal veri tipi diye bir sey yok. Once terminolojiyi duzeltelim.
Primitive ve Class seklinde iki tane tip var.
Primitive olanlar, boolean,int,double,float,char vs.
Class olanlar da, Object class ' ini extend ediyorlar.
String bir Class ve ayni zamanda bir Object. equals() , hash() gibi metodlari var. Bu metodlar Object oldugu icin geliyorlar.
---

Class tanimlanan , o class'in ozelliklerini belirledigin bir alandan ibaret. Instance olusturarak, bu class tipindeki objeden yeni bir tane olusturursun.
== operatoru , sagindaki ve solundaki instance lar birbirinin aynisi mi diye kontrol ediyor.
---

rt.jar dosyasinda, java.lang paketinde String.class tanimini gorebilirsin. Bunu decompile edip tanimina ulasabilirsin.
primitive olanlar .jar ile biten library lerde degiller.
Java static typed bir dil, kullanilacak her class'in onceden tanimlanmis olmasi gerekiyor. primitive type lar da JVM de native kod ile tanimlaniyor, yani dedigim gibi String orneginde oldugu sekilde bunlari IDE den goremezsin.

Biraz daha derin cevabi, dil tanimi tapilirken o dile spesifik token'lar belirlenir. Bunu compile ederken kullanir compiler. Primitif tipler, javac icerisinde belirlenmis token lar aslinda. O yuzden modern ide'lerde int ya da for yazdiginda bunlari birer "token" olarak algilar ve farkli renk koduyla gosterir. Class lari ise farkli gosterir. Cunku class isimlerini sen belirlersin ve Java spesifik token degiller.

Library lere bakarsan arada "native" keywordu ile tanimlamalar gorursun. Iste bunlar JDK tarafinda native kod ile ( C ya da C++ ile genelde ) yazilmis diger programlari cagirirlar. Primitif tanimlari yaptiginda ya da bunlarla islemler yaptiginda da iste yine bu native kod calistiriliyor.

Ama String ile ilgili her seyi String.class dosyasinda bulabilirsin, java.lang package inin icerisinde.

String immutable bir obje, yani bir kere olusturdugun zaman degistiremezsin.
String a = "a";
a = "abc";
String b = "abc";

Yukaridaki gibi yazdiginda 3 tane String olusturabilirsin memory de. Ilk olusturdugunu "abc" ye cevirmezsin. Ikinci "abc" objesi ilk "abc" den farkli bir obje olabilir. Buna calisirken Runtime karar verir. O yuzden == ayni obje kontrolu yaparken garanti sunmaz sana. Masaustunde == denediginde true doner, Android 'in Dalvik JVM inde calisirken donmez. Bu yuzden equals() kullaniyoruz.


Bu mesaja 1 cevap geldi.
D
9 yıl
Yüzbaşı
Konu Sahibi

çok sağ olasın :) , söylediklerinin bazılarını anlamadım onlarda zamanla oturacak umarım


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Mephalay
M
9 yıl
Yarbay

Rica edeirm, o benim konuyu gereksiz detaylandirmamdan kaynaklaniyordur muhtemelen : )




Bu mesajda bahsedilenler: @deniz caliskan
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.