Size: a a a

Библиотека джависта

2020 August 25
Библиотека джависта
#вопросы_с_собеседований
Согласно Кнуту и Кормену существует две основных реализации хэш-таблицы: на основе открытой адресации и на основе метода цепочек. Как реализована HashMap? Почему, по вашему мнению, была выбрана именно эта реализация? В чем плюсы и минусы каждого подхода?
источник
2020 August 26
Библиотека джависта
Привет, меня зовут Артём, я являюсь CEO IT-издания Библиотека программиста, и сейчас ищу редактора. Нам нужен грамотный специалист, не понаслышке знакомый с информационными технологиями.

Предстоит:
— писать, редактировать и оформлять новые публикации на сайте Библиотеки программиста (статьи и тесты-викторины)
— редактировать старые публикации по замечаниям читателей
— взаимодействовать с авторами, разработчиками и другими членами команды
— предлагать темы, формировать контент-план и ТЗ для публикаций
писать и редактировать тексты под рекламные кампании
— реагировать на комментарии читателей

Как мы вас себе представляем:
— владеете терминологией, принятой в сообществе IT-разработчиков
— умеете выполнять задания в сжатые сроки
— готовы постоянно поддерживать контакт, оперативно отвечать на возникающие вопросы
— знакомы с HTML, чтобы корректно править старые публикации
— любите объяснять сложные вещи понятным читателю языком, знакомы с инфостилем
— стремитесь увлечь читателя, но не в ущерб фактам
— готовы ежедневно выпускать не менее 1 материала (своего или авторского)

У нас уже есть:
— аудитория (в том числе 350 тыс. VK, свыше 150 тыс. Telegram)
— база публикаций, тестов, обсуждений
— редакционная политика (не придется писать с нуля)
— инструменты оформления и публикации материалов, в том числе планирования
— метрики анализа популярности материалов
— система push-уведомлений
— несколько регулярно пишущих авторов, контент-менеджеры, занимающиеся публикациями в соцсетях, рекламный отдел, команда разработчиков

Если вы подходите:
— зарплатная вилка от 50 до 70 тысяч рублей в месяц
— будем регулярно оплачивать труд 📅 дважды в месяц
— поможем освоиться в команде и работе с инструментами сайта

Чтобы откликнуться, вы можете прислать портфолио из релевантных публикации на ящик artem@proglib.io или выполнить тестовое задание и прислать результат на тот же email.
источник
Библиотека джависта
HashMap реализован с использованием метода цепочек, т.е. каждой ячейке массива (корзине) соответствует свой связный список и при возникновении коллизии осуществляется добавление нового элемента в этот список.

Для метода цепочек коэффициент заполнения может быть больше 1 и с увеличением числа элементов производительность убывает линейно. Такие таблицы удобно использовать, если заранее неизвестно количество хранимых элементов, либо их может быть достаточно много, что приводит к большим значениям коэффициента заполнения.

Среди методов открытой реализации различают:

☕️ линейное пробирование;
☕️ квадратичное пробирование;
☕️ двойное хэширование.

Недостатки структур с методом открытой адресации:

☕️ количество элементов в хэш-таблице не может превышать размера массива. По мере увеличения числа элементов и повышения коэффициента заполнения производительность структуры резко падает, поэтому необходимо проводить перехэширование.
☕️ сложно организовать удаление элемента.
☕️ первые два метода открытой адресации приводят к проблеме первичной и вторичной группировок.

Преимущества хэш-таблицы с открытой адресацией:

☕️ отсутствие затрат на создание и хранение объектов списка;
☕️ простота организации сериализации/десериализации объекта.
источник
Библиотека джависта
#вакансия #java #middle #удаленка

Требуется Backend java разработчик (не ниже middle) на постоянную работу.

Основная задача разработка бэкэнда приложений на java с нуля, доработка текущих проектов.

Работа удаленно, с возможными оплачиваемыми командировками в будущем.

На испытательный срок -2000 $
После испытательного - 2500 $
По итогам работы премии.

