Jawabannya tergantung pada bahasa yang Anda gunakan.
C / C ++
Dalam C dan C ++, kata kunci adalah NULL, dan apa sebenarnya NULL adalah 0. Diputuskan bahwa "0x0000" tidak akan pernah menjadi penunjuk yang valid ke objek, dan itulah nilai yang ditugaskan untuk menunjukkan bahwa itu bukan pointer yang valid. Namun, itu sepenuhnya arbitrer. Jika Anda mencoba mengaksesnya seperti pointer, itu akan berperilaku persis seperti pointer ke objek yang tidak lagi ada dalam memori, menyebabkan pengecualian pointer yang tidak valid dibuang. Pointer itu sendiri menempati memori, tetapi tidak lebih dari objek integer. Oleh karena itu, jika Anda memiliki 1000 null pointer, itu setara dengan 1000 integer. Jika beberapa dari pointer tersebut menunjuk ke objek yang valid, maka penggunaan memori akan setara dengan 1000 integer plus memori yang terkandung dalam pointer yang valid. Ingatlah bahwa dalam C atau C ++,tidak menyiratkan memori telah dirilis, jadi Anda harus secara eksplisit menghapus objek itu menggunakan dealloc (C) atau menghapus (C ++).
Jawa
Tidak seperti di C dan C ++, di Java null hanyalah kata kunci. Alih-alih mengelola null seperti pointer ke objek, itu dikelola secara internal dan diperlakukan seperti literal. Ini menghilangkan kebutuhan untuk mengikat pointer sebagai tipe integer dan memungkinkan Java untuk abstrak pointer sepenuhnya. Namun bahkan jika Java menyembunyikannya lebih baik, mereka masih pointer, artinya 1000 pointer nol masih mengkonsumsi setara dengan 1000 integer. Jelas ketika mereka menunjuk ke objek, seperti C dan C ++, memori dikonsumsi oleh objek-objek itu sampai tidak ada lagi petunjuk yang merujuk mereka, namun tidak seperti dalam C dan C ++, pengumpul sampah mengambilnya pada pass berikutnya dan membebaskan memori, tanpa mengharuskan Anda untuk melacak objek apa yang dibebaskan dan objek mana yang tidak, dalam banyak kasus (kecuali jika Anda memiliki alasan untuk referensi objek lemah misalnya).