👶 10 ошибок начинающего разработчика
Обучение на собственных ошибках – правильный путь развития развития разработчика. Ошибки совершают абсолютно все новички, рассмотрим самые распространенные из них.
https://proglib.io/sh/vw1cSFZ73j
Обучение на собственных ошибках – правильный путь развития развития разработчика. Ошибки совершают абсолютно все новички, рассмотрим самые распространенные из них.
https://proglib.io/sh/vw1cSFZ73j
#вопросы_с_собеседований
Перечислите основные классы и интерфейсы JDBC.
Перечислите основные классы и интерфейсы JDBC.
java.sql.DriverManager - позволяет загрузить и зарегистрировать необходимый JDBC-драйвер, а затем получить соединение с базой данных.
javax.sql.DataSource - решает те же задачи, что и DriverManager, но более удобным и универсальным образом. Существуют также javax.sql.ConnectionPoolDataSource и javax.sq1.XADataSource задача которых - обеспечение поддержки пула соединений.
java.sql.Connection - обеспечивает формирование запросов к источнику данных и управление транзакциями. Также предусмотрены интерфейсы javax.sql.PooledConnection и javax.sql.XAConnection.
java.sql.Statement , java.sql.PreparedStatement и java.sql.CallableStatement - эти интерфейсы позволяют отправить запрос к источнику данных.
java.sql.ResultSet - объявляет методы, которые позволяют перемещаться по набору данных и считывать значения отдельных полей в текущей записи.
java.sql.ResultSetMetaData - позволяет получить информацию о структуре набора данных.
java.sql.DatabaseMetaData - позволяет получить информацию о структуре источника данных.
javax.sql.DataSource - решает те же задачи, что и DriverManager, но более удобным и универсальным образом. Существуют также javax.sql.ConnectionPoolDataSource и javax.sq1.XADataSource задача которых - обеспечение поддержки пула соединений.
java.sql.Connection - обеспечивает формирование запросов к источнику данных и управление транзакциями. Также предусмотрены интерфейсы javax.sql.PooledConnection и javax.sql.XAConnection.
java.sql.Statement , java.sql.PreparedStatement и java.sql.CallableStatement - эти интерфейсы позволяют отправить запрос к источнику данных.
java.sql.ResultSet - объявляет методы, которые позволяют перемещаться по набору данных и считывать значения отдельных полей в текущей записи.
java.sql.ResultSetMetaData - позволяет получить информацию о структуре набора данных.
java.sql.DatabaseMetaData - позволяет получить информацию о структуре источника данных.
☕️ Как пройти собеседование на позицию Java-разработчика?
Чтобы получить работу, знать программирование на Java недостаточно – нужно найти вакансию и пройти квест по найму. Рассказываем о плане подготовки к интервью, часто встречающихся вопросах по Java Core и Java EE и правильном поведении на собеседовании.
https://proglib.io/sh/RSTXPDf4pj
Чтобы получить работу, знать программирование на Java недостаточно – нужно найти вакансию и пройти квест по найму. Рассказываем о плане подготовки к интервью, часто встречающихся вопросах по Java Core и Java EE и правильном поведении на собеседовании.
https://proglib.io/sh/RSTXPDf4pj
Мобильная разработка — новый канал, авторы которого рассказывают о тонкостях разработки приложений под Android, iOS и кроссплатформу.
Подключайтесь: @mobi_dev
Подключайтесь: @mobi_dev
#вопросы_с_собеседований
LinkedHashMap - что в нем от LinkedList, а что от HashMap?
LinkedHashMap - что в нем от LinkedList, а что от HashMap?
Реализация LinkedHashMap отличается от HashMap поддержкой двухсвязного списка, определяющего порядок итерации по элементам структуры данных. По умолчанию элементы списка упорядочены согласно их порядку добавления в LinkedHashMap (insertion-order). Однако порядок итерации можно изменить, установив параметр конструктора accessOrder в значение true. В этом случае доступ осуществляется по порядку последнего обращения к элементу (access-order). Это означает, что при вызове методов get() или put() элемент, к которому обращаемся, перемещается в конец списка.
При добавлении элемента, который уже присутствует в LinkedHashMap (т.е. с одинаковым ключом), порядок итерации по элементам не изменяется.
При добавлении элемента, который уже присутствует в LinkedHashMap (т.е. с одинаковым ключом), порядок итерации по элементам не изменяется.
#вопросы_с_собеседований
Чем отличается ArrayList от LinkedList? В каких случаях лучше использовать первый, а в каких второй?
Чем отличается ArrayList от LinkedList? В каких случаях лучше использовать первый, а в каких второй?
Научись программировать на самом востребованном языке в сфере IT и стань Java-разработчиком.
Чем интересна именно эта профессия? Повторимся, что Java — самый востребованный язык, работать с ним несложно и интересно, заработок немаленький, и еще один большой плюс — можно работать удаленно из любой точки мира. Круто, да?
📌 Тогда забирай курс «Профессия Java-разработчик» со скидкой до 60% в этом месяце!
📌 Все подробности по ссылке: https://clc.to/3_4U1Q
Что тебя ждет:
✔️ интересная и продуманная программа курса;
✔️ решение бизнес-задач компании;
✔️ много часов практики;
✔️ доступ к этому курсу на веки-вечные (ну а вдруг ты что-то забудешь);
И самое главное, после обучения Skillbox гарантирует трудоустройство в IT-компанию!
Чем интересна именно эта профессия? Повторимся, что Java — самый востребованный язык, работать с ним несложно и интересно, заработок немаленький, и еще один большой плюс — можно работать удаленно из любой точки мира. Круто, да?
📌 Тогда забирай курс «Профессия Java-разработчик» со скидкой до 60% в этом месяце!
📌 Все подробности по ссылке: https://clc.to/3_4U1Q
Что тебя ждет:
✔️ интересная и продуманная программа курса;
✔️ решение бизнес-задач компании;
✔️ много часов практики;
✔️ доступ к этому курсу на веки-вечные (ну а вдруг ты что-то забудешь);
И самое главное, после обучения Skillbox гарантирует трудоустройство в IT-компанию!
ArrayList:
✔️Доступ к произвольному элементу по индексу за константное время O(1);
✔️Доступ к элементам по значению за линейное время O(N);
✔️Вставка в конец в среднем производится за константное время O(1);
✔️Удаление произвольного элемента из списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку влево (реальный размер массива (capacity) не изменяется);
✔️Вставка элемента в произвольное место списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку вправо;
✔️Минимум накладных расходов при хранении.
LinkedList:
✔️На получение элемента по индексу или значению потребуется линейное время O(N);
✔️На добавление и удаление в начало или конец списка потребуется константное O(1);
✔️Вставка или удаление в/из произвольного места за константное O(N);
✔️Требует больше памяти для хранения такого же количества элементов, потому что кроме самого элемента хранятся ещё указатели на следующий и предыдущий элементы списка.
В целом, LinkedList в абсолютных величинах проигрывает ArrayList и по потребляемой памяти, и по скорости выполнения операций. LinkedList предпочтительно применять, когда нужны частые операции вставки/удаления или в случаях, когда необходимо гарантированное время добавления элемента в список.
✔️Доступ к произвольному элементу по индексу за константное время O(1);
✔️Доступ к элементам по значению за линейное время O(N);
✔️Вставка в конец в среднем производится за константное время O(1);
✔️Удаление произвольного элемента из списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку влево (реальный размер массива (capacity) не изменяется);
✔️Вставка элемента в произвольное место списка занимает значительное время, т.к. при этом все элементы находящиеся «правее» смещаются на одну ячейку вправо;
✔️Минимум накладных расходов при хранении.
LinkedList:
✔️На получение элемента по индексу или значению потребуется линейное время O(N);
✔️На добавление и удаление в начало или конец списка потребуется константное O(1);
✔️Вставка или удаление в/из произвольного места за константное O(N);
✔️Требует больше памяти для хранения такого же количества элементов, потому что кроме самого элемента хранятся ещё указатели на следующий и предыдущий элементы списка.
В целом, LinkedList в абсолютных величинах проигрывает ArrayList и по потребляемой памяти, и по скорости выполнения операций. LinkedList предпочтительно применять, когда нужны частые операции вставки/удаления или в случаях, когда необходимо гарантированное время добавления элемента в список.
#вопросы_с_собеседований
Как закрыть соединение с базой данных? (JDBC)
Как закрыть соединение с базой данных? (JDBC)
Соединение с базой данной закрывается вызовом метода close() у соответствующего объекта java.sql.Connection или посредством использования механизма try-with-resources при создании такого объекта, появившегося в Java 7.
NB! Предварительно необходимо закрыть все запросы созданные этим соединением.
NB! Предварительно необходимо закрыть все запросы созданные этим соединением.
#вопросы_с_собеседований
Какие конечные методы работы со стримами вы знаете?
Какие конечные методы работы со стримами вы знаете?
Java MeetUp в Иннополисе
Бесплатный онлайн-митап от Иннополиса по Java 17 декабря.
Обсудим:
— распространенные уязвимостях в ПО и о стратегии его защиты
— основные ошибки при написании тестов в приложении и рекомендации по их недопущению
— production-системы на стыке Java-технологий и высшей математики, успешно работающие на глобальных финансовых рынках.
Наши спикеры:
🎙Дмитрий Янтер, аналитик, Deutsche Bank Technology Centre
📢Никита Куртин, Director of Research and Development, CubedMobile
🎤Александр Линьков, Tech Lead, Leroy Merlin
Эксперты митапа:
📣Дмитрий Чуйко, Senior Performance Architect, BellSoft
🔈Андрей Когунь, руководитель группы Java-разработчиков, КРОК
Когда: 17 декабря в 18:00
Регистрация и подробности докладов
Чат митапа
Бесплатный онлайн-митап от Иннополиса по Java 17 декабря.
Обсудим:
— распространенные уязвимостях в ПО и о стратегии его защиты
— основные ошибки при написании тестов в приложении и рекомендации по их недопущению
— production-системы на стыке Java-технологий и высшей математики, успешно работающие на глобальных финансовых рынках.
Наши спикеры:
🎙Дмитрий Янтер, аналитик, Deutsche Bank Technology Centre
📢Никита Куртин, Director of Research and Development, CubedMobile
🎤Александр Линьков, Tech Lead, Leroy Merlin
Эксперты митапа:
📣Дмитрий Чуйко, Senior Performance Architect, BellSoft
🔈Андрей Когунь, руководитель группы Java-разработчиков, КРОК
Когда: 17 декабря в 18:00
Регистрация и подробности докладов
Чат митапа
findFirst() возвращает первый элемент;
findAny() возвращает любой подходящий элемент;
collect() представление результатов в виде коллекций и других структур данных;
count() возвращает количество элементов;
anyMatch() возвращает true, если условие выполняется хотя бы для одного элемента;
noneMatch() возвращает true, если условие не выполняется ни для одного элемента;
allMatch() возвращает true, если условие выполняется для всех элементов;
min() возвращает минимальный элемент, используя в качестве условия Comparator;
max() возвращает максимальный элемент, используя в качестве условия Comparator;
forEach() применяет функцию к каждому объекту (порядок при параллельном выполнении не гарантируется);
forEachOrdered() применяет функцию к каждому объекту с сохранением порядка элементов;
toArray() возвращает массив значений;
reduce()позволяет выполнять агрегатные функции и возвращать один результат.
Для числовых стримов дополнительно доступны:
sum() возвращает сумму всех чисел;
average() возвращает среднее арифметическое всех чисел.
findAny() возвращает любой подходящий элемент;
collect() представление результатов в виде коллекций и других структур данных;
count() возвращает количество элементов;
anyMatch() возвращает true, если условие выполняется хотя бы для одного элемента;
noneMatch() возвращает true, если условие не выполняется ни для одного элемента;
allMatch() возвращает true, если условие выполняется для всех элементов;
min() возвращает минимальный элемент, используя в качестве условия Comparator;
max() возвращает максимальный элемент, используя в качестве условия Comparator;
forEach() применяет функцию к каждому объекту (порядок при параллельном выполнении не гарантируется);
forEachOrdered() применяет функцию к каждому объекту с сохранением порядка элементов;
toArray() возвращает массив значений;
reduce()позволяет выполнять агрегатные функции и возвращать один результат.
Для числовых стримов дополнительно доступны:
sum() возвращает сумму всех чисел;
average() возвращает среднее арифметическое всех чисел.
Курс для middle- и senior-разработчиков, которые хотят стать тимлидами
Новичком быть просто: все новое и интересное, море информации, но как быть уже прокаченным девелоперам? Мы тоже задавали себе этот вопрос и просто точечно обучали наших разработчиков, делая их мощными тимлидами.
В нашем понимании тимлид — это не просто крутой программист, но и тот, кто умеет аккумулировать свои знания, обучать команду и выстраивать работу в ней, понимает продукт и работает от бизнес-целей. Тут важны и hard, и soft skills, и эмоциональный интеллект. Поэтому мы собрали весь свой 14-летний опыт работы над сложными сервисами и высоконагруженными сайтами и создали 6-ти месячный курс именно тех, кто хочет вырасти и систематизировать свои знания. Договорились с Geekbrains, и теперь именно там можно пройти обучение. Второй поток стартует уже совсем скоро — 24 декабря, а тут должен быть призыв к действию, поэтому просто записывайтесь на курс: https://proglib.io/w/9236cebf
На связи была команда AGIMA!
Новичком быть просто: все новое и интересное, море информации, но как быть уже прокаченным девелоперам? Мы тоже задавали себе этот вопрос и просто точечно обучали наших разработчиков, делая их мощными тимлидами.
В нашем понимании тимлид — это не просто крутой программист, но и тот, кто умеет аккумулировать свои знания, обучать команду и выстраивать работу в ней, понимает продукт и работает от бизнес-целей. Тут важны и hard, и soft skills, и эмоциональный интеллект. Поэтому мы собрали весь свой 14-летний опыт работы над сложными сервисами и высоконагруженными сайтами и создали 6-ти месячный курс именно тех, кто хочет вырасти и систематизировать свои знания. Договорились с Geekbrains, и теперь именно там можно пройти обучение. Второй поток стартует уже совсем скоро — 24 декабря, а тут должен быть призыв к действию, поэтому просто записывайтесь на курс: https://proglib.io/w/9236cebf
На связи была команда AGIMA!
#вопросы_с_собеседований
Напишите однопоточную программу, которая заставляет коллекцию выбросить ConcurrentModificationException.
Напишите однопоточную программу, которая заставляет коллекцию выбросить ConcurrentModificationException.
2020 бросил вызов каждому человеку, бизнесу, государству. Впереди 2021 год и новые изменения. Как отбросить страх перед глобальными вызовами? Получить новый импульс? QIWI и Магнит объединились, чтобы напомнить о важной роли технологий в трансформации каждого из нас, а также в развитии бизнеса и общества.
17 декабря в 16:00 состоится бесплатный онлайн митап #MGNTQIWI «Новый мир: как технологии влияют на человека и общество» с участием Евгения Кузнецова – футуролога, руководителя московского отделения Университета Сингулярности, генерального директора ООО «Орбита Капитал Партнерз». Евгений расскажет, как оставаться на гребне цифровой волны, не отставать от трендов и справляться с вызовами технологической эпохи.
Регистрируйтесь по ссылке https://mgntqiwi.ru и присоединяйтесь к бесплатной лекции и Q&A сессии 17 декабря в 16:00.
ИЗМЕНЕНИЯ – вот о чем пойдет речь в рамках митапа. Трансформируется все, а значит, нужно и нам.
Давайте меняться вместе!
17 декабря в 16:00 состоится бесплатный онлайн митап #MGNTQIWI «Новый мир: как технологии влияют на человека и общество» с участием Евгения Кузнецова – футуролога, руководителя московского отделения Университета Сингулярности, генерального директора ООО «Орбита Капитал Партнерз». Евгений расскажет, как оставаться на гребне цифровой волны, не отставать от трендов и справляться с вызовами технологической эпохи.
Регистрируйтесь по ссылке https://mgntqiwi.ru и присоединяйтесь к бесплатной лекции и Q&A сессии 17 декабря в 16:00.
ИЗМЕНЕНИЯ – вот о чем пойдет речь в рамках митапа. Трансформируется все, а значит, нужно и нам.
Давайте меняться вместе!
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (Integer integer : list) {
list.remove(1);
}
}
}
import java.util.List;
public class Main
{
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (Integer integer : list) {
list.remove(1);
}
}
}
#вопросы_с_собеседований
Что такое «сервлет»?
Что такое «сервлет»?