Этот код не является безопасным, а не кросс-платформенным.
- как вы получаете сам
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.
Да, ваше решение вернет вам размер страницы собственной памяти, но, возможно, не будет работать на всех платформах.
нормально, по вашему объяснению я получил, что эти библиотеки используют системную функцию, я прав? Так есть ли способ получить размер страницы без системных функций, как создать массив? – arezoo
Что вы подразумеваете под «функцией системы»? Да, это вернет вам собственный размер страницы. – RAnders00
В моем упражнении для урока ОС; Я должен измерять размер страницы без использования функции подготовки к ней. и у меня нет идеи! я хотел сказать «системная функция» – arezoo