Требования:
* Хорошее знание  Java EE или Spring
* Опыт разработки на Java/Kotlin
* Умение работать с SQL и не-SQL базами данных
* Знание C/C++
* Знание базового английского

Контакт для связи @viksantana
источник
Библиотека джависта
#вопросы_с_собеседований
Что такое пул строк?
источник
2020 August 27
Библиотека джависта
Пул строк – это набор строк, хранящийся в Heap.

☕️ Пул строк возможен благодаря неизменяемости строк в Java и реализации идеи интернирования строк;
☕️ Пул строк помогает экономить память, но по этой же причине создание строки занимает больше времени;
☕️ Когда для создания строки используются ", то сначала ищется строка в пуле с таким же значением, если находится, то просто возвращается ссылка, иначе создается новая строка в пуле, а затем возвращается ссылка на неё;
☕️ При использовании оператора new создаётся новый объект String. Затем при помощи метода intern() эту строку можно поместить в пул или же получить из пула ссылку на другой объект String с таким же значением;
☕️ Пул строк является примером паттерна «Приспособленец» (Flyweight).
источник
Библиотека джависта
Псс… Соскучились? 😝 Photo Lab объявляет о старте онлайн-хакатона PhotoHack Mobile с призовым фондом 500 000 рублей! 🔥


В этот раз перед участниками стоит задача разработать мобильное приложение, используя технологии Photo Lab. При этом речь не идёт о чём-то масштабном и грандиозном, а наоборот, нужно создать нишевый продукт, направленный на решение конкретной задачи.

Где: онлайн
Когда: 12-13 сентября 2020 года
Кого мы ждём: мобильных разработчиков, специалистов по Machine Learning и Data Science, продакт-менеджеров, UI/UX-дизайнеров, авторов креативных идей, а также студентов технических специальностей.

P.S. в команде может быть не более пяти человек 😉

Подробная информация и регистрация на сайте: https://bit.ly/2QnPLpG
Торопитесь! Заявки принимаются до 11 сентября 2020
источник
Библиотека джависта
#вопросы_с_собеседований
Чем различаются Enumeration и Iterator?
источник
2020 August 28
Библиотека джависта
Погрузись в мир Java-разработки и напиши свою первую программу на одном из самых востребованных языков программирования за три дня. Занятия бесплатные, а опыт в написании кода не обязателен для участия — материал будет доступным для всех.

Регистрация займёт меньше минуты: 👉 https://clc.am/O1bwgg.

Java — отличный выбор даже для новичков в коде!

➕ Имеет дружественный и понятный синтаксис.
➕ Востребован на рынке труда.
➕ Java-приложения работают на любом устройстве и в любой операционной системе.
➕ Это один из самых высокооплачиваемых языков в разработке.

Трёх дней достаточно, чтобы узнать о базовых инструментах, которые программисты применяют в работе, и попробовать их на практике.

⭐️ Если попадёшь в тройку лучших участников — получишь сертификат на 30 000 рублей для обучения в Skillbox!
источник
Библиотека джависта
Хотя оба интерфейса и предназначены для обхода коллекций, между ними имеются существенные различия:

☕️ с помощью Enumeration нельзя добавлять/удалять элементы;
☕️ в Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNext(), Enumeration.nextElement() соответствует Iterator. next() и т.д);
☕️ Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.
источник
Библиотека джависта
#вопросы_с_собеседований
Оцените количество памяти на хранение одного примитива типа byte в LinkedList?
источник
2020 August 29
Библиотека джависта
Каждый элемент LinkedList хранит ссылку на предыдущий элемент, следующий элемент и ссылку на данные.

 static class Node<E> {
       E item;
       Node<E> next;
       Node<E> prev;
//...
}

Для 32-битных систем каждая ссылка занимает 32 бита (4 байта). Сам объект (заголовок) вложенного класса Node занимает 8 байт. 4 + 4 + 4 + 8 = 20 байт, а т.к. размер каждого объекта в Java кратен 8, соответственно получаем 24 байта. Примитив типа byte занимает 1 байт памяти, но в JCF примитивы упаковываются: объект типа Byte занимает в памяти 16 байт (8 байт на заголовок объекта, 1 байт на поле типа byte и 7 байт для кратности 8). Также напомню, что значения от -128 до 127 кэшируются и для них новые объекты каждый раз не создаются. Таким образом, в x32 JVM 24 байта тратятся на хранение одного элемента в списке и 16 байт - на хранение упакованного объекта типа Byte. Итого 40 байт.

