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, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
В Windows GlowCode доступен, довольно прост в использовании, и предлагает бесплатную демонстрационную версию, таким образом, Вы видите, работает ли это на Вас.
Многие люди не знают, но MSFT делает большие успехи, помещая самые лучшие инструменты для того, чтобы улучшить производительность в руках devlopers бесплатно :-). Они выставляют всем нам внутренности трассировки Windows: ETW.
Это - часть новых окон SDK для сервера 2008 и Vista. Просто впечатляющий и должен, чтобы загрузить, если анализ производительности и представляющий в соответствии с Windows является Вашей целью (независимо от языка).
Проверка документация здесь, прежде чем Вы решите загрузить его:
MSDNПопробуйте Studio Параллели Intel. В настоящее время это в бета-версии, но имя Intel говорит все это.
Только что нашел Люка StackWalker на SourceForge ( http://lukestackwalker.sourceforge.net/ ). К сожалению, это не фокус на поддереве ', но он по-прежнему удобен в использовании, использует сервер символов (я предлагаю вам установить его немедленно, если у вас его еще нет), предлагает графическую визуализацию, ...
Обратной стороной является то, что он не работает » t показывает накопленное время (выборки) дочерних функций.
Другой альтернативой является «Очень сонный» ( http://www.codersnotes.com/sleepy ). Он может показывать общее время детей, но, к сожалению, он не использует сервер символов.