Kanggo mangerteni apa tegese null ing Jawa, ayo kang katon ing analogi karo angka: angka 0 nglambangaké anané soko, lan null tegese bab sing padha nalika nerangake jinis data referensi. Yen kolom saka jinis referensi (kayata String , Object , utawa StringBuilder ) ora ditetepake kanthi jelas nilai, banjur, kanthi analogi karo jinis primitif, bakal nampa nilai standar, lan nilai kasebut null :

Kode Output konsol
public class Solution {

    public static int i;
    public static String s;

    public static void main(String[] args) {
        System.out.println(i);
        System.out.println(s);
    }
}
0
null

Nanging yen sampeyan ngumumake array kaya iki:

String[] strings = new String[12];

array bakal digawe ngemot 12 unsur, lan kabeh bakal null :

Kode Output konsol
public class Solution {
    public static void main(String[] args) {
        String[] strings = new String[12];

        for (int i = 0; i < strings.length; i++) {
            System.out.println("Element " + i + ":" + strings[i]);
        }
    }
}
Unsur 0: null
Unsur 1: null
Unsur 2: null
Unsur 3: null
Unsur 4: null
Unsur 5: null
Unsur 6
: null Unsur 7: null
Unsur 8: null
Unsur 9: null
Unsur 10: null
Unsur 11: null

Nalika sampeyan bisa ndeleng, nalika concatenated karo senar, Nilai null dadi string " null ". Sing jarene, yen sampeyan nelpon toString() metode kasebut, kaya iki:

String[] strings = null;
System.out.println(strings.toString());

banjur sampeyan bakal entuk NullPointerException (kita bakal ngrembug babagan pengecualian kanthi rinci mengko). Bab sing padha kedadeyan yen sampeyan nyoba nelpon cara liya kanthi null (pangecualian yaiku metode statis, sing bakal sampeyan kenal sakcepete):

public static void main(String[] args) {
    StringBuilder sb = null;
    sb.append("test"); // This will compile, but there will be a runtime error
}

null , antarane liyane, tembung kunci sing dilindhungi (kaya umum utawa statis ), dadi sampeyan ora bisa nggawe variabel, metode, utawa kelas sing dijenengi null . Kaya liyane, tembung kunci iki sensitif huruf cilik (sampeyan bisa uga ngerteni manawa kita nulis null ing huruf cilik ing endi wae). Tegese:

String firstName = Null; // Compilation error
String secondName = NULL; // Compilation error
String fullName = null; // This will compile

Ayo goleki apa maneh sing bisa lan ora bisa ditindakake null :

  • Sampeyan bisa nemtokake null kanggo referensi apa wae:

    StringBuilder sb = null;
  • null bisa dikirim menyang sembarang tipe referensi:

    String s = (String) null; // This will compile, but doing this doesn't make any sense :)
  • null ora bisa ditugasake menyang variabel primitif:

    int i = null; // This won't compile
  • null bisa dibandhingake nggunakake == lan !=

  • null == null bali bener

Ing pawulangan sadurunge, kita ngomong babagan carane kabeh ing Jawa minangka obyek, lan saben obyek duwe jinis.

Apa sing bisa kita ucapake babagan null babagan iki? null punika literal saka jinis tartamtu, lan jinis iki ora duwe jeneng. Lan wiwit jinis iki ora duwe jeneng, iku mokal kanggo wara-wara variabel saka jinis iki, utawa kanggo matak. Mangkono, null minangka siji-sijine wakil saka jinis sing ora dijenengi iki. Ing laku, kita bisa nglirwakake jinis iki, lan mikir null minangka literal khusus sing bisa diutus kanggo sembarang variabel referensi.

Bab sing kudu dielingi:

  • null minangka nilai standar kanggo jinis data referensi
  • null tegese "ora ana regane"
  • Yen kita nyebat metode apa wae ing obyek sing nilaine null , kode kasebut bakal dikompilasi nanging nalika runtime kita bakal entuk NullPointerException .