dbeaver — бесплатный универсальный инструмент для работы с базами данных и SQL-клиент
https://github.com/dbeaver/dbeaver
https://github.com/dbeaver/dbeaver
GitHub
GitHub - dbeaver/dbeaver: Free universal database tool and SQL client
Free universal database tool and SQL client. Contribute to dbeaver/dbeaver development by creating an account on GitHub.
👍17🔥1
Какое значение будет сохранено в строку s?
String s = "value = " + 2 + 2;
String s = "value = " + 2 + 2;
Anonymous Quiz
8%
"value = 2 + 2"
36%
"value = 22"
23%
Ошибка компиляции
21%
"value = 4"
5%
"value = 2 2"
6%
Узнать ответ
👍27😱3
#Вопросы_с_собеседования
❓Что такое Aspect, Advice, Pointcut и JoinPoint в АОП?
Aspect — класс, который реализует сквозные функции, такие как управление транзакциями.
Advice — методы, которые выполняются, когда в приложении достигается определенный JoinPoint с соответствующим Pointcut.
Pointcut — набор регулярных выражений, которые сопоставляются с JoinPoint, чтобы определить, нужно ли выполнять Advice или нет.
JoinPoint — некая точка во время выполнения программы, например выполнение метода или обработка исключения.
❓Что такое Aspect, Advice, Pointcut и JoinPoint в АОП?
Aspect — класс, который реализует сквозные функции, такие как управление транзакциями.
Advice — методы, которые выполняются, когда в приложении достигается определенный JoinPoint с соответствующим Pointcut.
Pointcut — набор регулярных выражений, которые сопоставляются с JoinPoint, чтобы определить, нужно ли выполнять Advice или нет.
JoinPoint — некая точка во время выполнения программы, например выполнение метода или обработка исключения.
👍24
#Вопросы_с_собеседования
❓Что такое string-pool? В чем отличие cоздания строки через new от литерала? Что такое String.intern()?
string-pool — структура в памяти, хранящая массив всех строк-литералов программы.
String.intern(), соответственно, вернет строку из пула, при наличии таковой. Полезно при сравнениях вида:
❓Что такое string-pool? В чем отличие cоздания строки через new от литерала? Что такое String.intern()?
string-pool — структура в памяти, хранящая массив всех строк-литералов программы.
String.intern(), соответственно, вернет строку из пула, при наличии таковой. Полезно при сравнениях вида:
new String("hello").intern() == new String("hello").intern()
Т.к без интернирования пришлось бы сравнивать строки через equals, что может быть медленнее при наличии длинных строк. В данном случае возвращается ссылка на один и тот же объект строки из пула, и проверка проходит с true.👍24❤2
Введение в многопоточность в Java. Часть 1. Преимущества и недостатки многопоточности
Смотреть статью
Смотреть статью
Библиотека программиста
☕🧵 Введение в многопоточность в Java. Часть 1. Преимущества и недостатки многопоточности
В чем заключается «магия» многопоточности? Как создать поток и чем он отличается от процесса? Как процессор обрабатывает потоки?
👍10
#Вопросы_с_собеседования
❓Что вы знаете об интерфейсе FileFilter?
Интерфейс FileFilter применяется для проверки, попадает ли объект File под некоторое условие. Этот интерфейс содержит единственный метод boolean accept(File pathName). Этот метод необходимо переопределить и реализовать.
❓Что вы знаете об интерфейсе FileFilter?
Интерфейс FileFilter применяется для проверки, попадает ли объект File под некоторое условие. Этот интерфейс содержит единственный метод boolean accept(File pathName). Этот метод необходимо переопределить и реализовать.
👍18
#Вопросы_с_собеседования
❓Что такое иерархия исключений?
Иерархия следующая:
Throwable – родительский класс для всех классов Exception. Есть два типа исключений: отмеченные исключения и UncheckedExceptions или RunTimeExceptions. Оба типа исключений расширяют класс Exception, тогда как ошибки далее классифицируются на ошибку виртуальной машины и ошибку утверждения.
❓Что такое иерархия исключений?
Иерархия следующая:
Throwable – родительский класс для всех классов Exception. Есть два типа исключений: отмеченные исключения и UncheckedExceptions или RunTimeExceptions. Оба типа исключений расширяют класс Exception, тогда как ошибки далее классифицируются на ошибку виртуальной машины и ошибку утверждения.
👍21😢4
#Вопросы_с_собеседования
❓В equals() требуется проверять, что аргумент equals(Object that) такого же типа что и сам объект. В чем разница между this.getClass() == that.getClass() и that instanceof MyClass?
Оператор instanceof сравнивает объект и указанный тип. Его можно использовать для проверки, является ли данный объект экземпляром некоторого класса, либо экземпляром его дочернего класса, либо экземпляром класса, который реализует указанный интерфейс.
this.getClass() == that.getClass() проверяет два класса на идентичность, поэтому для корректной реализации контракта метода equals() необходимо использовать точное сравнение с помощью метода getClass().
❓В equals() требуется проверять, что аргумент equals(Object that) такого же типа что и сам объект. В чем разница между this.getClass() == that.getClass() и that instanceof MyClass?
Оператор instanceof сравнивает объект и указанный тип. Его можно использовать для проверки, является ли данный объект экземпляром некоторого класса, либо экземпляром его дочернего класса, либо экземпляром класса, который реализует указанный интерфейс.
this.getClass() == that.getClass() проверяет два класса на идентичность, поэтому для корректной реализации контракта метода equals() необходимо использовать точное сравнение с помощью метода getClass().
👍19😢2
#Вопросы_с_собеседования
❓Напишите метод, который на вход получает коллекцию объектов, а возвращает коллекцию уже без дубликатов
Ответ на картинке.
❓Напишите метод, который на вход получает коллекцию объектов, а возвращает коллекцию уже без дубликатов
Ответ на картинке.
👍53🤔3
#Вопросы_с_собеседования
❓Опишите специальные коллекции для перечислений. Каковы преимущества их внедрения по сравнению с обычными коллекциями?
EnumSet и EnumMap — это специальные реализации интерфейсов Set и Map соответственно. Всегда стоит использовать эти реализации, когда имеете дело с перечислениями, потому что они очень эффективны.
EnumSet — это просто битовый вектор с «единицами» в позициях, соответствующих порядковым значениям перечислений, присутствующих в множестве. Чтобы проверить, находится ли значение перечисления в множестве, реализация просто должна проверить, является ли соответствующий бит в векторе «единицей», что является очень простой операцией.
Точно так же EnumMap — это массив, доступ к которому осуществляется с помощью порядкового значения перечисления в качестве индекса. В случае с EnumMap нет необходимости вычислять хеш-коды или разрешать коллизии.
❓Опишите специальные коллекции для перечислений. Каковы преимущества их внедрения по сравнению с обычными коллекциями?
EnumSet и EnumMap — это специальные реализации интерфейсов Set и Map соответственно. Всегда стоит использовать эти реализации, когда имеете дело с перечислениями, потому что они очень эффективны.
EnumSet — это просто битовый вектор с «единицами» в позициях, соответствующих порядковым значениям перечислений, присутствующих в множестве. Чтобы проверить, находится ли значение перечисления в множестве, реализация просто должна проверить, является ли соответствующий бит в векторе «единицей», что является очень простой операцией.
Точно так же EnumMap — это массив, доступ к которому осуществляется с помощью порядкового значения перечисления в качестве индекса. В случае с EnumMap нет необходимости вычислять хеш-коды или разрешать коллизии.
👍17
Какое максимальное количество потоков может одновременно, не блокируя друг друга, совершить запись в ConcurrentHashMap?
Anonymous Quiz
31%
1
19%
По кол-ву записей (entry)
36%
По кол-ву корзин (bucket)
14%
По кол-ву деревьев (tree)
🤔15👍11
#Вопросы_с_собеседования
❓Каковы варианты использования Spring Framework?
Spring Framework можно использовать по-разному:
☕️ Как полноценное веб-приложение Spring.
☕️ В качестве стороннего веб-фреймворка с использованием Spring Frameworks среднего уровня.
☕️ Для удаленного использования.
☕️ Как корпоративный Java-бин, который может обертывать существующие POJO (Plain Old Java Objects).
❓Каковы варианты использования Spring Framework?
Spring Framework можно использовать по-разному:
☕️ Как полноценное веб-приложение Spring.
☕️ В качестве стороннего веб-фреймворка с использованием Spring Frameworks среднего уровня.
☕️ Для удаленного использования.
☕️ Как корпоративный Java-бин, который может обертывать существующие POJO (Plain Old Java Objects).
👍17🤔3😢2
#Вопросы_с_собеседования
❓Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
• При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass).
• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.
• Можно сузить возвращаемое значение, если они совместимы.
❓Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
• При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass).
• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.
• Можно сузить возвращаемое значение, если они совместимы.
👍21🤔3❤1
Генерируем код и пароль
Часто мы забываем наши пароли и выбираем опцию «Забыть пароль», и в кратчайшие сроки мы получаем новый пароль на наш зарегистрированный адрес электронной почты или номер телефона для входа в нашу учетную запись.
Иногда мы получаем доступ к нашим банковским счетам во время покупок в интернет-магазине и чтобы подтвердить наш переход с банковского счета, нам отправляют нам OTP (одноразовый пароль) на наш зарегистрированный номер телефона или адрес электронной почты.
Следующий код объясняет, как быстро генерировать такие пароли и OTP.
Часто мы забываем наши пароли и выбираем опцию «Забыть пароль», и в кратчайшие сроки мы получаем новый пароль на наш зарегистрированный адрес электронной почты или номер телефона для входа в нашу учетную запись.
Иногда мы получаем доступ к нашим банковским счетам во время покупок в интернет-магазине и чтобы подтвердить наш переход с банковского счета, нам отправляют нам OTP (одноразовый пароль) на наш зарегистрированный номер телефона или адрес электронной почты.
Следующий код объясняет, как быстро генерировать такие пароли и OTP.
👍53🔥7❤1