NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Попробуйте опцию -xx:-useperfdata
, следующее могло бы быть полезным, который является из ссылки https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
-XX:+UsePerfData
Enables the perfdata feature. This option is enabled by default
to allow JVM monitoring and performance testing. Disabling it
suppresses the creation of the hsperfdata_userid directories.
To disable the perfdata feature, specify -XX:-UsePerfData.
Из ссылки svrist:
первый объект в http://java.sun.com/performance/jvmstat/faq.html упоминания опция, которую можно выключить для отключения целого комплекта функций:-XX:-UsePerfData.
Согласно зарегистрированный отчет об ошибках существует обходное решение:
Эта недокументированная опция отключит perfdata опцию:
-XX:-UsePerfData
стоит упомянуть, что это - функция хотя, не ошибка. Вышеупомянутое обходное решение просто отключает опцию.
РЕДАКТИРОВАНИЕ: информация об Очистке и подводит итог
Сводка:
Соответствующая информация:
Существует также параметр "- XX: + PerfDisableSharedMem"
(рекомендованный Sun), который должен вызывать меньше проблем с производительностью, чем использование "- XX: -UsePerfData "
вариант.