Jawa int ke String - bilangan Bulat.toString(i) vs new Integer(i).toString()
Kadang-kadang java teka-teki saya. Saya memiliki sejumlah besar int inisialisasi untuk membuat.
Apa's nyata perbedaan?
Integer.toString(i)
new Integer(i).toString()
419
11
Bilangan bulat.toString
panggilan metode statis di kelasbilangan Bulat
. Itu tidak membutuhkan sebuah contoh daribilangan Bulat
.Jika anda menelepon
new Integer(i)
anda membuat sebuah instance dari tipeInteger
, yang penuh objek Java yang merangkum nilai int. Kemudian anda menelepontoString
metode untuk meminta untuk kembali representasi string sendiri.Jika semua yang anda inginkan adalah untuk mencetak sebuah
int
, anda'a menggunakan yang pertama karena itu's lebih ringan, lebih cepat dan doesn't menggunakan memori tambahan (selain dari kembali string).Jika anda ingin sebuah objek yang mewakili nilai integer—untuk memasukkannya ke dalam koleksi untuk contoh—you'd gunakan kedua, karena hal itu memberikan anda sebuah objek penuh untuk melakukan semua jenis hal-hal yang tidak dapat anda lakukan dengan telanjang
int
.new Integer(i).toString()
pertama yang menciptakan (berlebihan) pembungkus benda di sekitaraku
(yang dengan sendirinya dapat menjadi pembungkus objekbilangan Bulat
).Integer.toString(i)
lebih disukai karena itu doesn't membuat benda yang tidak perlu.Pilihan lain adalah statis
String.valueOf
metode.Itu terasa sedikit lebih tepat daripada
Integer.toString(i)
untuk saya. Ketika jenis i perubahan, misalnya dariint
untukdouble
, kode akan tetap benar.new Integer(i).toString();
Pernyataan ini menciptakan objek Integer dan kemudian memanggil metode
toString(i)
ke kembali representasi String Integer's nilai.Integer.toString(i);
Itu kembali objek String yang mewakili spesifik int (integer), tapi di sini
toString(int)
adalahstatis
metode.Ringkasan dalam kasus pertama itu kembali benda-benda representasi string, dimana dalam kedua kasus itu kembali representasi string integer.
Saya juga sangat merekomendasikan menggunakan
Sederhana dan efektif.
Meskipun saya suka fhucho's rekomendasi dari
Ironi adalah bahwa metode ini benar-benar panggilan
Dengan demikian, menggunakan
String.valueOf(i)
jika anda seperti bagaimana membaca dan anda don't perlu radix, tetapi juga mengetahui bahwa hal ini kurang efisien dariInteger.toString(i)
.Dalam hal pengukuran kinerja, jika anda sedang mempertimbangkan kinerja waktu kemudian Integer.toString(i); lebih mahal jika anda menelepon kurang dari 100 juta kali. Lain lagi jika lebih dari 100 juta panggilan maka new Integer(10).toString() akan tampil lebih baik.
Di bawah ini adalah kode melalui u dapat mencoba untuk mengukur kinerja,
Dalam hal memori,
akan memakan memori lebih banyak karena akan membuat objek setiap waktu, sehingga fragmentasi memori akan terjadi.
Baik:
Cara sederhana adalah hanya menggabungkan
","
dengan bilangan bulat:sekarang
s
akan100
sebagai nilai string.Di sini
Integer.toString
panggilan metode statis di kelas Integer. Tidak memerlukan objek untuk menelepon.Jika anda menelepon
new Integer(i)
anda terlebih dahulu membuat instance dari tipe Integer, yang penuh objek Java yang merangkum nilai int i. Kemudian anda menelepontoString
metode itu untuk menanyakan hal itu untuk mengembalikan sebuah string representasi dari dirinya sendiri.1.
Bilangan bulat.toString(i)
2.
new Integer(i).toString()