seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

-

Изучаем Java. По вопросам сотрудничества: @seniorvladislav

Subscribe to a channel

Senior Java Developer

Пять задач, которые приходится решать при трудоустройстве начинающим Java-разработчикам в 2022 году

Смотреть статью

Читать полностью…

Senior Java Developer

Как конвертировать массив в список?

Используется метод Arrays.asList(), который преобразует массив в список.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какой самый надежный способ проверить, равны ли два значения типа double?

Наиболее надежный и точный способ проверить это — использовать Dоuble.соmpare() и сравнить значение с нулем.

Читать полностью…

Senior Java Developer

Где найти рейтинг лучших курсов по Java-разработке?

Мы — tutortop, самый крупный агрегатор курсов на рынке онлайн-образования! Сейчас в нашем сервисе представлено более 5000 курсов от более чем 300 школ и все их можно сравнить по цене, рейтингу и отзывам, а еще купить дешевле, чем в напрямую🔥

Специально для вас мы собрали подборку из топовых курсов по Java по мнению наших пользователей:

Профессия: «Java-разработчик с гарантией трудоустройства» от Skypro. Рейтинг 4.9 на основе 159 отзывов.

Профессия: «Java-разработчик» от ProductStar. Рейтинг 4.8 на основе 97 отзывов.

Курс «Программист Java» от GeekBrains. Рейтинг 4.5 на основе 333 отзывов.

Еще более 40 курсов по Java-разработке можно найти и сравнить в tutortop!⚡️

Читать полностью…

Senior Java Developer

📌 Бесплатное обучение по дизайну с нуля. Вместе сделаем тебе портфолио из 3+ новых работ

Что ты получишь?
- Фидбэк (разбор всех ДЗ от куратора)
- Тусовка (личный кабинет с уроками + живой чат)
- Портфолио (упакуем по урокам и проверим)
- Экзамен (аттестация и балл)

Будем делать: веб-дизайн, графический дизайн, анимация интерфейсов - /channel/YudaevSchoolmkbot?start=ZGw6MTA1NTcw

Программа обучения:
- Как работать в Figma с нуля
- Изучение основ дизайна (сетки, композиция т.д.)
- Способы поиска контента и правильной работы с ним
- Создание анимации интерфейса
- 4 домашних задания
- Личные разборы от наставника (дизайнер с опытом и доходом от 100к)
- Эфир - "Как найти себе первого клиента"

👉 Переходи в чат, там тебя уже ждут кураторы, уроки, домашки и живое общение! - /channel/YudaevSchoolmkbot?start=ZGw6MTA1NTcw

Читать полностью…

Senior Java Developer

Форматирование даты с помощью SimpleDateFormat

SimpleDateFormat — это конкретный класс для парсинга и форматирования даты в Java. SimpleDateFormat позволяет начать с выбора любых пользовательских шаблонов для форматирования даты и времени.

Читать полностью…

Senior Java Developer

Empty String

Если вам нужно проверить, содержит ли строка пустое значение — используйте метод isEmpty(). Почему не equals()? Он банально медленней. Если вы просмотрите его реализацию для строки, то сразу все поймете. Не удивляйтесь, многие разработчики до сих пор не знают про этот метод.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какая разница между процессом и потоком?

Существуют следующие различия между процессом и потоком:
1) Программа в исполнении называется процессом, тогда как Поток является подмножеством процесса.
2) Процессы независимы, тогда как потоки являются подмножеством процесса.
3) Процессы имеют различное адресное пространство в памяти, в то время как потоки содержат общее адресное пространство.
4) Переключение контекста происходит быстрее между потоками по сравнению с процессами.
5) Межпроцессное взаимодействие медленнее и дороже, чем межпотоковое взаимодействие.
6) Любые изменения в родительском процессе не влияют на дочерний процесс, тогда как изменения в родительском потоке могут влиять на дочерний поток.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Что такое «сессия»?

Сессия — это сеанс связи между клиентом и сервером, устанавливаемый на определенное время. Сеанс устанавливается непосредственно между клиентом и веб-сервером в момент получения первого запроса к веб-приложению. Каждый клиент устанавливает с сервером свой собственный сеанс, который сохраняется до окончания работы с приложением.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Как получить текущую дату с использованием Date Time API из Java 8?

