Anda dapat melakukannya Integer n = 9;karena melakukan autoboxing (kecuali jika Anda menggunakan versi java yang sangat lama)
Alderath
Jawaban:
320
intadalah tipe primitif. Variabel tipe intmenyimpan nilai biner aktual untuk integer yang ingin Anda wakili. int.parseInt("1")tidak masuk akal karena intmerupakan bukan kelas dan karena itu tidak memiliki metode apapun.
Integeradalah kelas, tidak berbeda dari yang lain dalam bahasa Java. Variabel referensi tipe Integertoko untuk objek, seperti halnya dengan jenis referensi (objek) lainnya. adalah panggilan ke metode statis dari kelas (perhatikan bahwa metode ini benar-benar mengembalikan dan bukan ).IntegerInteger.parseInt("1")parseIntIntegerintInteger
Untuk lebih spesifik, Integeradalah kelas dengan bidang tipe tunggal int. Kelas ini digunakan di mana Anda perlu intdiperlakukan seperti objek lain, seperti dalam tipe atau situasi umum di mana Anda memerlukan nullability.
Perhatikan bahwa setiap tipe primitif di Jawa memiliki kelas pembungkus yang setara :
byte telah Byte
short telah Short
int telah Integer
long telah Long
boolean telah Boolean
char telah Character
float telah Float
double telah Double
Kelas wrapper mewarisi dari kelas Object, dan primitif tidak. Jadi itu dapat digunakan dalam koleksi dengan referensi Objek atau dengan Generik.
Sejak java 5 kita memiliki autoboxing, dan konversi antara kelas primitif dan wrapper dilakukan secara otomatis. Waspadalah, bagaimanapun, karena ini dapat menyebabkan bug dan masalah kinerja yang halus; menjadi eksplisit tentang konversi tidak pernah sakit.
Saya ingin menunjukkan, saya pikir ini adalah jawaban yang sempurna karena dua alasan: 1- Ringkas dan akurat, menjaga audiens / penanya dalam pikiran 2- Memberikan arahan untuk detail tambahan daripada menempatkan semuanya dalam teks jawaban Tidak semua pertanyaan dapat dijawab dengan akurat dan ringkas (beberapa membutuhkan lebih banyak detail dan nuansa agar akurat dan lengkap), tetapi saya pikir semua jawaban harus berusaha sesederhana dan langsung ini.
DRich
11
Heh, saya pikir itu justru sebaliknya. "int adalah tipe primitif" tidak memberi tahu Anda apa pun, jika Anda tidak tahu apa tipe primitif itu. (Dan jika Anda melakukannya, Anda sudah sangat mungkin tahu perbedaan antara int dan Integer). Dan mengirimkan pembaca ke dua tautan yang berlabel "Tautan 1" dan "Tautan 2" cukup tidak membantu, terutama dibandingkan dengan hanya mengutip bagian yang relevan.
Steve Bennett
7
Integer cukup banyak hanya pembungkus untuk tipe int primitif. Ini memungkinkan Anda untuk menggunakan semua fungsi kelas Integer untuk membuat hidup sedikit lebih mudah bagi Anda.
Jika Anda baru mengenal Java, sesuatu yang harus Anda pelajari adalah dokumentasi Java. Misalnya, apa pun yang ingin Anda ketahui tentang Kelas Integer didokumentasikan secara rinci.
Ini langsung dari dokumentasi untuk kelas Integer:
Kelas Integer membungkus nilai int tipe primitif dalam suatu objek. Objek bertipe Integer berisi bidang tunggal yang tipenya int.
Ini agak melenceng. Misalnya, seperti Integerkelas, ia dapat disimpan dalam wadah (tidak seperti jenis primitif).
Oliver Charlesworth
6
Variabel int menyimpan nilai integer bertanda 32 bit. Integer (dengan huruf kapital I) menyimpan referensi ke objek tipe integer (kelas), atau null.
Java secara otomatis melakukan cast di antara keduanya; dari Integer ke int setiap kali objek Integer muncul sebagai argumen ke operator int atau ditugaskan ke variabel int, atau nilai int ditugaskan ke variabel Integer. Casting ini disebut tinju / unboxing.
Jika variabel bilangan bulat referensi Integer unboxed, secara eksplisit atau implisit, NullPointerException dilemparkan.
(Dalam teks di atas, istilah "variabel" berarti variabel lokal, bidang atau parameter)
Integermengacu pada jenis pembungkus di Jawa sedangkan intjenis primitif. Semuanya kecuali tipe data primitif di Jawa diimplementasikan sama seperti objek yang menyiratkan Java adalah bahasa pemrograman berorientasi objek murni yang sangat berkualitas. Jika Anda perlu, semua tipe primitif juga tersedia sebagai tipe wrapper di Jawa. Anda dapat memiliki beberapa manfaat kinerja dengan tipe primitif, dan karenanya tipe wrapper hanya boleh digunakan jika diperlukan.
Dalam contoh Anda seperti di bawah ini.
Integer n =9;
konstanta 9sedang kotak otomatis ( auto-boxingdan unboxingterjadi secara otomatis dari java 5seterusnya) ke Integerdan karena itu Anda dapat menggunakan pernyataan seperti itu dan juga Integer n = new Integer(9). Ini sebenarnya dicapai melalui pernyataanInteger.valueOf(9).intValue();
int adalah tipe primitif dan bukan objek. Itu berarti tidak ada metode yang terkait dengannya. Integer adalah objek dengan metode (seperti parseInt).
Dengan java yang lebih baru ada fungsi untuk tinju otomatis (dan unboxing). Itu berarti bahwa kompiler akan memasukkan Integer.valueOf (int) atau integer.intValue () di mana diperlukan. Itu artinya sebenarnya mungkin untuk menulis
Integer adalah kelas pembungkus / Objek dan int adalah tipe primitif. Perbedaan ini memainkan peran besar ketika Anda ingin menyimpan nilai int dalam koleksi, karena mereka hanya menerima objek sebagai nilai (hingga jdk1.4). JDK5 dan seterusnya karena autoboxing itu cerita yang berbeda.
JDK5 + juga hanya menerima objek; hanya saja dengan autoboxing, kompiler secara otomatis memanggil Integer.valueOf(i)atau Integer.intValue()untuk Anda. Collection<int>masih tidak akan bekerja. Jadi ini bukan cerita yang sama sekali berbeda - ini adalah kisah yang sama, hanya dengan sedikit tulisan singkat.
yshavit
sepakat. Maaf, kata-kata saya mungkin tidak mencerminkan itu.
kosa
3
Di Java int adalah tipe data primitif sementara Integer adalah kelas Helper, digunakan untuk mengonversi satu tipe data ke yang lain.
intadalah tipe primitif yang mewakili integer. sedangkan Integeradalah Obyek yang membungkus int. The Integerobjek memberi Anda lebih banyak fungsi, seperti mengkonversi ke hex, string, dll
Anda juga dapat menggunakan konsep OOP dengan Integer. Misalnya, Anda dapat menggunakan Integer untuk obat generik (yaitu ).Collection<Integer>
Java menggunakan tipe primitif (juga disebut tipe sederhana), seperti int atau double , untuk menampung tipe data dasar yang didukung oleh bahasa. Tipe primitif , bukan objek, digunakan untuk kuantitas ini demi kinerja . Menggunakan objek untuk nilai-nilai ini akan menambah overhead yang tidak dapat diterima bahkan untuk perhitungan paling sederhana. Dengan demikian, tipe primitif bukan bagian dari hierarki objek , dan mereka tidak mewarisi Objek .
Terlepas dari manfaat kinerja yang ditawarkan oleh tipe primitif, ada kalanya Anda membutuhkan representasi objek. Misalnya, Anda tidak bisa melewatkan tipe primitif dengan merujuk ke metode . Juga, banyak dari struktur data standar yang diimplementasikan oleh Java beroperasi pada objek, yang berarti bahwa
Anda tidak dapat menggunakan struktur data ini (khusus objek) untuk menyimpan tipe primitif . Untuk menangani situasi ini (dan lainnya), Java menyediakan pembungkus tipe, yang merupakan kelas yang merangkum tipe primitif dalam suatu objek.
Kelas wrapper berhubungan langsung dengan
fitur autoboxing Java . Jenis pembungkusnya adalah Double, Float, Long, Integer, Short, Byte, Character, dan Boolean . Kelas-kelas ini menawarkan beragam metode yang memungkinkan Anda untuk mengintegrasikan sepenuhnya tipe primitif ke dalam hierarki objek Java.
Untuk mengoptimalkan runtime kode Java, inttipe primitif telah ditambahkan termasuk float, booldll. Tetapi mereka datang bersama dengan kelas pembungkus sehingga jika diperlukan Anda dapat mengonversi dan menggunakannya sebagai objek Java standar bersama dengan banyak utilitas yang datang sebagai anggota mereka fungsi (seperti Integer.parseInt("1")).
intadalah tipe data primitif sementara Integeradalah Tipe Referensi atau Pembungkus (Kelas) di Jawa.
setelah java 1.5itu memperkenalkan konsep autoboxing dan unboxing Anda dapat menginisialisasi keduanya intatau Integerseperti ini.
int a=9Integer a =9// both valid After Java 1.5.
kenapa Integer.parseInt("1");tapi tidak int.parseInt("1");??
Integeradalah Kelas yang didefinisikan dalam jdkperpustakaan dan parseInt()merupakan metode statis milik IntegerKelas
Jadi, Integer.parseInt("1");mungkin saja di java. tetapi inttipe primitif (anggap seperti kata kunci) di java. Jadi, Anda tidak dapat memanggil parseInt()dengan int.
Integer n = 9;
karena melakukan autoboxing (kecuali jika Anda menggunakan versi java yang sangat lama)Jawaban:
int
adalah tipe primitif. Variabel tipeint
menyimpan nilai biner aktual untuk integer yang ingin Anda wakili.int.parseInt("1")
tidak masuk akal karenaint
merupakan bukan kelas dan karena itu tidak memiliki metode apapun.Integer
adalah kelas, tidak berbeda dari yang lain dalam bahasa Java. Variabel referensi tipeInteger
toko untuk objek, seperti halnya dengan jenis referensi (objek) lainnya. adalah panggilan ke metode statis dari kelas (perhatikan bahwa metode ini benar-benar mengembalikan dan bukan ).Integer
Integer.parseInt("1")
parseInt
Integer
int
Integer
Untuk lebih spesifik,
Integer
adalah kelas dengan bidang tipe tunggalint
. Kelas ini digunakan di mana Anda perluint
diperlakukan seperti objek lain, seperti dalam tipe atau situasi umum di mana Anda memerlukan nullability.Perhatikan bahwa setiap tipe primitif di Jawa memiliki kelas pembungkus yang setara :
byte
telahByte
short
telahShort
int
telahInteger
long
telahLong
boolean
telahBoolean
char
telahCharacter
float
telahFloat
double
telahDouble
Kelas wrapper mewarisi dari kelas Object, dan primitif tidak. Jadi itu dapat digunakan dalam koleksi dengan referensi Objek atau dengan Generik.
Sejak java 5 kita memiliki autoboxing, dan konversi antara kelas primitif dan wrapper dilakukan secara otomatis. Waspadalah, bagaimanapun, karena ini dapat menyebabkan bug dan masalah kinerja yang halus; menjadi eksplisit tentang konversi tidak pernah sakit.
sumber
C#
semua tipe data memiliki "alias" danint.Parse()
memang masuk akal (meskipun sebenarnya tidak)C#
sama sekali tidak relevan di sini.Integer adalah kelas dan int adalah tipe primitif.
Baca di tautan ini:
sumber
Integer cukup banyak hanya pembungkus untuk tipe int primitif. Ini memungkinkan Anda untuk menggunakan semua fungsi kelas Integer untuk membuat hidup sedikit lebih mudah bagi Anda.
Jika Anda baru mengenal Java, sesuatu yang harus Anda pelajari adalah dokumentasi Java. Misalnya, apa pun yang ingin Anda ketahui tentang Kelas Integer didokumentasikan secara rinci.
Ini langsung dari dokumentasi untuk kelas Integer:
Kelas Integer membungkus nilai int tipe primitif dalam suatu objek. Objek bertipe Integer berisi bidang tunggal yang tipenya int.
sumber
Integer
kelas, ia dapat disimpan dalam wadah (tidak seperti jenis primitif).Variabel int menyimpan nilai integer bertanda 32 bit. Integer (dengan huruf kapital I) menyimpan referensi ke objek tipe integer (kelas), atau null.
Java secara otomatis melakukan cast di antara keduanya; dari Integer ke int setiap kali objek Integer muncul sebagai argumen ke operator int atau ditugaskan ke variabel int, atau nilai int ditugaskan ke variabel Integer. Casting ini disebut tinju / unboxing.
Jika variabel bilangan bulat referensi Integer unboxed, secara eksplisit atau implisit, NullPointerException dilemparkan.
(Dalam teks di atas, istilah "variabel" berarti variabel lokal, bidang atau parameter)
sumber
Integer
mengacu pada jenis pembungkus di Jawa sedangkanint
jenis primitif. Semuanya kecuali tipe data primitif di Jawa diimplementasikan sama seperti objek yang menyiratkan Java adalah bahasa pemrograman berorientasi objek murni yang sangat berkualitas. Jika Anda perlu, semua tipe primitif juga tersedia sebagai tipe wrapper di Jawa. Anda dapat memiliki beberapa manfaat kinerja dengan tipe primitif, dan karenanya tipe wrapper hanya boleh digunakan jika diperlukan.Dalam contoh Anda seperti di bawah ini.
konstanta
9
sedang kotak otomatis (auto-boxing
danunboxing
terjadi secara otomatis darijava 5
seterusnya) keInteger
dan karena itu Anda dapat menggunakan pernyataan seperti itu dan jugaInteger n = new Integer(9)
. Ini sebenarnya dicapai melalui pernyataanInteger.valueOf(9).intValue();
sumber
int adalah tipe primitif dan bukan objek. Itu berarti tidak ada metode yang terkait dengannya. Integer adalah objek dengan metode (seperti parseInt).
Dengan java yang lebih baru ada fungsi untuk tinju otomatis (dan unboxing). Itu berarti bahwa kompiler akan memasukkan Integer.valueOf (int) atau integer.intValue () di mana diperlukan. Itu artinya sebenarnya mungkin untuk menulis
yang diartikan sebagai
sumber
Integer adalah kelas pembungkus / Objek dan int adalah tipe primitif. Perbedaan ini memainkan peran besar ketika Anda ingin menyimpan nilai int dalam koleksi, karena mereka hanya menerima objek sebagai nilai (hingga jdk1.4). JDK5 dan seterusnya karena autoboxing itu cerita yang berbeda.
sumber
Integer.valueOf(i)
atauInteger.intValue()
untuk Anda.Collection<int>
masih tidak akan bekerja. Jadi ini bukan cerita yang sama sekali berbeda - ini adalah kisah yang sama, hanya dengan sedikit tulisan singkat.Di Java int adalah tipe data primitif sementara Integer adalah kelas Helper, digunakan untuk mengonversi satu tipe data ke yang lain.
Sebagai contoh:
Tipe data primitif menyimpan memori tercepat yang tersedia di mana kelas Helper kompleks dan menyimpan dalam memori tumpukan.
referensi dari Pelatihan Penting Jawa "David Gassner".
sumber
int
adalah tipe primitif yang mewakili integer. sedangkanInteger
adalah Obyek yang membungkusint
. TheInteger
objek memberi Anda lebih banyak fungsi, seperti mengkonversi ke hex, string, dllAnda juga dapat menggunakan konsep OOP dengan
Integer
. Misalnya, Anda dapat menggunakan Integer untuk obat generik (yaitu ).Collection
<Integer>
sumber
Ini diambil dari Jawa: Referensi Lengkap, Edisi Kesembilan
sumber
Untuk mengoptimalkan runtime kode Java,
int
tipe primitif telah ditambahkan termasukfloat
,bool
dll. Tetapi mereka datang bersama dengan kelas pembungkus sehingga jika diperlukan Anda dapat mengonversi dan menggunakannya sebagai objek Java standar bersama dengan banyak utilitas yang datang sebagai anggota mereka fungsi (sepertiInteger.parseInt("1")
).sumber
int
adalah tipe data primitif sementaraInteger
adalah Tipe Referensi atau Pembungkus (Kelas) di Jawa.setelah
java 1.5
itu memperkenalkan konsep autoboxing dan unboxing Anda dapat menginisialisasi keduanyaint
atauInteger
seperti ini.Integer
adalah Kelas yang didefinisikan dalamjdk
perpustakaan danparseInt()
merupakan metode statis milikInteger
KelasJadi,
Integer.parseInt("1");
mungkin saja di java. tetapiint
tipe primitif (anggap seperti kata kunci) di java. Jadi, Anda tidak dapat memanggilparseInt()
denganint
.sumber