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, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
lmapm библиотека Luiz Figueiredo, одним из авторов языка Lua.
Я не могу действительно ответить, но я добавлю LGMP, привязка GMP. Не используемый.
Не мое поле экспертных знаний, но я ожидал бы, что библиотека арифметики многократно увеличенной точности GNU будет вполне стандартом здесь, нет?
Хотя не произвольный точность, Lua decNumber, обертка Lua 5.1 для IBM decNumber, реализует предложенный Общий стандарт Десятичной системы счисления IEEE 754r. Это имеет арифметические операторы Lua 5.1 и больше, полный контроль над округлением режимов и рабочей точности до 69 десятичных цифр.
Я использовал предложение Norman Ramsey для решения Euler проблемы Проекта #16. Я не думаю, что это - спойлер, чтобы сказать, что затруднение проблемы вычисляет 303 целых числа цифры точно.
Вот шаги, я должен был установить и пользоваться библиотекой:
Lua должен быть создан с динамической включенной загрузкой. Я использую Cygwin, но я изменился PLAT
в src/Makefile
, чтобы быть linux
. Значение по умолчанию, none
, не включает динамическую загрузку.
MAMP должен быть создан и установлен где-нибудь, что Ваш компилятор C может найти его. Я поместил libmapm.a
в /usr/local/lib/
. Затем m_apm.h
и m_apm_lc.h
перешел в /usr/local/include/
.
make-файл для [1 118] lmamp должен быть изменен к корректному местоположению библиотек Lua и MAMP. Для меня, который означает не комментировать второе объявление LUA
, LUAINC
, LUALIB
, и LUABIN
и редактировать объявление [1 113].
Наконец, mapm.so
потребности, которые будут помещены куда-нибудь, что Lua найдет его. Я поместил его в [1 115].
Спасибо всем за предложения!
Используя вместо этого lbc lmapm было бы проще, потому что lbc самодостаточен.
require"bc"
s=bc.pow(2,1000):tostring()
z=0
for i=1,#s do
z=z+s:byte(i)-("0"):byte(1)
end
print(z)