LocalDate.now();

Как добавить 1 неделю, 1 месяц, 1 год, 10 лет к текущей дате с использованием Date Time API?

LocalDate.now().plusWeeks(1);
LocalDate.now().plusMonths(1);
LocalDate.now().plusYears(1);
LocalDate.now().plus(1, ChronoUnit.DECADES);

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
В каком случае может быть потерян элемент в HashMap?

Допустим, в качестве ключа используется не примитив, а объект с несколькими полями. После добавления элемента в HashMap у объекта, который выступает в качестве ключа, изменяют одно поле, которое участвует в вычислении хэш-кода. В результате при попытке найти данный элемент по исходному ключу, будет происходить обращение к правильной корзине, а вот equals уже не найдет указанный ключ в списке элементов. Тем не менее, даже если equals реализован таким образом, что изменение данного поля объекта не влияет на результат, то после увеличения размера корзин и пересчета хэш-кодов элементов, указанный элемент, с измененным значением поля, с большой долей вероятности попадет в совершенно другую корзину и тогда уже потеряется совсем.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Как получить коллекцию только для чтения?

При помощи:
Collections.unmodifiableList(list);
Collections.unmodifiableSet(set);
Collections.unmodifiableMap(map).

Эти методы принимают коллекцию в качестве параметра, и возвращают коллекцию только для чтения с теми же элементами внутри.

Читать полностью…

Senior Java Developer

Как конвертировать ArrayList в массив на Java?

Рассмотрим пример простой программы, которая преобразовывает ArrayList в массив в Java.

Мы используем реализацию метода toArray(T[] a) класса ArrayList, чтобы конвертировать ArrayList в массив на Java. «Под капотом» этого метода используется метод Arrays.copyOf(), чтобы конвертировать ArrayList в Array.

Читать полностью…

Senior Java Developer

Выключение компьютера с помощью Java

С помощью следующего фрагмента кода, вы сможете с легкостью выключить свой компьютер. Работает не со всеми версиями Java.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?

✔️Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
✔️Для создания объекта статического вложенного класса объект внешнего класса не требуется.
✔️Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
✔️Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
✔️В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статического такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.

Читать полностью…

Senior Java Developer

MyBatis

MyBatis фреймворк для осуществления маппинга между Java-приложениями и базами данных SQL. Обычно для подключения приложения к реляционной БД необходим API Java Database Connectivity. Он позволяет разработчикам выполнять крупные SQL-операции за несколько строчек кода.

MyBatis сравнивают с фреймворком Hibernate, так как оба являются посредниками между приложением и базой данных. Единственное отличие в том, что MyBatis не делает маппинг объектов Java в реляционную БД.

https://mybatis.org/mybatis-3/

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какая проблема возникнет с этим кодом?

Ответ: Данный код не с компилируется.

Этот вопрос на знание иерархии исключений, в данном случае FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения и в следующий блок catch управление не будет передано.

Читать полностью…

Senior Java Developer

Data reading

Что плохого в этих невинных строках? Да в общем-то ничего, кроме того факта, что мы не знаем размер файла который считываем. Вместо файла может быть что угодно — открытый сокет, который принимает данные, данные из post запроса, все… В общем случае старайтесь не считывать всё в массив байтов, у вас попросту может не хватить памяти. Поэтому будьте осторожны с размером любых данных. Старайтесь обрабатывать и пересылать данные по частям. И всегда следите за размером пользовательских данных и по возможности ограничивайте их.

Читать полностью…

Senior Java Developer

Log field

Используете логированние в классе? Всегда определяйте переменную лога как static final. Во-первых: у вас никогда не возникнет проблем при попытках сериализации и десериализации обьекта. Во-вторых: инициализация происходит только 1 раз, вместо постоянной инициализации при создании обьектов класса.

Читать полностью…

Senior Java Developer

Fields initialization

