Optimizing Java: Practical Techniques for Improving JVM Application Performance (2018)
Авторы: Benjamin J Evans, James Gough, Chris Newland
Количество страниц: 440
Из этой практической книги Java-программисты среднего и продвинутого уровней, работающие со сложными технологическими стеками, узнают, как настроить Java-приложения для повышения производительности, используя проверяемый подход. Большинство источников, посвященных производительности, как правило, углубляются в теорию и внутреннее устройство виртуальной машины Java, но в этой книге основное внимание уделяется практике улучшения производительности путем изучения широкого круга аспектов. Нет простых рецептов, советов и уловок или алгоритмов, которые нужно изучить. Настройка производительности - это, прежде всего, определение желаемых результатов. А это требует усердия.
Скачать книгу
Авторы: Benjamin J Evans, James Gough, Chris Newland
Количество страниц: 440
Из этой практической книги Java-программисты среднего и продвинутого уровней, работающие со сложными технологическими стеками, узнают, как настроить Java-приложения для повышения производительности, используя проверяемый подход. Большинство источников, посвященных производительности, как правило, углубляются в теорию и внутреннее устройство виртуальной машины Java, но в этой книге основное внимание уделяется практике улучшения производительности путем изучения широкого круга аспектов. Нет простых рецептов, советов и уловок или алгоритмов, которые нужно изучить. Настройка производительности - это, прежде всего, определение желаемых результатов. А это требует усердия.
Скачать книгу
Telegram
Книги для программистов (reserved)
Optimizing Java: Practical Techniques for Improving JVM Application Performance (2018)
Авторы: Benjamin J Evans, James Gough, Chris Newland
Авторы: Benjamin J Evans, James Gough, Chris Newland
Learning Java: An Introduction to Real-World Programming with Java (2020)
Авторы: Marc Loy, Patrick Niemeyer, Daniel Leuck
Количество страниц: 926
Если вы новичок в Java, эта книга поможет вам изучить языковые фичи и API-интерфейсы Java 11. Авторы, используя убедительные и реалистичные примеры, ознакомят вас с основами Java, включая библиотеки классов, методы программирования и идиомы, с целью создания реальных приложений.
Скачать книгу
Авторы: Marc Loy, Patrick Niemeyer, Daniel Leuck
Количество страниц: 926
Если вы новичок в Java, эта книга поможет вам изучить языковые фичи и API-интерфейсы Java 11. Авторы, используя убедительные и реалистичные примеры, ознакомят вас с основами Java, включая библиотеки классов, методы программирования и идиомы, с целью создания реальных приложений.
Скачать книгу
Telegram
Книги для программистов (reserved)
Learning Java: An Introduction to Real-World Programming with Java (2020)
Авторы: Marc Loy, Patrick Niemeyer, Daniel Leuck
Авторы: Marc Loy, Patrick Niemeyer, Daniel Leuck
#вопросы_с_собеседований
Какой класс позволяет читать данные из входного байтового потока в формате примитивных типов данных?
Какой класс позволяет читать данные из входного байтового потока в формате примитивных типов данных?
Класс DataInputStream представляет поток ввода и предназначен для записи данных примитивных типов, таких, как int, double и т.д. Для каждого примитивного типа определен свой метод для считывания:
☕️ boolean readBoolean(): считывает из потока булевое однобайтовое значение
☕️ byte readByte(): считывает из потока 1 байт
☕️ char readChar(): считывает из потока значение char
☕️ double readDouble(): считывает из потока 8-байтовое значение double
☕️ float readFloat(): считывает из потока 4-байтовое значение float
☕️ int readInt(): считывает из потока целочисленное значение int
☕️ long readLong(): считывает из потока значение long
☕️ short readShort(): считывает значение short
☕️ String readUTF(): считывает из потока строку в кодировке UTF-8
☕️ boolean readBoolean(): считывает из потока булевое однобайтовое значение
☕️ byte readByte(): считывает из потока 1 байт
☕️ char readChar(): считывает из потока значение char
☕️ double readDouble(): считывает из потока 8-байтовое значение double
☕️ float readFloat(): считывает из потока 4-байтовое значение float
☕️ int readInt(): считывает из потока целочисленное значение int
☕️ long readLong(): считывает из потока значение long
☕️ short readShort(): считывает значение short
☕️ String readUTF(): считывает из потока строку в кодировке UTF-8
#вопросы_с_собеседований
Как получить текущее время по местному времени с точностью до миллисекунд, используя Date Time API?
Как получить текущее время по местному времени с точностью до миллисекунд, используя Date Time API?
LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
#вопросы_с_собеседований
Что такое checked и unchecked exception?
Что такое checked и unchecked exception?
В Java все исключения делятся на два типа:
☕️ checked (контролируемые/проверяемые исключения) должны обрабатываться блоком catch или описываться в объявлении метода (например throws IOException). Наличие такого обработчика/модификатора проверяется на этапе компиляции;
☕️ unchecked (неконтролируемые/непроверяемые исключения), к которым относятся ошибки Error (например OutOfMemoryError), обрабатывать которые не рекомендуется и исключения времени выполнения, представленные классом RuntimeException и его наследниками (например NullPointerException), которые могут не обрабатываться блоком catch и не быть описанными в объявлении метода.
☕️ checked (контролируемые/проверяемые исключения) должны обрабатываться блоком catch или описываться в объявлении метода (например throws IOException). Наличие такого обработчика/модификатора проверяется на этапе компиляции;
☕️ unchecked (неконтролируемые/непроверяемые исключения), к которым относятся ошибки Error (например OutOfMemoryError), обрабатывать которые не рекомендуется и исключения времени выполнения, представленные классом RuntimeException и его наследниками (например NullPointerException), которые могут не обрабатываться блоком catch и не быть описанными в объявлении метода.
📌 Напоминаем, что у нас есть чат канала: https://yangx.top/javaproglibchat
Присоединяйтесь к обсуждению вопросов и предлагайте свои!
Присоединяйтесь к обсуждению вопросов и предлагайте свои!
#вопросы_с_собеседований
Где и как вы можете использовать закрытый конструктор?
Где и как вы можете использовать закрытый конструктор?
Приватный (помеченный ключевым словом private, скрытый) конструктор может использоваться публичным статическим методом генерации объектов данного класса. Также доступ к нему разрешён вложенным классам и может использоваться для их нужд.
Читайте интервью с Java-тимлидом компании Dino Systems. Вы узнаете из первых рук, легко ли пройти путь от джуна до профессионала высокого класса и какие препятствия могут на нем встретиться.
https://proglib.io/sh/VLBFeGyvWu
https://proglib.io/sh/VLBFeGyvWu
Библиотека программиста
☕ «Тот, кто приходит за деньгами либо для престижа, не выдерживает темпа»
Изучить Java с нуля и пройти путь от джуна до высококлассного разработчика – задача непростая, но герою интервью это удалось. О сложностях в освоении профессии нашему корреспонденту рассказал тимлид компании DINS Андрей Кирдеев.
#вопросы_с_собеседований
Как происходит удаление элементов из ArrayList? Как меняется в этом случае размер ArrayList?
Как происходит удаление элементов из ArrayList? Как меняется в этом случае размер ArrayList?
При удалении произвольного элемента из списка, все элементы, находящиеся «правее» смещаются на одну ячейку влево и реальный размер массива (его емкость, capacity) не изменяется никак. Механизм автоматического «расширения» массива существует, а вот автоматического «сжатия» нет, можно только явно выполнить «сжатие» командой trimToSize().
Всем привет!
Мы сделали сервис, который отбирает вакансии по вашим интересам.
Настройте личные фильтры: локация, точный технологический стек, и, конечно, не забудьте о деньгах.
Все самые подходящие предложения рынка – в @GetMeIT_bot
Мы сделали сервис, который отбирает вакансии по вашим интересам.
Настройте личные фильтры: локация, точный технологический стек, и, конечно, не забудьте о деньгах.
Все самые подходящие предложения рынка – в @GetMeIT_bot
#вопросы_с_собеседований
Какие виды ссылок на методы вы знаете?
Какие виды ссылок на методы вы знаете?
☕️ ссылки на статические методы;
☕️ ссылки на методы экземпляра;
☕️ ссылки на конструкторы;
☕️ ссылки на обобщенные (шаблонные) методы.
☕️ ссылки на методы экземпляра;
☕️ ссылки на конструкторы;
☕️ ссылки на обобщенные (шаблонные) методы.
Зачем нужна математика?
Из лекции аспиранта ВМК МГУ вы узнаете основные кейсы применения математики в индустриальных задачах.
https://proglib.io/w/ae566036
Из лекции аспиранта ВМК МГУ вы узнаете основные кейсы применения математики в индустриальных задачах.
https://proglib.io/w/ae566036
YouTube
Зачем нужна математика? Лекция аспиранта ВМК МГУ
Разбираем кейсы применения математики в индустриальных задачах.
Оставить заявку на курс «Математика для Data Science» можно здесь – https://proglib.io/w/bb13962b
Промокод на скидку 20% – WEB20
Оставить заявку на курс «Математика для Data Science» можно здесь – https://proglib.io/w/bb13962b
Промокод на скидку 20% – WEB20
Оба метода являются способами подачи задачи в пул потоков, но между ними есть небольшая разница.
execute(Runnable command) определён в интерфейсе Executor и выполняет поданную задачу и ничего не возвращает.
submit() – перегруженный метод, определённый в интерфейсе ExecutorService. Способен принимать задачи типов Runnable и Callable и возвращать объект Future, который можно использовать для контроля и управления процессом выполнения, получения его результата.
execute(Runnable command) определён в интерфейсе Executor и выполняет поданную задачу и ничего не возвращает.
submit() – перегруженный метод, определённый в интерфейсе ExecutorService. Способен принимать задачи типов Runnable и Callable и возвращать объект Future, который можно использовать для контроля и управления процессом выполнения, получения его результата.
#вакансия #Senior #Middle #java #remote #fulltime
Fintech компания AMarkets приглашает Middle/Senior Java разработчиков в связи с расширением команды back-end разработки.
Вилка: от 2 500 USD на руки
Что мы даем:
- Релокацию в Черногорию за счет компании или удалённую работу.
- AMarkets - продуктовая компания, и мы даем свободу в выборе реализации разработчику. Мы с удовольствием применяем все возможные современные технологии и методологии в разработке: Микросервисы, SOLID, Clean architecture.
Над чем предстоит работать:
- анализировать задачи бизнеса и находить оптимальные решения;
- улучшать текущую кодовую базу;
- разрабатывать архитектуру для новых проектов;
- писать код - модульный, читаемый и тестируемый.
Чем нужно владеть:
- опытом Java разработки от 3 лет;
- опытом использования Spring Framework;
- умением писать тесты, unit\интеграционные;
- знанием SQL на уровне запросов.
Будет полезно:
- написание коммерческих проектов с использованием Kotlin;
- опыт работы с микросервисной архитектурой;
- опыт работы с CICD;
- участие в финтех проекте.
@Annalex67, [email protected]
Fintech компания AMarkets приглашает Middle/Senior Java разработчиков в связи с расширением команды back-end разработки.
Вилка: от 2 500 USD на руки
Что мы даем:
- Релокацию в Черногорию за счет компании или удалённую работу.
- AMarkets - продуктовая компания, и мы даем свободу в выборе реализации разработчику. Мы с удовольствием применяем все возможные современные технологии и методологии в разработке: Микросервисы, SOLID, Clean architecture.
Над чем предстоит работать:
- анализировать задачи бизнеса и находить оптимальные решения;
- улучшать текущую кодовую базу;
- разрабатывать архитектуру для новых проектов;
- писать код - модульный, читаемый и тестируемый.
Чем нужно владеть:
- опытом Java разработки от 3 лет;
- опытом использования Spring Framework;
- умением писать тесты, unit\интеграционные;
- знанием SQL на уровне запросов.
Будет полезно:
- написание коммерческих проектов с использованием Kotlin;
- опыт работы с микросервисной архитектурой;
- опыт работы с CICD;
- участие в финтех проекте.
@Annalex67, [email protected]