Java int - String - Integer.toString (i) vs yeni Integer (i) .toString ()

Bəzən java məni bulmacalar.
İnt intizamının böyük bir miqdarı var.

Həqiqi fərq nədir?

  • Integer.toString(i)
  • new Integer(i).toString()
376
14 окт. 14 aylıq marcolopes təyin . 2010-10-14 08:02 '10 at 8:02 2010-10-14 08:02
@ 11 cavab

Integer.toString , Integer sinifində statik bir üsul çağırır. Integer nümunəsinə ehtiyac yoxdur.

new Integer(i) çağırırsanız, toString dəyərini əhatə edən tam Java obyekti olan Integer tipli bir nümunə yaradırsınız. Sonra toString metodunu özündən bir simli təqdimatını qaytarmasını xahiş etmək üçün toString .

int yazın istəyirsinizsə, daha asan, daha sürətli və əlavə yaddaş istifadə etməyin (qaytarılmış simli istisna olmaqla), çünki ilk istifadə etməlisiniz.

Bir obyektin bir tamsayı dəyərini təmsil etməsini istəyiriksə, məsələn, onu bir kolleksiyaya qoymaq üçün ikincisini istifadə edərdiniz, çünki bu, çılpaq bir int ilə edə bilməyəcək hər şeyi etmək üçün tam hüquqlu bir obyekt verir.

506
14 окт. cavab Jan verildi 14 Oktyabr. 2010-10-14 08:11 '10 at 8:11 2010-10-14 08:11

new Integer(i).toString() əvvəlcə i (özünü bir Integer sargı obyekti ola biləcək) ətrafında bir (lazımsız) sarğı obyekti yaradır.

border=0

Integer.toString(i) üstünlük təşkil edir, çünki lazımsız obyektlər yaratmır.

91
14 окт. Oxoyt 14 okta cavab verdi . 2010-10-14 08:12 '10 at 8:12 'da 2010-10-14 08:12

Başqa bir seçim String.valueOf statik metodudur.

 String.valueOf(i) 

Integer.toString(i) mənim üçün bir az daha yaxşı hiss edir. I tipi dəyişikliyə gəldikdə, məsələn, int dən double ikən, kod düzgün qalar.

31
16 нояб. cavab noyabrın 16-da fhucho tərəfindən verilir 2014-11-16 17:58 '14 at 17:58 2014-11-16 17:58
  • new Integer(i).toString();

    Bu ifadə bir Integer obyekti yaradır və sonra Integer dəyərinin bir String təmsilini toString(i) qədər toString(i) üsullarını çağırır.

  • Integer.toString(i);

    Xüsusi int (tamsayı) təmsil edən bir String obyektini qaytarır , lakin burada toString(int) static metoddur.

Birinci halın xülasəsi, ikinci halda olduğu kimi, bir tamsayının simvolu göstərilməsini qaytarır olduğu obyektlərin simli təqdimini qaytarır.

14
14 окт. Cümə axşamı Dhiraj'a cavab verdi 2010-10-14 08:35 '10 saat 08:35 'da 2010-10-14 08:35

Mən də istifadə etməyi məsləhət görürəm

 int integer = 42; String string = integer + ""; 

Sadə və təsirli.

13
06 сент. Cavab 06 Sentyabrda Jasper Holton tərəfindən verildi. 2013-09-06 05:08 '13 'da 5:08' də 2013-09-06 05:08

Mən fhucho tövsiyə kimi baxmayaraq

 String.valueOf(i) 

Bu istehza, bu üsulun əslində meydana gəlməsidir

 Integer.toString(i) 

Beləliklə, String.valueOf(i) istifadə edin və String.valueOf(i) yolu String.valueOf(i) , String.valueOf(i) ehtiyacınız yoxdur, həm də Integer.toString(i) -dən daha səmərəli olduğunu Integer.toString(i) .

8
07 нояб. Cavab Nathan Waite 07 noyabr tarixində verilir. 2015-11-07 00:39 '15 'də 0:39' da 0 2015-11-07 00:39

Performansı ölçmək üçün, zamanla icra etsəniz, sonra Integer.toString (i); 100 milyondan az dəfə zəng etdiyinizdə bahalı olur. 100 milyondan artıq çağırış varsa, yeni Integer (10) .toString () daha yaxşı işləyəcək.

U ilə kodu aşağıda performans ölçmək üçün cəhd edə bilərsiniz,

 public static void main(String args[]) { int MAX_ITERATION = 10000000; long starttime = System.currentTimeMillis(); for (int i = 0; i < MAX_ITERATION; ++i) { String s = Integer.toString(10); } long endtime = System.currentTimeMillis(); System.out.println("diff1: " + (endtime-starttime)); starttime = System.currentTimeMillis(); for (int i = 0; i < MAX_ITERATION; ++i) { String s1 = new Integer(10).toString(); } endtime = System.currentTimeMillis(); System.out.println("diff2: " + (endtime-starttime)); } 

Yaddaş baxımından

yeni Tamsayı (i) .toString ();

hər zaman bir obyektin yaradılacağından, yaddaş parçalanması baş verəcəkdir.

4
14 окт. Cümə axşamı Dhiraj'a cavab verdi 2010-10-14 14:16 '10 at 14:16 2010-10-14 14:16

Sadə bir yoldur "" bir tamsayı ilə birləşməkdir:

 Int i = 100; String s = ""+ i; 

İndi "100" simli bir dəyər olacaq.

2
17 авг. Cavab ShivBuyya 17 aug tərəfindən verilir . 2016-08-17 08:14 '16 saat 08:14 'da 2016-08-17 08:14

daha yaxşı:

 Integer.valueOf(i).toString() 
2
25 авг. cavab ryu 25 aug verilir . 2014-08-25 14:59 '14 14:59 2014-08-25 14:59

1. Integer.toString(i)

 Integer i = new Integer(8); // returns a string representation of the specified integer with radix 8 String retval = i.toString(516, 8); System.out.println("Value = " + retval); 

2. new Integer(i).toString()

  int i = 506; String str = new Integer(i).toString(); System.out.println(str + " : " + new Integer(i).toString().getClass());////506 : class java.> 
0
20 нояб. cavab noyabrın 20-də Shiva Nandam Sirmarigari tərəfindən verilir 2016-11-20 08:15 '16 saat 8:15 'də 2016-11-20 08:15' də

Integer.toString Burada Integer sinifində statik bir üsul çağırır. Bir obyekt çağırışına ehtiyac yoxdur.

new Integer(i) , əvvəlcə int i dəyərini əhatə edən tam Java obyekti olan Tamsayı tipli bir nümunə yaradın. Sonra da özünü simli bir şəkildə təqdim etməyi xahiş etmək üçün toString metodunu toString .

0
14 авг. Shailej Shimpi tərəfindən verilmiş cavab 14 avqust . 2015-08-14 14:25 '15 'də saat 14:25 ' də 2015-08-14 14:25

tags ilə bağlı digər suallar və ya sual verin