Изучаем Java. По вопросам сотрудничества: @seniorvladislav
Переворот LinkedList
Еще один способ как это сделать вы можете найти здесь.
93% мужчин не знают, как вести себя с девушкой на самом деле
Из-за чего девушка охладевает, теряет инетерес, сливается, устраивает сцены, обиды, манипуляции, постоянно что-то требует, в то время, как с другим парнем может потерять дар речи от одного его взгляда, в котором чувствуется уверенность и сила.
Если сталкивался хоть толикой подобных проблем, срочно заходи на канал Творчество Чувств. Тут научат:
— грамотно общаться с девушками и доводить до секса
— строить прочные отношения, где девушка ласковая и покорная, а ты — лидер
— сформировать базу мужских принципов, которые помогут во всех направлениях в жизни
Все про отношения и жизненный путь мужчины: t.me/+bU_6kzhieGliMTFi
Внимание, разработчики! Приглашаем вас на открытый вебинар по алгоритмам и структурам данных от опытного практикующего эксперта💯
Ждём вас на уроке «Визуальное сравнение 1-2-3 алгоритмов сортировок» от OTUS, где мы:
- подробно рассмотрим три алгоритма сортировок: Пузырьком, Вставкой и Шелла;
- сравним их по различным критериям: сложность и количество обменов, стабильность и адаптивность;
- напишем алгоритмы и сравним их быстродействие;
- продемонстрируем их работу на игральных картах🂱️
🔥 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.
Встречаемся 1 июля в 20:00 мск в преддверии старта курса «Алгоритмы и структуры данных». Все участники вебинара получат специальную цену на обучение.
🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/h4Wz/?erid=LjN8KC9Mn
Разбираем как решать задачи на LeetCode
✅ Примеры решений
✅ Пояснения
Выбери своё направление:
1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. С/C++
7. PHP
8. Kotlin
9. Swift
Простыми словами об InlineKeyboard в Телеграмм ботах на java
Смотреть статью
Пузырьковая сортировка
Данный алгоритм сортировки известен в первую очередь за счёт своей простоты, однако при этом он имеет одну из наиболее низких скоростей выполнения.
Пузырьковая сортировка весьма и весьма медленная, с временной сложностью O(N²), так как мы имеем вложенные циклы. Внешний проход по элементам выполняется за N раз, внутренний — тоже N раз, и в итоге мы получаем N*N, N² итераций.
Для чего используется PushbackInputStream?
Разновидность буферизации, обеспечивающая чтение байта с последующим его возвратом в поток. Класс PushbackInputStream
представляет механизм «заглянуть» во входной поток и увидеть, что оттуда поступит в следующий момент, не извлекая информации.
У класса есть дополнительный метод unread()
.
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление:
1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Пишем Telegram-бота для скачивания видео из VK на Spring Boot и деплоим в Kubernetes
Смотреть статью
Метод Math.ceil()
Метод дает целое число с нулевой дробной частью, ближайшее к числу аргумента справа, другими словами — округляет дробь в большую сторону. Возвращается переменная типа double
.
LibGDX
LibGDX — это кроссплатформенный фреймворк для разработки 2D- и 3D-игр на Java. Он позволяет создавать игры для настольных компьютеров, мобильных устройств, веб-браузеров и даже консолей. LibGDX популярен среди разработчиков игр благодаря своей простоте использования, производительности и большому сообществу.
#для_продвинутых
conductor-oss/conductor
Conductor - это платформа, изначально созданная в Netflix для оркестровки микросервисов и событий, написанный на Java.
Conductor OSS поддерживается командой разработчиков в Orkes вместе с членами сообщества с открытым исходным кодом.git remote set-url origin https://github.com/conductor-oss/conductor
https://github.com/conductor-oss/conductor
Хотите узнать, как работает логистическая платформа в Яндекс Маркете? 🔥
В новом выпуске подкаста I like techno от Яндекса герои обсудили, как устроена платформа сейчас и как она менялась за последние 10 лет.
Команда логистики разрабатывает всё для собственной доставки Маркета: от создания заказа до его перевозки между сортировочными центрами и доставки курьером или в пункт выдачи заказов. Ребята делают код осязаемым, а офлайн технологичным, используют математические структуры, конвейерные системы, собственных роботов и немного магии.
Спикеры — спецы, погруженные в тему:
👉 Слава Цыкин, СТО логистической платформы
👉 Рома Кульчицкий, руководитель службы стабильности и инфраструктуры
👉 Андрей Захрямин, руководитель команды разработки инфраструктуры Логистики
👉 Кирилл Дмитриев, руководитель службы разработки складских систем и систем учёта
Слушать на Яндекс Музыке
Смотреть на Youtube
Душный собес на Senior Java Backend в банк
Смотреть видео
Приходите на наш Я.Субботник по JVM — 29 июня в Новосибирске!
Вас ждёт митап о том, как мы пишем код на Java, Scala и Kotlin.
В программе — доклады крутых спикеров, нетворкинг и афтерпати. Расскажем про pattern matching, процессы и факапы на складах Маркета, а еще про архитектуру наших систем.
Программа получилась насыщенной — зарегистрироваться можно по ссылке.
До встречи на Субботнике! ☀️
Что такое «локальный класс»? Каковы его особенности?
Local inner class (Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.
Локальные классы имеют следующие особенности:
• Видны только в пределах блока, в котором объявлены;
• Не могут быть объявлены как private/public/protected
или static
;
• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
• Имеют доступ к полям и методам обрамляющего класса;
• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором final
.
Что произойдет со сборщиком мусора, если выполнение метода finalize() требует ощутимо много времени, или в процессе выполнения будет выброшено исключение?
Непосредственно вызов finalize()
происходит в отдельном потоке Finalizer
(java.lang.ref.Finalizer.FinalizerThread
), который создаётся при запуске виртуальной машины (в статической секции при загрузке класса Finalizer
). Методы finalize()
вызываются последовательно в том порядке, в котором были добавлены в список сборщиком мусора. Соответственно, если какой-то finalize()
зависнет, он подвесит поток Finalizer
, но не сборщик мусора. Это в частности означает, что объекты, не имеющие метода finalize()
, будут исправно удаляться, а вот имеющие будут добавляться в очередь, пока поток Finalizer
не освободится, не завершится приложение или не кончится память.
То же самое применимо и выброшенным в процессе finalize()
исключениям: метод runFinalizer()
у потока Finalizer
игнорирует все исключения выброшенные в момент выполнения finalize()
. Таким образом возникновение исключительной ситуации никак не скажется на работоспособности сборщика мусора.
Что такое Java Virtual Machine (JVM)? Как она работает?
Java Virtual Machine (JVM) - это среда выполнения, которая позволяет выполнять Java-приложения на любой платформе, где установлена JVM. Она является ключевым компонентом технологии Java, так как обеспечивает портативность и независимость Java-кода от конкретной операционной системы.
JVM принимает скомпилированный Java-код (байт-код) и интерпретирует его в машинный код на конкретной платформе. Он выполняет множество задач, включая загрузку классов, управление памятью, выполнение потоков, оптимизацию кода и т. д.
Когда Java-приложение выполняется на JVM, оно получает доступ к богатому набору библиотек Java, которые предоставляют множество готовых классов и методов для решения различных задач. Благодаря JVM Java считается одним из самых надежных и масштабируемых языков программирования.
#вопросы_с_собеседований
Прожарка java.lang.String
Давайте абьюзить баг в java.lang.String, который позволит делать очень странные строки. Мы сделаем "Hello World", который не начинается с "Hello" и покажем, что не все пустые строки равны между собой. Научимся прожаривать строки в чужих классах.
Смотреть статью
❗️ Отус приглашает 19 июня в 18:00 по МСК на бесплатный вебинар «Uniswap: эволюция крупнейшего децентрализованого финансового протокола от версии v1 до v4»!
Вебинар является бесплатной частью полноценного онлайн-курса «Solidity Developer».
➡️ Регистрация на вебинар: https://otus.pw/r9ke5/?erid=LjN8KTYU4
Понимание Uniswap v4 и Hooks становится все более востребованным, так как многие приложения, даже не связанные с DeFi, используют Uniswap, например, для размещения токенов своих проектов.
На вебинаре мы разберем:
✅ развитие протокола от v1 до v4;
✅ особенности архитектуры v4 и почему деплой протокола был невозможен до обновления Dencun в сети Ethereum;
✅ какие Hooks бывают и почему они похожи на Hooks в React;
✅ как происходит обмен токенов и менеджмент LP-позиций в v4 пулах.
Записывайтесь сейчас, а мы потом напомним. Участие бесплатно.
🔥Тесты для подготовки к собеседованию🔥
Выбери своё направление:
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Комбинирование хеш-таблиц
Комбинирование двух хеш-таблиц вручную через цикл очень неэффективно. Вот альтернативное решение этой проблемы, которое вам возможно понравится.
Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера
Смотреть статью
Узнаем размер памяти компьютера
Для получения информации о памяти компьютера в Java можно использовать класс Runtime.
Регистрация на ARCHI.Tech от ВТБ уже стартовала!
Предварительный этап, на котором можно заработать дополнительные баллы, уже стартовал! Включайся в работу прямо сейчас: https://cnrlink.com/architechvtbjavasenior
📅 Расписание хакатона:
🔹 31 мая – начало регистрации
🔹 14 июня – старт предварительного этапа и митап для участников
🔹 28 июня – окончание регистрации, публикация задач хакатона
🔹 29 июня – закрытие приема решений, жюри выбирает финалистов
🔹 30 июня – онлайн-питч лучших проектов и награждение победителей в прямом эфире
Тебя ждет погружение в проекты ВТБ, знакомство с экспертами банка, решение практических задач и прокачка технических навыков!
👉 Попробуй себя в архитектуре — участвуй в ARCHI.Тech от ВТБ: https://cnrlink.com/architechvtbjavasenior
Реклама. БАНК ВТБ (ПАО). ИНН 7702070139. erid: LjN8KSod6
Получи оффер разработчика в YADRO!
Вендор и производитель IT-инфраструктуры, пользовательского и телеком - оборудования YADRO даёт возможность работать удаленно или в одном из классных офисов в Москве, Питере, Нижнем Новгороде, Екатеринбурге или Минске.
Сейчас открыты вакансии в департамент разработки программного обеспечения и флагманского продукта компании YADRO, современного хранилища – TATLIN.UNIFIED.
Ребята разрабатывают на GO и ожидают знания и понимания алгоритмов обработки данных, основных структур работы с данными, и, конечно, желания развиваться, решать задачи, осмысливая их.
Смотри список, выбирай вакансию и отправляй резюме:
• Инженер-программист Go
• Старший инженер-программист С++
• Старший DevOps-инженер
#вопросы_с_собеседований
Что такое сигнатура метода?
Это уникальная строка, которая описывает типы и порядок аргументов, а также возвращаемый тип метода. Сигнатура используется компилятором Java для различения методов с одинаковым именем, но отличающихся по своим параметрам.
#вопросы_с_собеседований
Что такое «фреймворк Fork/Join»?
Фреймворк Fork/Join
, представленный в JDK 7
, - это набор классов и интерфейсов позволяющих использовать преимущества многопроцессорной архитектуры современных компьютеров. Он разработан для выполнения задач, которые можно рекурсивно разбить на маленькие подзадачи, которые можно решать параллельно.
• Этап Fork
: большая задача разделяется на несколько меньших подзадач, которые в свою очередь также разбиваются на меньшие. И так до тех пор, пока задача не становится тривиальной и решаемой последовательным способом.
• Этап Join
: далее (опционально) идёт процесс «свёртки» - решения подзадач некоторым образом объединяются пока не получится решение всей задачи.
Решение всех подзадач (в т.ч. и само разбиение на подзадачи) происходит параллельно.
Для решения некоторых задач этап Join не требуется. Например, для параллельного QuickSort
— массив рекурсивно делится на всё меньшие и меньшие диапазоны, пока не вырождается в тривиальный случай из 1 элемента. Хотя в некотором смысле Join
будет необходим и тут, т.к. всё равно остаётся необходимость дождаться пока не закончится выполнение всех подзадач.
Ещё одно замечательное преимущество этого фреймворка заключается в том, что он использует work-stealing
алгоритм: потоки, которые завершили выполнение собственных подзадач, могут «украсть» подзадачи у других потоков, которые всё ещё заняты.
💯Как сделать код более понятным и надежным с помощью структур данных Clojure?
Узнайте на практическом открытом уроке "Структуры данных Clojure" от OTUS, где мы:
- познакомимся с основными примитивными типами данных и персистентными структурами, которые являются основой функционального программирования не только в Clojure;
- рассмотрим использование transient-структур для повышения производительности;
- поговорим про Structural Sharing и почему неизменяемые структуры тоже могут быть быстрыми.
Полученные знания пригодятся для работы с Clojure и другими функциональными языками программирования!
⏰ Встречаемся 13 июня в 20:00 мск в рамках курса «Clojure Developer». Все участники вебинара получат специальную цену на обучение!
➡️ Регистрируйся прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/eIBy/