Java int'ten String'e - Integer.toString(i) vs new Integer(i).toString()
Bazen java beni şaşırtıyor.
Yapmam gereken çok sayıda int başlatma işlemi var.
Gerçek fark nedir?
Integer.toString(i)
new Integer(i).toString()
419
3
Integer.toString
,Integer
sınıfındaki statik yöntemi çağırır. BirInteger
örneğine ihtiyaç duymaz.Eğer
new Integer(i)
çağırırsanız, int değerinizi kapsayan tam bir Java nesnesi olanInteger
türünde bir örnek oluşturursunuz. Daha sonratoString
yöntemini çağırarak kendisinin bir dize gösterimini döndürmesini istersiniz.Tek istediğiniz bir
int
yazdırmaksa, ilkini kullanırsınız çünkü daha hafiftir, daha hızlıdır ve fazladan bellek kullanmaz (döndürülen dize dışında).Bir tamsayı değerini temsil eden bir nesne istiyorsanız - örneğin bir koleksiyonun içine koymak için - ikincisini kullanırsınız, çünkü size çıplak bir
int
ile yapamayacağınız her türlü şeyi yapmak için tam teşekküllü bir nesne verir.new Integer(i).toString()
ilk olaraki
etrafında (gereksiz) bir sarmalayıcı nesne oluşturur (bu nesnenin kendisi de bir sarmalayıcı nesneInteger
olabilir).Gereksiz nesne oluşturmadığı için
Integer.toString(i)
tercih edilir.new Integer(i).toString();
Bu deyim Integer nesnesini oluşturur ve ardından Integer değerinin String gösterimini döndürmek için
toString(i)
yöntemlerini çağırır.Integer.toString(i);
Belirli int (tamsayı)** değerini temsil eden String nesnesini döndürür, ancak burada
toString(int)
birstatik
yöntemdir.Özet olarak, ilk durumda nesnelerin dize gösterimini döndürür, ikinci durumda ise tamsayının dize gösterimini döndürür.