#вопросы_с_собеседований
Сколько объектов типа String создает эта программа?
Ответ:
Программа создаст два string-объекта. Когда мы создаем строку, используя оператор new, она сначала создастся в Java String Pool и только потом в куче (heap memory). Но только при условии, что этой строки ещё нет в пуле Java String.
Сколько объектов типа String создает эта программа?
Ответ:
Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице?
• ключ равен null: 1 - выполняется единственный метод getForNullKey().
• любой ключ отличный от null: 4 - вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.
• ключ равен null: 1 - выполняется единственный метод getForNullKey().
• любой ключ отличный от null: 4 - вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.
Чем отличаются и что общего у InputStream, OutputStream, Reader, Writer?
☕️
☕️
☕️
☕️
☕️
InputStream
и его наследники нужны для получения байтовых данных из разных источников☕️
OutputStream
и его наследники — набор классов, определяющих потоковый байтовый вывод☕️
Writer
и его наследники определяют потоковый вывод символов в юникоде☕️
Reader
и его наследники определяют потоковый ввод символов в юникодеПроверяем наличие дубликатов в массиве в Java
Мы можем работать лучше, используя Хеширование. Идея состоит в том, чтобы пройти по заданному массиву и вставить каждый встреченный элемент в HashSet. Теперь, если встреченный элемент уже присутствовал в наборе, он является дубликатом. Временная сложность этого решения O(n) но вспомогательное пространство используется O(n).
Мы знаем это HashSet не допускает дублирования значений в нем. Мы можем использовать это свойство для проверки дубликатов в массиве. Идея состоит в том, чтобы вставить все элементы массива в HashSet. Теперь массив содержит дубликат, если длина массива не равна размеру набора.
Другие способы проверить массив на дубликаты можно найти здесь.
Мы можем работать лучше, используя Хеширование. Идея состоит в том, чтобы пройти по заданному массиву и вставить каждый встреченный элемент в HashSet. Теперь, если встреченный элемент уже присутствовал в наборе, он является дубликатом. Временная сложность этого решения O(n) но вспомогательное пространство используется O(n).
Мы знаем это HashSet не допускает дублирования значений в нем. Мы можем использовать это свойство для проверки дубликатов в массиве. Идея состоит в том, чтобы вставить все элементы массива в HashSet. Теперь массив содержит дубликат, если длина массива не равна размеру набора.
Другие способы проверить массив на дубликаты можно найти здесь.
Проблема квадрата/прямоугольника, объяснение и решение
В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение.
https://youtu.be/AILeiAJY_78
В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение.
https://youtu.be/AILeiAJY_78
YouTube
Проблема квадрата/прямоугольника, объяснение и решение
В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение.
Паблик в VK: https:…
Паблик в VK: https:…
#вопросы_с_собеседований
Что такое пакет? Перечислите различные преимущества пакетов.
Пакеты — это набор связанных классов и интерфейсов, которые связаны вместе. Используя пакеты, разработчики могут легко модулировать код и оптимизировать его повторное использование. Кроме того, код внутри пакетов может быть импортирован другими классами и использован повторно. Несколько его преимуществ:
• Пакеты на Java помогают избежать конфликтов имен.
• Они обеспечивают более легкий контроль доступа к коду.
• Пакеты также могут содержать скрытые классы, которые не видны внешним классам и используются только внутри пакета..
• Создает правильную иерархическую структуру, которая упрощает поиск связанных классов.
Что такое пакет? Перечислите различные преимущества пакетов.
Пакеты — это набор связанных классов и интерфейсов, которые связаны вместе. Используя пакеты, разработчики могут легко модулировать код и оптимизировать его повторное использование. Кроме того, код внутри пакетов может быть импортирован другими классами и использован повторно. Несколько его преимуществ:
• Пакеты на Java помогают избежать конфликтов имен.
• Они обеспечивают более легкий контроль доступа к коду.
• Пакеты также могут содержать скрытые классы, которые не видны внешним классам и используются только внутри пакета..
• Создает правильную иерархическую структуру, которая упрощает поиск связанных классов.
#вопросы_с_собеседований
К каким переменным есть доступ у лямбда-выражений?
Если кто-то забыл, как работают лямбды, пример на картинке.
Доступ к переменным внешней области действия из лямбда-выражения очень схож к доступу из анонимных объектов. Можно ссылаться на:
☕️ неизменяемые (effectively final - не обязательно помеченные как final) локальные переменные;
☕️ поля класса;
☕️ статические переменные.
К методам по умолчанию реализуемого функционального интерфейса обращаться внутри лямбда-выражения запрещено.
К каким переменным есть доступ у лямбда-выражений?
☕️ неизменяемые (effectively final - не обязательно помеченные как final) локальные переменные;
☕️ поля класса;
☕️ статические переменные.
К методам по умолчанию реализуемого функционального интерфейса обращаться внутри лямбда-выражения запрещено.
Независимо от того, новичок вы или опытный пользователь, этот тест проверит ваши знания фундаментальных концепций и передовых методов Git.
🔗 Основной сайт
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
Краткая шпаргалка по паттернам проектирования
#вопросы_с_собеседований
Java передает аргументы по значению или по ссылке?
Java всегда передает аргументы по значению (pass-by-value). Тем не менее, когда мы передаем значение объекта, мы передаем ссылку на него, потому что переменные хранят ссылку на объект, а не сам объект. Но это не передача по ссылке (pass-by-reference). Такое положение дел может быть не совсем понятно новичкам.
Java передает аргументы по значению или по ссылке?
Java всегда передает аргументы по значению (pass-by-value). Тем не менее, когда мы передаем значение объекта, мы передаем ссылку на него, потому что переменные хранят ссылку на объект, а не сам объект. Но это не передача по ссылке (pass-by-reference). Такое положение дел может быть не совсем понятно новичкам.
План подготовки к собеседованию на позицию Java разработчика
Каждый раз, готовясь к собеседованиям на позицию «Java разработчик», я понимаю, что мне бы очень помог конкретный план подготовки. Поэтому все свои записи, накопившиеся в ходе прохождения собеседований, было решено структурировать и опубликовать. Надеюсь, кому-то этот план будет полезен.
Смотреть статью
Каждый раз, готовясь к собеседованиям на позицию «Java разработчик», я понимаю, что мне бы очень помог конкретный план подготовки. Поэтому все свои записи, накопившиеся в ходе прохождения собеседований, было решено структурировать и опубликовать. Надеюсь, кому-то этот план будет полезен.
Смотреть статью
Хабр
План подготовки к собеседованию на позицию Java разработчика
Каждый раз, готовясь к собеседованиям на позицию «Java разработчик», я понимаю, что мне бы очень помог конкретный план подготовки. Поэтому все свои записи, накопившиеся в ходе прохождения...
Построение графиков в Java
Данный видеоролик познакомит вас с основами построения графиков на языке Java
Смотреть видео
Данный видеоролик познакомит вас с основами построения графиков на языке Java
Смотреть видео
Почему я чуть не запорол свою карьеру тимлида. 4 совета начинающим
https://habr.com/ru/articles/730584/
https://habr.com/ru/articles/730584/
Хабр
Почему я чуть не запорол свою карьеру тимлида. 4 совета начинающим
Я работаю тимлидом уже несколько лет и с уверенностью могу сказать, что это направление развития мне очень нравится. А помню, я чуть не запорол свою карьеру тимлида в самом начале, на переходном этапе...
#вопросы_с_собеседований
Что произойдет с объектом Exception после обработки исключения?
Объект-исключение будет удален при следующей сборке мусора.
Что произойдет с объектом Exception после обработки исключения?
#вопросы_с_собеседований
Каковы ограничения для полей и методов интерфейса?
Интерфейс может объявлять поля, но они неявно объявляются как public, static и final, даже если вы не указываете эти модификаторы. Следовательно, вы не можете явно определить поле интерфейса как приватное. По сути, интерфейс может иметь только поля-константы, а не поля-экземпляры.
Все методы интерфейса также неявно объявлены public. Они также могут быть (неявно) abstract или default.
Каковы ограничения для полей и методов интерфейса?
Интерфейс может объявлять поля, но они неявно объявляются как public, static и final, даже если вы не указываете эти модификаторы. Следовательно, вы не можете явно определить поле интерфейса как приватное. По сути, интерфейс может иметь только поля-константы, а не поля-экземпляры.
Все методы интерфейса также неявно объявлены public. Они также могут быть (неявно) abstract или default.
Зачем нужны профили в Spring?
При разработке приложений мы обычно имеем дело с несколькими средами, такими как Dev, QA и Prod. Свойства конфигурации для этих сред отличаются.
Например, мы можем использовать встроенную базу данных H2 для Dev, но Prod может использовать проприетарную базу данных Oracle или DB2. Даже если СУБД одинакова во всех средах, URL-адреса определенно будут разными.
Чтобы сделать это простым и понятным, Spring предоставляет профили, помогающие разделить конфигурацию для каждой среды.Таким образом, вместо того, чтобы поддерживать это программно, свойства можно хранить в отдельных файлах, таких как application-dev.properties и application-prod.properties. По умолчанию application.properties указывает на текущий активный профиль с помощью spring.profiles.active, чтобы подобрать правильную конфигурацию.
Больше узнать о профилях в Spring можно по ссылке: https://www.baeldung.com/spring-profiles
При разработке приложений мы обычно имеем дело с несколькими средами, такими как Dev, QA и Prod. Свойства конфигурации для этих сред отличаются.
Например, мы можем использовать встроенную базу данных H2 для Dev, но Prod может использовать проприетарную базу данных Oracle или DB2. Даже если СУБД одинакова во всех средах, URL-адреса определенно будут разными.
Чтобы сделать это простым и понятным, Spring предоставляет профили, помогающие разделить конфигурацию для каждой среды.Таким образом, вместо того, чтобы поддерживать это программно, свойства можно хранить в отдельных файлах, таких как application-dev.properties и application-prod.properties. По умолчанию application.properties указывает на текущий активный профиль с помощью spring.profiles.active, чтобы подобрать правильную конфигурацию.
Больше узнать о профилях в Spring можно по ссылке: https://www.baeldung.com/spring-profiles
Baeldung
Spring Profiles | Baeldung
How to define and use Profiles in Spring. The 4 ways to enable profiles and their precedence. And a real-world example using profiles.
Сжатие указателей в Java
В статье речь пойдет о реализации сжатия указателей в Java Virtual Machine 64-bit, которое контролируется опцией UseCompressedOops и включено по-умолчанию для 64 битных систем начиная с Java SE 6u23.
Смотреть статью
В статье речь пойдет о реализации сжатия указателей в Java Virtual Machine 64-bit, которое контролируется опцией UseCompressedOops и включено по-умолчанию для 64 битных систем начиная с Java SE 6u23.
Смотреть статью
Хабр
Сжатие указателей в Java
В статье речь пойдет о реализации сжатия указателей в Java Virtual Machine 64-bit, которое контролируется опцией UseCompressedOops и включено по-умолчанию для 6...