Зачем нужны и какие бывают блоки инициализации?
Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.
• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в throws всех конструкторов класса.
• Блок инициализации возможно создать и в анонимном классе.
Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.
• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в throws всех конструкторов класса.
• Блок инициализации возможно создать и в анонимном классе.
#вопросы_с_собеседований
Что такое JDBC?
Что такое JDBC?
JDBC, Java DataBase Connectivity (соединение с базами данных на Java) — промышленный стандарт взаимодействия Java-приложений с различными СУБД. Реализован в виде пакета java.sql, входящего в состав Java SE.
JDBC основан на концепции драйверов, которые позволяют получать соединение с базой данных по специально описанному URL. При загрузке драйвер регистрирует себя в системе и в дальнейшем автоматически вызывается, когда программа требует URL, содержащий протокол, за который этот драйвер отвечает.
JDBC основан на концепции драйверов, которые позволяют получать соединение с базой данных по специально описанному URL. При загрузке драйвер регистрирует себя в системе и в дальнейшем автоматически вызывается, когда программа требует URL, содержащий протокол, за который этот драйвер отвечает.
Зачем учить Java в 2021-м?
Java занимает 2-е место в рейтинге TIOBE. Языку больше 20 лет, а на нём до сих пор пишут всё: сайты и мобильные приложения, нейросети и облачные сервисы. С помощью Java решают и социальные проблемы.
В 2014 году компания mFrontiers получила премию от Oracle. Ребята создали трекер доступности питьевой воды в бедных регионах Кении. Софт был написан для Android-смартфонов на Java.
Почему программисты выбирают Java?
◾️ Java постоянно развивается: язык пережил уже 11 версий
◾️ Производительность Java выше, чем у Python
◾️ Благодаря строгой типизации вероятность ошибок в Java меньше, чем в Python и JS
◾️ Junior-специалист может рассчитывать на зарплату от 90 000 рублей, а middle-специалистам платят в среднем 150 000 рублей.
Чтобы ощутить всю силу Java, записывайтесь на курс «Профессия Java-разработчик» от Skillbox : https://clc.am/M8MrKA
Java занимает 2-е место в рейтинге TIOBE. Языку больше 20 лет, а на нём до сих пор пишут всё: сайты и мобильные приложения, нейросети и облачные сервисы. С помощью Java решают и социальные проблемы.
В 2014 году компания mFrontiers получила премию от Oracle. Ребята создали трекер доступности питьевой воды в бедных регионах Кении. Софт был написан для Android-смартфонов на Java.
Почему программисты выбирают Java?
◾️ Java постоянно развивается: язык пережил уже 11 версий
◾️ Производительность Java выше, чем у Python
◾️ Благодаря строгой типизации вероятность ошибок в Java меньше, чем в Python и JS
◾️ Junior-специалист может рассчитывать на зарплату от 90 000 рублей, а middle-специалистам платят в среднем 150 000 рублей.
Чтобы ощутить всю силу Java, записывайтесь на курс «Профессия Java-разработчик» от Skillbox : https://clc.am/M8MrKA
📕 25 лучших книг для программистов
Список наиболее часто рекомендуемых книг о программировании, составлен по результатам анализа упоминаний в интернет-публикациях. Книги об алгоритмах, чистом коде, паттернах проектирования, а также пособия для развития soft skills и прохождения собеседований.
https://proglib.io/w/d604cfd8
Список наиболее часто рекомендуемых книг о программировании, составлен по результатам анализа упоминаний в интернет-публикациях. Книги об алгоритмах, чистом коде, паттернах проектирования, а также пособия для развития soft skills и прохождения собеседований.
https://proglib.io/w/d604cfd8
В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?
Размер массива
Размер массива
elementData
представляет собой вместимость (capacity
) ArrayList
, которая всегда больше переменной size - реального количества хранимых элементов. При необходимости вместимость автоматически возрастает.Почему LinkedList реализует и List, и Deque?
LinkedList
позволяет добавлять элементы в начало и конец списка за константное время, что хорошо согласуется с поведением интерфейса Deque
.Может ли статический метод быть переопределён или перегружен?
Перегружен - да. Всё работает точно так же, как и с обычными методами - 2 статических метода могут иметь одинаковое имя, если количество их параметров или типов различается.
Переопределён - нет. Выбор вызываемого статического метода происходит при раннем связывании (на этапе компиляции, а не выполнения) и выполняться всегда будет родительский метод, хотя синтаксически переопределение статического метода - это вполне корректная языковая конструкция.
В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
Перегружен - да. Всё работает точно так же, как и с обычными методами - 2 статических метода могут иметь одинаковое имя, если количество их параметров или типов различается.
Переопределён - нет. Выбор вызываемого статического метода происходит при раннем связывании (на этапе компиляции, а не выполнения) и выполняться всегда будет родительский метод, хотя синтаксически переопределение статического метода - это вполне корректная языковая конструкция.
В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
Ты опытный джавист, который устал сидеть дома за компом? Приходи на дискуссию о продуктовой Java-разработке в бар! Твоими собеседниками будут СТО Райффайзенбанка Сергей Мельников и ведущие подкаста «Мы обречены» — разработчик Фил Ранжир и журналист Артем Малышев.
На CIB OPEN BAR мы обсудим:
— Как не напороться на мучительный легаси-код и душную бюрократию?
— Правда ли, что теперь разработчики ищут стабильности?
— Как не перепутать стабильность со стагнацией?
— Что сейчас ценнее на рынке: умение писать идеальный код или вникать в сложную предметную область?
Ждем тебя 20 июля в 20:00 в Powerhouse Moscow. Участие бесплатное. Регистрируйся: https://clck.ru/WBgAi
На CIB OPEN BAR мы обсудим:
— Как не напороться на мучительный легаси-код и душную бюрократию?
— Правда ли, что теперь разработчики ищут стабильности?
— Как не перепутать стабильность со стагнацией?
— Что сейчас ценнее на рынке: умение писать идеальный код или вникать в сложную предметную область?
Ждем тебя 20 июля в 20:00 в Powerhouse Moscow. Участие бесплатное. Регистрируйся: https://clck.ru/WBgAi
Java Performance (2020)
Автор: Scott Oaks
Количество страниц: 450
Кодинг и тестирование обычно рассматриваются как отдельные области. В этой практической книге эксперт по Java Скотт Оукс придерживается подхода, согласно которому любой, кто работает с Java, должен понимать, как работает код в виртуальной машине, включая настройки, которые могут повысить производительность. Данное обновленное второе издание поможет вам получить глубокие знания о производительности приложений Java, используя как JVM, так и платформу Java.
Скачать книгу
Автор: Scott Oaks
Количество страниц: 450
Кодинг и тестирование обычно рассматриваются как отдельные области. В этой практической книге эксперт по Java Скотт Оукс придерживается подхода, согласно которому любой, кто работает с Java, должен понимать, как работает код в виртуальной машине, включая настройки, которые могут повысить производительность. Данное обновленное второе издание поможет вам получить глубокие знания о производительности приложений Java, используя как JVM, так и платформу Java.
Скачать книгу
Telegram
Книги для программистов (reserved)
Java Performance (2020)
Автор: Scott Oaks
Автор: Scott Oaks
Наверняка вы слышали о важности тестирования и о библиотеках для соответствующего тестирования — на Java таких полно.
Однако сама сфера тестирования очень разнообразна. На виртуальном митапе #X5meetup эксперты из Х5 Group, Home Credit Bank и Райффайзенбанк обсудят виды тестирования, поделятся опытом и ответят на ваши вопросы.
Митап пройдет онлайн 29 июля с 18:00 до 20:30. Подробная программа и регистрация здесь: https://proglib.io/w/498dccc8
Однако сама сфера тестирования очень разнообразна. На виртуальном митапе #X5meetup эксперты из Х5 Group, Home Credit Bank и Райффайзенбанк обсудят виды тестирования, поделятся опытом и ответят на ваши вопросы.
Митап пройдет онлайн 29 июля с 18:00 до 20:30. Подробная программа и регистрация здесь: https://proglib.io/w/498dccc8
#вопросы_с_собеседований
Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?
Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?
Stack был добавлен в Java 1.0 как реализация стека LIFO (last-in-first-out) и является расширением коллекции Vector, хотя это несколько нарушает понятие стека (например, класс Vector предоставляет возможность обращаться к любому элементу по индексу). Является частично синхронизированной коллекцией (кроме метода добавления push()) с вытекающими отсюда последствиями в виде негативного воздействия на производительность. После добавления в Java 1.6 интерфейса Deque, рекомендуется использовать реализации именно этого интерфейса, например, ArrayDeque.
#вопросы_с_собеседований
В чем разница между HashMap и WeakHashMap? Для чего используется WeakHashMap?
В чем разница между HashMap и WeakHashMap? Для чего используется WeakHashMap?
В
В качестве примера использования такой структуры данных можно привести следующую ситуацию: допустим имеются объекты, которые необходимо расширить дополнительной информацией, при этом изменение класса этих объектов нежелательно либо невозможно. В этом случае добавляем каждый объект в
Java
существует 4 типа ссылок: сильные (strong reference)
, мягкие (SoftReference)
, слабые (WeakReference)
и фантомные (PhantomReference)
. Особенности каждого типа ссылок связаны с работой Garbage Collector
. Если объект можно достичь только с помощью цепочки WeakReference
(то есть на него отсутствуют сильные и мягкие ссылки), то данный объект будет помечен на удаление.WeakHashMap
- это структура данных, реализующая интерфейс Map
и основанная на использовании WeakReference
для хранения ключей. Таким образом, пара «ключ-значение»
будет удалена из WeakHashMap
, если на объект-ключ более не имеется сильных ссылок.В качестве примера использования такой структуры данных можно привести следующую ситуацию: допустим имеются объекты, которые необходимо расширить дополнительной информацией, при этом изменение класса этих объектов нежелательно либо невозможно. В этом случае добавляем каждый объект в
WeakHashMap
в качестве ключа, а в качестве значения - нужную информацию. Таким образом, пока на объект имеется сильная ссылка (либо мягкая), можно проверять хэш-таблицу и извлекать информацию. Как только объект будет удален, то WeakReference
для этого ключа будет помещен в ReferenceQueue
и затем соответствующая запись для этой слабой ссылки будет удалена из WeakHashMap
.В WeakHashMap используются WeakReferences. А почему бы не создать PhantomHashMap на PhantomReferences?
PhantomReference
при вызове метода get()
возвращает всегда null
, поэтому тяжело представить назначение такой структуры данных.Проверьте себя в Java-квизе от команды из банковской практики Luxoft
Участвуйте в квизе с 14 по 27 июля, отвечайте правильно и быстрее всех на 10 вопросов и выигрывайте классные призы: смарт часы, аккумуляторы и футболки!
Ищите ссылку на квиз здесь
Все новости, видео прошедших митапов и анонсы предстоящих, вакансии и многое другое в Телеграм-канале Luxoft
Участвуйте в квизе с 14 по 27 июля, отвечайте правильно и быстрее всех на 10 вопросов и выигрывайте классные призы: смарт часы, аккумуляторы и футболки!
Ищите ссылку на квиз здесь
Все новости, видео прошедших митапов и анонсы предстоящих, вакансии и многое другое в Телеграм-канале Luxoft
Luxoft
Все о глобальном инновационном банке
Команда занимается развитием платформы, автоматизирующей процесс расчета залогового обеспечения по торговым портфелям крупнейших клиентов банка - государственных и хэдж-фондов.
#вопросы_с_собеседований
В каком регистре лучше писать HTML-код?
В каком регистре лучше писать HTML-код?
Весь HTML-код рекомендуется писать в нижнем регистре: это относится к названиям элементов, названиям атрибутов, значениям атрибутов (кроме текста/CDATA), селекторам, свойствам и их значениям (кроме текста).
Не рекомендуется
<A HREF="/">Домой</A>
Рекомендуется
<img src="forest.jpg" alt="Лес">
Не рекомендуется
<A HREF="/">Домой</A>
Рекомендуется
<img src="forest.jpg" alt="Лес">
26 июля пройдет онлайн-митап о хакатоне CRM Hack
Российский ИТ-разработчик - Т1 Консалтинг готовится к запуску CRM нового поколения. Участникам хакатона нужно предложить MVP самостоятельных решений, которые в будущем смогут стать функциональными модулями системы. Призовой фонд хакатона 500 000 руб, прием заявок до 5 августа.
На митапе эксперты Т1 Консалтинг подробнее расскажут о функционале будущей CRM и технологической платформе, на которой будет строиться система.
Митап будет интересен как участникам, которые уже зарегистрировались на хакатон, так и тем, кто только думает об участии или слышит о CRM Hack впервые.
Для чего участвовать: узнать подробнее о задачах хакатона и задать вопросы по участию
📆 Регистрируйся и добавляй в календарь: crmhack.ru
Российский ИТ-разработчик - Т1 Консалтинг готовится к запуску CRM нового поколения. Участникам хакатона нужно предложить MVP самостоятельных решений, которые в будущем смогут стать функциональными модулями системы. Призовой фонд хакатона 500 000 руб, прием заявок до 5 августа.
На митапе эксперты Т1 Консалтинг подробнее расскажут о функционале будущей CRM и технологической платформе, на которой будет строиться система.
Митап будет интересен как участникам, которые уже зарегистрировались на хакатон, так и тем, кто только думает об участии или слышит о CRM Hack впервые.
Для чего участвовать: узнать подробнее о задачах хакатона и задать вопросы по участию
📆 Регистрируйся и добавляй в календарь: crmhack.ru