С помощью статических методов synchronizedMap() и synchronizedList() класса Collections. Данные методы возвращают синхронизированный декоратор переданной коллекции. При этом все равно в случае обхода по коллекции требуется ручная синхронизация.
Map m = Collections.synchronizedMap(new HashMap());
List l = Collections.synchronizedList(new ArrayList());
Начиная с Java 6 JCF был расширен специальными коллекциями, поддерживающими многопоточный доступ, такими как CopyOnWriteArrayList и ConcurrentHashMap.
Map m = Collections.synchronizedMap(new HashMap());
List l = Collections.synchronizedList(new ArrayList());
Начиная с Java 6 JCF был расширен специальными коллекциями, поддерживающими многопоточный доступ, такими как CopyOnWriteArrayList и ConcurrentHashMap.
#вопросы_с_собеседований
Какие методы класса File вы знаете?
Какие методы класса File вы знаете?
18 ноября в 18:30 пройдет онлайн-митап для студентов и недавних выпускников – Deutsche Bank Junior IT Meetup.
Хотите подготовиться к старту карьеры на стыке IT и финансов?
Подключайтесь к трансляции и вы узнаете:
— какая профессия подойдет вам и как сделать первые шаги на пути к успешной карьере,
— как пройти отбор на программу для выпускников или летнюю стажировку в Технологическом Центре Дойче Банка: что нужно знать перед тестированием и интервью,
— с какими задачами сталкиваются начинающие разработчики и тестировщики в Технологическом Центре.
Регистрируйтесь на мероприятие на TimePad, чтобы получить ссылку на трансляцию: https://deutschebanktech.timepad.ru/event/1472760
Хотите подготовиться к старту карьеры на стыке IT и финансов?
Подключайтесь к трансляции и вы узнаете:
— какая профессия подойдет вам и как сделать первые шаги на пути к успешной карьере,
— как пройти отбор на программу для выпускников или летнюю стажировку в Технологическом Центре Дойче Банка: что нужно знать перед тестированием и интервью,
— с какими задачами сталкиваются начинающие разработчики и тестировщики в Технологическом Центре.
Регистрируйтесь на мероприятие на TimePad, чтобы получить ссылку на трансляцию: https://deutschebanktech.timepad.ru/event/1472760
Наиболее используемые методы класса File:
☕️ boolean createNewFile(): делает попытку создать новый файл;
☕️ boolean delete(): делает попытку удалить каталог или файл;
☕️ boolean mkdir(): делает попытку создать новый каталог;
☕️ boolean renameTo(File dest): делает попытку переименовать файл или каталог;
☕️ boolean exists(): проверяет, существует ли файл или каталог;
☕️ String getAbsolutePath(): возвращает абсолютный путь для пути, переданного в конструктор объекта;
☕️ String getName(): возвращает краткое имя файла или каталога;
☕️ String getParent(): возвращает имя родительского каталога;
☕️ boolean isDirectory(): возвращает значение true, если по указанному пути располагается каталог;
☕️ boolean isFile(): возвращает значение true, если по указанному пути находится файл;
☕️ boolean isHidden(): возвращает значение true, если каталог или файл являются скрытыми;
☕️ long length(): возвращает размер файла в байтах;
☕️ long lastModified(): возвращает время последнего изменения файла или каталога;
☕️ String[] list(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге;
☕️ File[] listFiles(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге.
☕️ boolean createNewFile(): делает попытку создать новый файл;
☕️ boolean delete(): делает попытку удалить каталог или файл;
☕️ boolean mkdir(): делает попытку создать новый каталог;
☕️ boolean renameTo(File dest): делает попытку переименовать файл или каталог;
☕️ boolean exists(): проверяет, существует ли файл или каталог;
☕️ String getAbsolutePath(): возвращает абсолютный путь для пути, переданного в конструктор объекта;
☕️ String getName(): возвращает краткое имя файла или каталога;
☕️ String getParent(): возвращает имя родительского каталога;
☕️ boolean isDirectory(): возвращает значение true, если по указанному пути располагается каталог;
☕️ boolean isFile(): возвращает значение true, если по указанному пути находится файл;
☕️ boolean isHidden(): возвращает значение true, если каталог или файл являются скрытыми;
☕️ long length(): возвращает размер файла в байтах;
☕️ long lastModified(): возвращает время последнего изменения файла или каталога;
☕️ String[] list(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге;
☕️ File[] listFiles(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге.
Forwarded from Java jobs — вакансии для java-разработчиков
AGIMA (крупнейший интегратор digital‑решений) ищет классного Technical Lead (Java)
https://www.agima.ru/
Мы создаем веб-сервисы и мобильные приложения для бизнеса на основе данных и здравого смысла.
Уровень: senior
Основные требования:
— Опыт: java разработчик от 5 лет и 1 год опыт тимлида
— Java, Spring boot, mongo
— Опыт работы с Magnolia CMS (будет большим плюсом)
— Приветствуется опыт работы с другими CMS
— Git + gitlab, Jira, confluence
Описание проекта: интернет-магазин цифровой/бытовой техники и электроники
Задачи: Нужно будет не только лидить команду, но и решать некоторые архитектурные вопросы. Также предстоит решать разные задачи, связанные с хранением и управлением контента для интернет-магазина, с интеграциями со сторонними системами.
Условия:
— Возможность сосредоточиться над задачами одного продукта;
— Сформированная команда крутых специалистов;
— Удалённая работа, оформление по ГПХ (договор гражданско-правового характера), ИП или как самозанятый.
— ЗП от 250 000 рублей
Контакты: [email protected] @jgribova
https://www.agima.ru/
Мы создаем веб-сервисы и мобильные приложения для бизнеса на основе данных и здравого смысла.
Уровень: senior
Основные требования:
— Опыт: java разработчик от 5 лет и 1 год опыт тимлида
— Java, Spring boot, mongo
— Опыт работы с Magnolia CMS (будет большим плюсом)
— Приветствуется опыт работы с другими CMS
— Git + gitlab, Jira, confluence
Описание проекта: интернет-магазин цифровой/бытовой техники и электроники
Задачи: Нужно будет не только лидить команду, но и решать некоторые архитектурные вопросы. Также предстоит решать разные задачи, связанные с хранением и управлением контента для интернет-магазина, с интеграциями со сторонними системами.
Условия:
— Возможность сосредоточиться над задачами одного продукта;
— Сформированная команда крутых специалистов;
— Удалённая работа, оформление по ГПХ (договор гражданско-правового характера), ИП или как самозанятый.
— ЗП от 250 000 рублей
Контакты: [email protected] @jgribova
AGIMA
AGIMA — Крупнейший интегратор digital‑решений
AGIMA — ваш надежный партнер в цифровой трансформации. Мы предлагаем комплексные решения для бизнеса, которые помогают достигать новых высот. Присоединяйтесь к числу успешных компаний, которые доверяют нам свои проекты!
☕️ ☁️ 👍 Начало работы с IntelliJ IDEA и распределенным SQL
Всерьез задумались о переносе инфраструктуры в облако? Тогда этот материал придется вам кстати. Попробуем разбираться, что это такое и с чем его едят.
https://proglib.io/sh/NZOYcsKetL
Всерьез задумались о переносе инфраструктуры в облако? Тогда этот материал придется вам кстати. Попробуем разбираться, что это такое и с чем его едят.
https://proglib.io/sh/NZOYcsKetL
Surviving the Whiteboard Interview (2019)
Автор: William Gant
Количество страниц: 136
Whiteboard-этап интервью может показаться большой проблемой для начинающих разработчиков. Опытные разработчики могут взять себя в руки и справиться с возрастающим напряжением, но как быть тем, кто собеседуется на позицию Junior'а? Автор книги использует свои реальные знания и опыт, чтобы помочь вам преодолеть психологические препятствия, связанные с интервью, а также предлагает образцы задач. При наличии достаточной подготовки и уверенности в себе вы сможете пройти whiteboard-собеседование в любой организации. Автор также дает общие советы по прохождению собеседования, например, рассказывает, как произвести наилучшее впечатление на интервьюера.
Скачать книгу
Автор: William Gant
Количество страниц: 136
Whiteboard-этап интервью может показаться большой проблемой для начинающих разработчиков. Опытные разработчики могут взять себя в руки и справиться с возрастающим напряжением, но как быть тем, кто собеседуется на позицию Junior'а? Автор книги использует свои реальные знания и опыт, чтобы помочь вам преодолеть психологические препятствия, связанные с интервью, а также предлагает образцы задач. При наличии достаточной подготовки и уверенности в себе вы сможете пройти whiteboard-собеседование в любой организации. Автор также дает общие советы по прохождению собеседования, например, рассказывает, как произвести наилучшее впечатление на интервьюера.
Скачать книгу
Telegram
Книги для программистов (reserved)
Surviving the Whiteboard Interview (2019)
Автор: William Gant
Автор: William Gant
#вопросы_с_собеседований
В каких пакетах расположены классы потоков ввода/вывода?
В каких пакетах расположены классы потоков ввода/вывода?
java .io, java .nio. Для работы с потоками компрессированных данных используются классы из пакета java .util .zip
#вопросы_с_собеседований
Как получить доступ к переопределенным методам родительского класса?
Как получить доступ к переопределенным методам родительского класса?
С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.
super.method();
super.method();
☕️ Топ 10 фреймворков тестирования для Java в 2020 году
Java не зря считают одним из наиболее универсальных языков программирования. В этой статье мы расскажем о 10 лучших фреймворках тестирования для него.
https://proglib.io/sh/S0BPeYg4rt
Java не зря считают одним из наиболее универсальных языков программирования. В этой статье мы расскажем о 10 лучших фреймворках тестирования для него.
https://proglib.io/sh/S0BPeYg4rt
19–21 ноября в 19.00 по МСК пройди трёхдневное обучение от разработчика с 15-летним опытом Даниила Пилипенко!
Бесплатный доступ по ссылке: 👉 https://clc.to/qkf6vA.
Что дадут 3 дня обучения:
📌 познакомишься с синтаксисом языка Java;
📌 научишься работать с файлами, создавать потоки, подключать внешние библиотеки;
📌 разработаешь приложение, которое записывает звук с микрофона компьютера и отправляет записи в Dropbox;
📌 попробуешь написать код и обучишься вносить в него изменения.
🎁 Авторы трёх лучших проектов получат сертификаты на 30 000 рублей для поступления на любой онлайн-курс университета Skillbox.
🎁🎁🎁 Все участники, дошедшие до конца, — электронную книгу Кей Петерсон и Дэвида Колба «Век живи — век учись» от издательства «МИФ».
Бесплатный доступ по ссылке: 👉 https://clc.to/qkf6vA.
Что дадут 3 дня обучения:
📌 познакомишься с синтаксисом языка Java;
📌 научишься работать с файлами, создавать потоки, подключать внешние библиотеки;
📌 разработаешь приложение, которое записывает звук с микрофона компьютера и отправляет записи в Dropbox;
📌 попробуешь написать код и обучишься вносить в него изменения.
🎁 Авторы трёх лучших проектов получат сертификаты на 30 000 рублей для поступления на любой онлайн-курс университета Skillbox.
🎁🎁🎁 Все участники, дошедшие до конца, — электронную книгу Кей Петерсон и Дэвида Колба «Век живи — век учись» от издательства «МИФ».
👨💻 Самые востребованные в России ИТ-профессии
Разбираемся по вакансиям на HH.ru, какие специалисты в сфере ИТ нужны работодателям в 2020 году. Выделим четыре наиболее популярных профессии и определим требующийся для резюме технологический стек.
https://proglib.io/sh/JzvxiSIXlc
Разбираемся по вакансиям на HH.ru, какие специалисты в сфере ИТ нужны работодателям в 2020 году. Выделим четыре наиболее популярных профессии и определим требующийся для резюме технологический стек.
https://proglib.io/sh/JzvxiSIXlc
EPAM с 1993 года помогает клиентам по всему миру придумывать, разрабатывать и внедрять ПО, которое меняет мир.
Мы ищем Java-разработчиков, чтобы усилить новую команду SAP Commerce (Hybris*) в Москве.
Можно работать удаленно. Вам предстоит разрабатывать интернет-магазины для западных заказчиков, заниматься интеграцией Hybris со внутренними системами клиента и работать с микросервисными приложениями.
Огромный плюс, что разработка будет с нуля. EPAM планирует собрать команду в 50+ инженеров. Отличный шанс попасть в проект на старте, чтобы быстро вырасти в тимлида, архитектора или менеджера.
Здесь больше информации о вакансии. Также вы можете написать напрямую рекрутеру [email protected].
*Hybris - E-Commerce Platform, based on Spring
Мы ищем Java-разработчиков, чтобы усилить новую команду SAP Commerce (Hybris*) в Москве.
Можно работать удаленно. Вам предстоит разрабатывать интернет-магазины для западных заказчиков, заниматься интеграцией Hybris со внутренними системами клиента и работать с микросервисными приложениями.
Огромный плюс, что разработка будет с нуля. EPAM планирует собрать команду в 50+ инженеров. Отличный шанс попасть в проект на старте, чтобы быстро вырасти в тимлида, архитектора или менеджера.
Здесь больше информации о вакансии. Также вы можете написать напрямую рекрутеру [email protected].
*Hybris - E-Commerce Platform, based on Spring
Machine Learning in Java (2018)
Автор: AshishSingh Bhatia, Bostjan Kaluza
Количество страниц: 300
Объём данных растёт очень быстро, и способность выбирать полезную информацию от ненужной становится конкурентной чертой крупных организаций. Проекты машинного обучения везде: программы обнаружения спама, поиск изображений по примеру, распознавание речи, составление документа по фотографии и многие другие. Данная книга научит вас использовать инструменты и возможности Java для получения больших объёмов информации и их фильтрации, для классификации, прогнозирования, анализа и кластеризации. Также вы научитесь создавать программы, занимающиеся распознаванием голоса, текста, пользовательской активности и различных аномалий в сети.
Скачать книгу
Автор: AshishSingh Bhatia, Bostjan Kaluza
Количество страниц: 300
Объём данных растёт очень быстро, и способность выбирать полезную информацию от ненужной становится конкурентной чертой крупных организаций. Проекты машинного обучения везде: программы обнаружения спама, поиск изображений по примеру, распознавание речи, составление документа по фотографии и многие другие. Данная книга научит вас использовать инструменты и возможности Java для получения больших объёмов информации и их фильтрации, для классификации, прогнозирования, анализа и кластеризации. Также вы научитесь создавать программы, занимающиеся распознаванием голоса, текста, пользовательской активности и различных аномалий в сети.
Скачать книгу
Telegram
Книги для программистов (reserved)
Machine Learning in Java (2018)
Автор: AshishSingh Bhatia, Bostjan Kaluza
Автор: AshishSingh Bhatia, Bostjan Kaluza
#вопросы_с_собеседований
Какие существуют виды тестовых объектов?
Какие существуют виды тестовых объектов?
Ответ на вопрос
пустышка (dummy) - объект, который обычно передается в тестируемый класс в качестве параметра, но не имеет поведения: с ним ничего не происходит и никакие его методы не вызываются.
Примером dummy-объектов являются new object(), null, «Ignored String» и т.д.
фальшивка (fake object) применяется в основном для ускорения запуска ресурсоёмких тестов и является заменой тяжеловесного внешнего зависимого объекта его легковесной реализацией.
Основные примеры — эмулятор базы данных (fake database) или фальшивый web-сервис.
заглушка (test stub) используется для получения данных из внешней зависимости, подменяя её. При этом заглушка игнорирует все данные поступающие из тестируемого объекта, возвращая заранее определённый результат.
Тестируемый объект использует чтение из конфигурационного файла? Тогда передаем ему заглушку ConfigFileStub возвращающую тестовые строки конфигурации без обращения к файловой системе.
шпион (test spy) - разновидность заглушки, которая умеет протоколировать сделанные к ней обращения из тестируемой системы, чтобы проверить их правильность в конце теста. При этом фиксируется количество, состав и содержание параметров вызовов.
Если существует необходимость проверки, что определённый метод тестируемого класса вызывался ровно 1 раз, то шпион - именно то, что нам нужно.
фикция (mock object) похож на шпиона, но обладает расширенной функциональностью, заранее заданными поведением и реакцией на вызовы.
пустышка (dummy) - объект, который обычно передается в тестируемый класс в качестве параметра, но не имеет поведения: с ним ничего не происходит и никакие его методы не вызываются.
Примером dummy-объектов являются new object(), null, «Ignored String» и т.д.
фальшивка (fake object) применяется в основном для ускорения запуска ресурсоёмких тестов и является заменой тяжеловесного внешнего зависимого объекта его легковесной реализацией.
Основные примеры — эмулятор базы данных (fake database) или фальшивый web-сервис.
заглушка (test stub) используется для получения данных из внешней зависимости, подменяя её. При этом заглушка игнорирует все данные поступающие из тестируемого объекта, возвращая заранее определённый результат.
Тестируемый объект использует чтение из конфигурационного файла? Тогда передаем ему заглушку ConfigFileStub возвращающую тестовые строки конфигурации без обращения к файловой системе.
шпион (test spy) - разновидность заглушки, которая умеет протоколировать сделанные к ней обращения из тестируемой системы, чтобы проверить их правильность в конце теста. При этом фиксируется количество, состав и содержание параметров вызовов.
Если существует необходимость проверки, что определённый метод тестируемого класса вызывался ровно 1 раз, то шпион - именно то, что нам нужно.
фикция (mock object) похож на шпиона, но обладает расширенной функциональностью, заранее заданными поведением и реакцией на вызовы.
Telegram
Библиотека джависта
#вопросы_с_собеседований
Какие существуют виды тестовых объектов?
Какие существуют виды тестовых объектов?
#вопросы_с_собеседований
Опишите иерархию исключений.
Опишите иерархию исключений.
Исключения делятся на несколько классов, но все они имеют общего предка — класс Throwable, потомками которого являются классы Exception и Error.
Ошибки (Errors) представляют собой более серьёзные проблемы, которые, согласно спецификации Java, не следует обрабатывать в собственной программе, поскольку они связаны с проблемами уровня JVM. Например, исключения такого рода возникают, если закончилась память доступная виртуальной машине.
Исключения (Exceptions) являются результатом проблем в программе, которые в принципе решаемы, предсказуемы и последствия которых возможно устранить внутри программы. Например, произошло деление целого числа на ноль.
Ошибки (Errors) представляют собой более серьёзные проблемы, которые, согласно спецификации Java, не следует обрабатывать в собственной программе, поскольку они связаны с проблемами уровня JVM. Например, исключения такого рода возникают, если закончилась память доступная виртуальной машине.
Исключения (Exceptions) являются результатом проблем в программе, которые в принципе решаемы, предсказуемы и последствия которых возможно устранить внутри программы. Например, произошло деление целого числа на ноль.
#вопросы_с_собеседований
Что такое «монитор» в Java?
Что такое «монитор» в Java?