2015-12-26 2 views

ответ

1

Этот код не является безопасным, а не кросс-платформенным.

  • как вы получаете сам Unsafe является публичной поддерживается Java API из пакета java.lang.reflect. Этот код будет работать на всех платформах со всеми реализациями JVM, поскольку он является частью открытого API Java.
  • Объект un, который вы используете с помощью общедоступного API-интерфейса, отсутствует на каких-либо JVM-серверах, отличных от JVM Oracle/Sun, потому что это частный API для реализации JVM. Например, ваш код не будет работать на IBM JVM, так как sun.misc.Unsafe там не будет.

Я думаю, что Java 8 javac компилятор от Oracle/Sun даже предупредить вас, когда вы компилируете свой код (этот компилятор не используется, если вы строите свой проект со встроенными функциями в Eclipse), потому что вы используете частный API.


Да, ваше решение вернет вам размер страницы собственной памяти, но, возможно, не будет работать на всех платформах.

+0

нормально, по вашему объяснению я получил, что эти библиотеки используют системную функцию, я прав? Так есть ли способ получить размер страницы без системных функций, как создать массив? – arezoo

+0

Что вы подразумеваете под «функцией системы»? Да, это вернет вам собственный размер страницы. – RAnders00

+0

В моем упражнении для урока ОС; Я должен измерять размер страницы без использования функции подготовки к ней. и у меня нет идеи! я хотел сказать «системная функция» – arezoo

Смежные вопросы