Сообщения

Сообщения за декабрь, 2019

Основные опции JVM для повышения производительности и отладки

Изображение
Если вы являетесь Java-разработчиком или администратором Java приложения, вам поможет в работе знание того, что означают опции JVM, а также их важность и как они влияют на ваше приложение. Обзор параметров JVM Если говорить о параметрах JVM, то есть три типа параметров, которые вы можете включить в JVM: стандартные, нестандартные и расширенные параметры. Если вы используете расширенную опцию, вы всегда используете опцию с -XX. Точно так же, если вы применяете нестандартную опцию, вы используете -X. Стандартные опции ничего не добавляют к опции. Какие параметры JVM используются вашим приложением? Если приложение работает в Linux, вы можете использовать ps -ef | grep java для идентификации процесса Java и просмотра параметров JVM, напечатанных как аргументы процесса. Если в системе выполняется более одного Java-процесса, вам может потребоваться использовать ключевое слово, уникальное для вашего Java-приложения. Если ваш аргумент слишком длинный, попробуйте использовать ps

Как работает JVM

Изображение
JVM (виртуальная машина Java) действует как механизм времени выполнения для запуска приложений Java. JVM - это то, что фактически вызывает метод main, присутствующий в коде Java. JVM является частью JRE (Java Runtime Environment). Java-приложения называются WORA (Write Once Run Anywhere, Пиши однажды запускай везде). Это означает, что программист может разрабатывать код Java в одной системе и ожидать, что он будет работать в любой другой системе с поддержкой Java без каких-либо настроек. Это все возможно благодаря JVM. Когда мы компилируем файл .java, компилятор Java генерирует файлы .class (содержащие байт-код) с такими же именами классов, которые присутствуют в файле .java. Этот файл .class проходит различные этапы, когда мы его запускаем. Эти шаги вместе описывают всю JVM. Подсистема загрузчика классов (Class Loader Subsystem) В основном подсистема загрузчика классов отвечает за три вида деятельности. загрузка (Loading) связывание (Linking) инициализация (Initialization)

Загрузка, компоновка и инициализация в JVM

Изображение
Виртуальная машина Java (JVM) выполняет за кулисами большую работу, выполняя двоичный файл классов, переданный ей для исполнения. Это не так просто, потому что это похоже на вызов JVM с помощью команды java с файлом класса, переданным ему в качестве аргумента командной строки. Файл класса проходит много этапов, но в этом посте мы в основном рассмотрим первые три этапа выполнения, называемые загрузкой, связыванием и процессом инициализации. Это огромная и сложная тема сама по себе. Поэтому здесь только кратко описаны ключевые аспекты, чтобы понять, что это такое. Загрузка (loading), компоновка (связывание, linking) и инициализация (initialization) - это начальные процессы, которые JVM запускает, как только байт-код, называемый файлом класса, загружается в JVM для выполнения. Другие процессы, такие как создание экземпляров, сборка мусора и финализация, происходят на средних этапах жизненного цикла класса. И, наконец, процесс разгрузки происходит в конце жизненного цикла. JVM обеспечива

Методы класса Object в Java

Изображение
Класс Object является корнем иерархии классов. У каждого класса есть Object как суперкласс. Все объекты, включая массивы, реализуют методы этого класса. Методы класса Object Метод getClass() public final Class getClass() Возвращает класс времени исполнения (runtime class) этого Object. Возвращенный объект Class - это объект, который заблокирован статическими синхронизированными методами представленного класса. Фактический тип результата - Class<? extends |X|> где |X| заменяется статическим типом выражения, для которого вызывается getClass. Например, в этом фрагменте кода не требуется приведение: Number n = 0; Class c = n.getClass(); Метод getClass() возвращает: Объект Class, представляющий класс времени исполнения (runtime class) этого объекта. Метод hashCode public int hashCode() Возвращает значение хэш-кода для объекта. Этот метод поддерживается для использования хэш-таблиц, таких как те, что предоставляются HashMap. Основной контракт метода hashCo