Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Использование модификатора static в java

Почему в документации класса System у нас в статической переменной out, которая является типом PrintStream, присвоено final значение null и при этом мы спокойно можем обращаться через эту переменную к методу println() класса PrintStream?
Просто я попробовал воссоздать минимально данный процесс и у меня вылетел NullPointerException

По дате
По рейтингу
Аватар пользователя
Новичок

Смысле почему? Потому переменная print у вас null отсюда и npe

Аватар пользователя
Оракул

Во внутренностях java машины многое происходит на нативном уровне, взаимодействуя напрямую с ОС. Написаны такие методы на C/C++. Помечен такой код словом native.

1234
 private static native void registerNatives(); 
static { 
    registerNatives(); 
}