Для 64-битной JVM каждая ссылка занимает 64 бита (8 байт), размер заголовка каждого объекта составляет 16 байт (два машинных слова). Вычисления аналогичны: 8 + 8 + 8 + 16 = 40байт и 24 байта. Итого 64 байта.
источник
Библиотека джависта
Язык программирования Go уже давно применяют не только в Google, но и по всему миру: в IBM, Intel, Adobe, Wildberries, Avito. Уже после первого месяца изучения языка можно писать полноценные приложения и приносить пользу, получая за это высокую зарплату.

Но это не только превосходный язык для новичков в программировании. Многие компании переходят на Go и ищут специалистов со знанием двух языков программирования. Освоив Go как второй язык, вы  обеспечите себе отличные перспективы карьерного роста.

Востребованная профессия с нуля, 5 проектов в портфолио и помощь с трудоустройством — всё это даёт курс «Go-разработчик» онлайн-университета Geekbrains. Подробности здесь 👉 https://proglib.io/w/9a63a9ba
источник
Библиотека джависта
Practical Android (2018)
Автор: Mark Wickham
Количество страниц: 253

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

Скачать книгу
источник
2020 August 30
Библиотека джависта
Хочешь бесплатно начуиться программировать?

Прямо сейчас идет новый набор в Школу 21 от Сбербанка в Казани. Это твой шанс бесплатно получить востребованную профессию и найти команду мечты! Обучающимся из других городов предоставляется общежитие.

Получи junior или senior degree без учителей, лекций и оценок

«Школа 21» работает 24/7 — без графиков и расписания, ты сам определяешь, когда учиться. Поступление не зависит от предыдущих знаний, опыта работы, умения программировать и наличия диплома. Поступить в нее может каждый достигший 18-летнего возраста.

Как стать участником?
1. Зарегистрируйся на сайте Школы 21
2. Пройди две онлайн игры на память и логику
3. Собеседование — онлайн интервью
4. И «Бассейн» — четырехнедельный интенсив по программированию

Переходи по ссылке  https://clck.ru/QYHRb и успей подать заявку на поступление до 1 сентября!
Количество мест на ""бассейне"" ограничено!
источник
Библиотека джависта
#вопросы_с_собеседований
Почему нельзя использовать byte в качестве ключа в HashMap?
источник
2020 August 31
Библиотека джависта
Поправка: в вопросе имеется в виду byte[].

Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному Object.hashCode() на основании адреса массива). Так же у массивов не переопределен equals и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента.
источник
Библиотека джависта
#вопросы_с_собеседований
Какие классы поддерживают чтение и запись потоков в компрессированном формате?
источник
2020 September 01
Библиотека джависта
☕️ DeflaterOutputStream - компрессия данных в формате deflate.
☕️ Deflater - компрессия данных в формат ZLIB.
☕️ ZipOutputStream - потомок DeflaterOutputStream для компрессии данных в формат Zip.
☕️ GZIPOutputStream - потомок DeflaterOutputStream для компрессии данных в формат GZIP.
☕️ InflaterInputStream - декомпрессия данных в формате deflate.
☕️ Inflater - декомпрессия данных в формате ZLIB.
☕️ ZipInputStream - потомок InflaterInputStream для декомпрессии данных в формате Zip.
☕️ GZIPInputStream - потомок InflaterInputStream для декомпрессии данных в формате GZIP.
источник
Библиотека джависта
Стрим с Петром Зайцевым (CEO компании Percona) в группе Java Pro
- способы оптимизации SQL запросов в MySQL
- профессиональная оптимизация хранения данных в MySQL
- на что обратить внимание при проектировании и отладки сетевого взаимодействия с MySQL

Присоединиться
источник