Rumah  >  Soal Jawab  >  teks badan

java new对象 User user; 和 User user = null; 有什么区别

User user;

User user = null;
这两种写法有什么区别呢?

PHP中文网PHP中文网2741 hari yang lalu708

membalas semua(5)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:34:27

    Ini bergantung pada tempat User user; muncul, mari letakkan kesimpulan dahulu:

    1. Jika ia adalah atribut (medan) objek, tiada perbezaan antara kedua-dua kaedah penulisan.

    2. Jika ia adalah pembolehubah tempatan dalam kaedah, jika tiada tempat lain dalam kaedah untuk menetapkan nilai kepada pengguna, ralat penyusunan akan berlaku.

    Jika ia adalah atribut objek, pengkompil Java secara automatik akan memberikan nilai awal kepada medan semasa penyusunan (jenis asal ialah nilai lalai; jenis rujukan adalah nol). Contohnya, kod berikut:

    public class TestInitialization {
        private User userA;
    }

    Selepas penyusunan, gunakan javap untuk melihat kod bait Bahagian merah ialah proses pengkompil memberikan nilai awal secara automatik:

    Jika ia pembolehubah tempatan dalam kaedah, pengkompil tidak akan memberikan nilai awal secara automatik. User user;Pengguna pembolehubah hanya ditakrifkan, tetapi tiada ruang diperuntukkan kepada pengguna dalam memori Ia tidak dimulakan dan tidak boleh disusun User user = null;Bukan sahaja pengguna pembolehubah ditakrifkan, tetapi ruang memori juga diperuntukkan untuk pengguna, pengguna kini menunjuk ke nol.

    那么问题来了`null`又是个什么鬼?
    http://stackoverflow.com/questions/2707322/what-is-null-in-java
    

    balas
    0
  • 阿神

    阿神2017-04-18 10:34:27

    Jika pengguna ialah pembolehubah setempat: menggunakan pengguna sebelum tugasan pertama (termasuk pengamulaan kepada null) ialah ralat penyusunan

    Tiada perbezaan selepas tugasan

    balas
    0
  • PHPz

    PHPz2017-04-18 10:34:27

    Nampaknya sama

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:34:27

    Tiada perbezaan, nilai permulaan lalai adalah batal

    balas
    0
  • PHPz

    PHPz2017-04-18 10:34:27

    Tidak= Tiada ruang dicipta untuknya dalam timbunan. Menambah =null menentukan pemegang tempat kosong

    dalam tindanan.

    balas
    0
  • Batalbalas