Final класс
Нельзя расширять класс, объявленный как final. Проще говоря, никакой класс не может наследоваться от данного.
Прекрасным примером final класса в JDK является String. Первый шаг к созданию неизменяемого класса — пометить его как final, и тогда нельзя будет его расширить.
#код
Нельзя расширять класс, объявленный как final. Проще говоря, никакой класс не может наследоваться от данного.
Прекрасным примером final класса в JDK является String. Первый шаг к созданию неизменяемого класса — пометить его как final, и тогда нельзя будет его расширить.
#код
Кто и в каких задачах быстрее? Coroutines, RxJava, Executor?
Вы когда-нибудь задумывались, какой из фреймворков для многопоточки самый быстрый? Я вроде и знал ответ, но задумывался периодически. В определённый момент сама судьба просто-напросто заставила меня взять и проверить. Так что если вам тоже всегда было это интересно, то я постарался протестировать, сравнить и предоставить результаты для вас.
Читать статью
Вы когда-нибудь задумывались, какой из фреймворков для многопоточки самый быстрый? Я вроде и знал ответ, но задумывался периодически. В определённый момент сама судьба просто-напросто заставила меня взять и проверить. Так что если вам тоже всегда было это интересно, то я постарался протестировать, сравнить и предоставить результаты для вас.
Читать статью
Метод Math.pow()
Возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Выше рассмотрен пример возведение числа в квадрат и куб.
Заметьте, для вывода на экран целого значения используется "%.0f", так как метод возвращает double значение.
#код
Возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Выше рассмотрен пример возведение числа в квадрат и куб.
Заметьте, для вывода на экран целого значения используется "%.0f", так как метод возвращает double значение.
#код
Пост-дайджест свежих полезных статей по теме Java. Сохраняй себе:
☕️ Просто о сложном: трассировки в микросервисах
☕️ Реализация Transactional outbox pattern и немного DDD
☕️ Настройка и мониторинг Java приложений
☕️ Хотите переплюнуть профессиональных Java-разработчиков? Roadmap для изучения Java в 2023 году
☕️ Ещё раз о пропертях или откуда что берётся
☕️ Профилирование, ассемблер и все-все-все
☕️ Spring Data JPA: замена нескольких запросов одним и почему это очень важно
#дайджест
☕️ Просто о сложном: трассировки в микросервисах
☕️ Реализация Transactional outbox pattern и немного DDD
☕️ Настройка и мониторинг Java приложений
☕️ Хотите переплюнуть профессиональных Java-разработчиков? Roadmap для изучения Java в 2023 году
☕️ Ещё раз о пропертях или откуда что берётся
☕️ Профилирование, ассемблер и все-все-все
☕️ Spring Data JPA: замена нескольких запросов одним и почему это очень важно
#дайджест
Предпочитаете улучшать навыки программирования в свободное время, читая статьи и просматривая видео, или обращаетесь к гайдам только по мере необходимости на работе? Расскажите в комментариях ⬇️
#интерактив
#интерактив
Империя красивых девочек. Как умные спам-боты зарабатывают в Telegram
Наверняка вам уже порядком надоели эти спамерские боты, оставляющие комментарии при помощи нейросетей. В статье автор постарался разобраться, для чего они нужны, как работают и как с ними бороться (спойлер — пока никак).
Читать статью
Наверняка вам уже порядком надоели эти спамерские боты, оставляющие комментарии при помощи нейросетей. В статье автор постарался разобраться, для чего они нужны, как работают и как с ними бороться (спойлер — пока никак).
Читать статью
Узнаем IP-адрес своего компьютера
InetAddress.getLocalHost() используется для поиска частных IP - адресов, используемых в локальной сети или любой другой локальной сети.
Подробнее объяснение кода можно найти здесь.
InetAddress.getLocalHost() используется для поиска частных IP - адресов, используемых в локальной сети или любой другой локальной сети.
Подробнее объяснение кода можно найти здесь.
Какой параметр запуска JVM используется для контроля размера стека потока?
-Xss
#вопросы_с_собеседований
#вопросы_с_собеседований
🏗️ Ненужная сложность: почему мы неправильно проектируем программное обеспечение
В этой статье расскажем про причины неправильного проектирования ПО и предложим средства для устранения анти-шаблона ненужной сложности.
🔗 Основной сайт
🔗 Зеркало
В этой статье расскажем про причины неправильного проектирования ПО и предложим средства для устранения анти-шаблона ненужной сложности.
🔗 Основной сайт
🔗 Зеркало
👨💻🗺️ Кому в IT жить хорошо: Indeed опубликовал список из 19 наиболее востребованных спецов за рубежом в 2023 году
Рассказываем, кем нужно быть и какой стек начать изучать, чтобы жить в Кремниевой долине и зарабатывать от $150 000.
🔗 Основной сайт
🔗 Зеркало
Рассказываем, кем нужно быть и какой стек начать изучать, чтобы жить в Кремниевой долине и зарабатывать от $150 000.
🔗 Основной сайт
🔗 Зеркало
Java Bean
JavaBeans - это стандартный подход к созданию переносимых и повторно используемых компонентов. Они представляют собой классы, которые следуют определенным соглашениям и обеспечивают удобный способ управления состоянием и поведением объектов.
Основные характеристики JavaBeans:
1. Класс должен быть публичным и иметь открытый конструктор без аргументов.
2. Приватные поля класса должны быть доступны с помощью геттеров и сеттеров (
3. Класс должен быть сериализуемым, то есть должен реализовывать интерфейс
JavaBeans - это стандартный подход к созданию переносимых и повторно используемых компонентов. Они представляют собой классы, которые следуют определенным соглашениям и обеспечивают удобный способ управления состоянием и поведением объектов.
Основные характеристики JavaBeans:
1. Класс должен быть публичным и иметь открытый конструктор без аргументов.
2. Приватные поля класса должны быть доступны с помощью геттеров и сеттеров (
getter
и setter
методы).3. Класс должен быть сериализуемым, то есть должен реализовывать интерфейс
Serializable
.JavaBeans
также могут иметь дополнительные свойства, такие как события и методы уведомления, которые позволяют другим компонентам реагировать на изменения состояния.Как разбить строку на подстроки по заданному разделителю?
Мы можем использовать метод split(String regex) для разделения строки на массив символов, используя в качестве разделителя регулярное выражение.
Метод split(String regex, int numOfStrings) является перегруженным методом для разделения строки на заданное количество строк. Мы можем использовать обратную черту для использования специальных символов регулярных выражений в качестве обычных символов.
#вопросы_с_собеседований
Мы можем использовать метод split(String regex) для разделения строки на массив символов, используя в качестве разделителя регулярное выражение.
Метод split(String regex, int numOfStrings) является перегруженным методом для разделения строки на заданное количество строк. Мы можем использовать обратную черту для использования специальных символов регулярных выражений в качестве обычных символов.
#вопросы_с_собеседований
Скомпилируется ли код с картинки?
Да, код будет скомпилирован, потому что он следует спецификации функционального интерфейса, определяющей только один абстрактный метод. Второй метод, count, является методом по умолчанию, который не увеличивает количество абстрактных методов.
#вопросы_с_собеседований
Да, код будет скомпилирован, потому что он следует спецификации функционального интерфейса, определяющей только один абстрактный метод. Второй метод, count, является методом по умолчанию, который не увеличивает количество абстрактных методов.
#вопросы_с_собеседований
Как не допустить сериализацию?
Чтобы не допустить автоматическую сериализацию можно переопределить private методы для создания исключительной ситуации NotSerializableException.
Любая попытка записать или прочитать этот объект теперь приведет к возникновению исключительной ситуации.
#код
Чтобы не допустить автоматическую сериализацию можно переопределить private методы для создания исключительной ситуации NotSerializableException.
Любая попытка записать или прочитать этот объект теперь приведет к возникновению исключительной ситуации.
#код
✍️ «Библиотека программиста» находится в поиске переводчика технических статей
Обязанности
• Перевод технических статей, документации и руководств с английского на русский язык.
• Редактирование и корректура переведенных текстов для обеспечения высокого качества и своевременной доставки переводов.
Что значит редактирование? Просто так взять DeepL и слово в слово перевести статью не получится?
• Не получится. Как правило, 10–40% текста — «вода». Переводчик должен убрать все лишнее и оставить главное, чтобы читатель не тратил время на чтение «забавной истории из жизни моего питомца, который внес неоценимый вклад в написание данного материала».
Мы предлагаем
• Удаленку.
• Официальное трудоустройство.
• Своевременную оплату за выполненную работу.
➡️ Заполнить анкету ⬅️
Я хорошо программирую, но пишу «так себе». Что делать?
Если вы хорошо программируете, но навыки письма немного отстают, пройдите наш бесплатный курс на Степике «Статьи для IT: как объяснять и распространять значимые идеи».
Обязанности
• Перевод технических статей, документации и руководств с английского на русский язык.
• Редактирование и корректура переведенных текстов для обеспечения высокого качества и своевременной доставки переводов.
Что значит редактирование? Просто так взять DeepL и слово в слово перевести статью не получится?
• Не получится. Как правило, 10–40% текста — «вода». Переводчик должен убрать все лишнее и оставить главное, чтобы читатель не тратил время на чтение «забавной истории из жизни моего питомца, который внес неоценимый вклад в написание данного материала».
Мы предлагаем
• Удаленку.
• Официальное трудоустройство.
• Своевременную оплату за выполненную работу.
➡️ Заполнить анкету ⬅️
Я хорошо программирую, но пишу «так себе». Что делать?
Если вы хорошо программируете, но навыки письма немного отстают, пройдите наш бесплатный курс на Степике «Статьи для IT: как объяснять и распространять значимые идеи».
FileOutputStream vs. FileWriter
Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи.
FileOutputStream предназначен для записи потоков необработанных байтов. Это делает его идеальным решением для работы, например, с изображениями.
У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод.
Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи.
FileOutputStream предназначен для записи потоков необработанных байтов. Это делает его идеальным решением для работы, например, с изображениями.
У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод.
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?
☕️ Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
☕️ Для создания объекта статического вложенного класса объект внешнего класса не требуется.
☕️ Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
☕️ Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
☕️ В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
#вопросы_с_собеседований
☕️ Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
☕️ Для создания объекта статического вложенного класса объект внешнего класса не требуется.
☕️ Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
☕️ Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
☕️ В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
#вопросы_с_собеседований
Объединение двух массивов
Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUtils из Commons Lang.
Подробнее можно ознакомиться здесь.
Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUtils из Commons Lang.
Подробнее можно ознакомиться здесь.