Старайтесь не инициализировать поля класса преждевременно, кроме случаев когда вы в этом очень сильно уверены. Всё-таки для этих целей у Вас есть конструктор. В случае явного указания значений для полей класса — они будут проинициализированы до вызова конструктора, что влечет дополнительные расходы в тех случаях, когда у Вас нет необходимости пользоваться проинициализированными значениями, например, когда сразу после создания обьекта Вы устанавливаете другие значения для проинициализированных полей. Ну и не забывайте, что поля класса всегда инициализируются значениями по умолчанию.

Читать полностью…

Senior Java Developer

VDS для разработчиков и DevOps-инженеров от 239 ₽/мес!

Хостинг SpaceWeb предлагает большой выбор серверов для размещения IT-проектов и инфраструктур с посуточным биллингом и оплатой только за ресурсы.

Есть линейки серверов для любых задач!

VDS на скоростных NVMe для размещения сайтов, ботов и установки ПО (Docker, GitLab и др.).
VDS на HDD до 1 ТБ для облачного хранилища данных (NextCloud), файл- или бэкап-сервера.
VDS c CPU 5 ГГц для игрового сервера, бэкенда мобильного приложения или стримингового сервиса.

Или соберите свою сборку, используя гибкий конфигуратор серверов. Запускайте серверы в Москве и Санкт-Петербурге, а также объединяйте в приватные сети 1 Гб/сек. Есть бесплатные снапшоты, на всех тарифах включена защита от DDoS.

Переходите и тестируйте бесплатно 3 дня!

➡️ Попробовать бесплатно

Реклама. ООО "СпейсВэб" erid: 2VtzqwZGx8R

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Как сборка мусора (Garbage Collection) не допускает нехватку памяти в приложении на Java?

Ответ:
Сборщик мусора (Garbage Collector) в Java — не волшебная пилюля от нехватки памяти в приложениях. Он просто очищает неиспользуемую память, когда объект выходит из области видимости и в нём отпадает потребность. Так что никакой гарантии, что сборка мусора предотвратит ошибки, связанные с нехваткой памяти, нет.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Как уведомить объект в сессии, что сессия недействительна или закончилась?

Чтобы быть уверенным в том, что объект будет оповещён о прекращении сессии, нужно реализовать интерфейс javax.servlet.http.HttpSessionBindingListener. Два метода этого интерфейса: valueBound() и valueUnbound() используются при добавлении объекта в качестве атрибута к сессии и при уничтожении сессии соответственно.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Как одним вызовом из List получить List со всеми элементами, кроме первых и последних 3-х?

Ответ на картинке.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Для чего используются ключевые слова volatile, synchronized, transient, native?

volatile вынуждает потоки отключить оптимизацию доступа и использовать единственный экземпляр переменной. Если переменная примитивного типа – этого будет достаточно для обеспечения потокобезопасности. Если же переменная является ссылкой на объект – синхронизировано будет исключительно значение этой ссылки. Все данные, содержащиеся в объекте, синхронизированы не будут!

synchronized — это зарезервированное слово позволяет добиваться синхронизации в помеченных им методах или блоках кода.

Ключевые слова transient и native к многопоточности никакого отношения не имеют, первое используется для указания полей класса, которые не нужно сериализовать, а второе сигнализирует о том, что метод реализован в платформо-зависимом коде.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Как одной строчкой преобразовать HashSet в ArrayList?

Ответ на картинке.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какой символ является разделителем при указании пути в файловой системе?

Для различных операционных систем символ разделителя различается. Для Windows это \, для Linux - /.

В Java получить разделитель для текущей операционной системы можно через обращение к статическому полю File.separator.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Каково максимальное число значений hashCode()?

Число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2^32.

Читать полностью…

Senior Java Developer

Округление дробных чисел до целых

1) Math.ceil(n) — возвращает наименьшее целое число, которое больше или равно аргумента n.
2) Math.floor(n) — возвращает наибольшее целое число, которое меньше или равно аргументу n.
3) Math.round(n) — возвращает целое число, ближайшее к аргументу n (округляет n).

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Как вывести на экран количество пустых строк с помощью метода filter()?

Снова используем Stream. Ответ на картинке.

Читать полностью…
Subscribe to a channel