Побитовые операции
👉👆
~
: Побитовый унарный оператор NOT;&
: Побитовый AND;&=
: Побитовый AND с присваиванием;| :
Побитовый OR;|=
: Побитовый OR с присваиванием;^
: Побитовый исключающее XOR;^=
: Побитовый исключающее XOR с присваиванием;>>
: Сдвиг вправо (деление на 2 в степени сдвига);>>=
: Сдвиг вправо с присваиванием;>>>
: Сдвиг вправо без учёта знака;>>>=
: Сдвиг вправо без учёта знака с присваиванием;<<
: Сдвиг влево (умножение на 2 в степени сдвига);<<=
: Сдвиг влево с присваиванием.👉👆
Media is too big
VIEW IN TELEGRAM
JavaFX Game: Пишем Battleship (Морской бой)
Source Code: https://github.com/AlmasB/Battleship/tree/master/src/com/almasb/battleship
👉👆
Source Code: https://github.com/AlmasB/Battleship/tree/master/src/com/almasb/battleship
👉👆
⚡️ Один из важных шагов в проверке мобильного приложения — доступность для большого числа людей.
⁉ Как тестироващику автоматизировать проверку доступности (Accessibility)?
📢📢 Узнаем 5 апреля в 20:00 на вебинаре, приуроченном к онлайн-курсу «Kotlin QA Engineer» OTUS.
Какие темы мы затронем на уроке?
- Cтандарты и методы проверки соответствия требованиям Accessibility
- Разметка семантической информации в мобильных приложениях Android XML, Jetpack Compose, KMM и Flutter
- Разработка тестов с использованием Accessibility Test Framework для Android и Google Scanner for A11y (KMM)
- Создание валидаторов для сложных визуальных проверок
В результате мы научимся:
— Проверять готовность мобильного приложения для использования людьми с ограничениями здоровья
— Автоматически проверять соответствие требованиям визуальной контрастности, адаптации верстки под увеличенный шрифт, наличие семантической разметки для вспомогательных инструментов для приложений Android (XML и Compose) и iOS (Flutter и KMM).
— Использо...
⁉ Как тестироващику автоматизировать проверку доступности (Accessibility)?
📢📢 Узнаем 5 апреля в 20:00 на вебинаре, приуроченном к онлайн-курсу «Kotlin QA Engineer» OTUS.
Какие темы мы затронем на уроке?
- Cтандарты и методы проверки соответствия требованиям Accessibility
- Разметка семантической информации в мобильных приложениях Android XML, Jetpack Compose, KMM и Flutter
- Разработка тестов с использованием Accessibility Test Framework для Android и Google Scanner for A11y (KMM)
- Создание валидаторов для сложных визуальных проверок
В результате мы научимся:
— Проверять готовность мобильного приложения для использования людьми с ограничениями здоровья
— Автоматически проверять соответствие требованиям визуальной контрастности, адаптации верстки под увеличенный шрифт, наличие семантической разметки для вспомогательных инструментов для приложений Android (XML и Compose) и iOS (Flutter и KMM).
— Использо...
Мы создали практическую онлайн-программу «Java-разработчик», которая позволит за 10 месяцев плотной практики стать высокооплачиваемым специалистом.
Учиться на Хекслете удобно:
✔️Все лекции доступны 24/7 на платформе — занимайтесь в удобное время
✔️ Практика прямо в браузере
✔️Наставники, которые помогут в процессе обучения, и кураторы, контролирующие прогресс
Вы также сможете принять участие в открытых проектах Хекслета на GitHub. Научитесь работать с реальными приложениями и закреплять навыки, полученные на курсе, прямо в браузере.
А самое главное — вы станете участником Карьерного трека уже во время обучения.
Пройдете вебинары, которые охватывают все темы по трудоустройству: от составления резюме и рабочих профилей до психологических аспектов собеседования и адаптации на рабочем месте. Получите рекомендации по своему первому резюме от HR-специалистов и более опытных разработчиков.
Мы заинтересованы, чтобы вы нашли первую работу. Получите полную консультацию по профессии и карьере в IT!
Учиться на Хекслете удобно:
✔️Все лекции доступны 24/7 на платформе — занимайтесь в удобное время
✔️ Практика прямо в браузере
✔️Наставники, которые помогут в процессе обучения, и кураторы, контролирующие прогресс
Вы также сможете принять участие в открытых проектах Хекслета на GitHub. Научитесь работать с реальными приложениями и закреплять навыки, полученные на курсе, прямо в браузере.
А самое главное — вы станете участником Карьерного трека уже во время обучения.
Пройдете вебинары, которые охватывают все темы по трудоустройству: от составления резюме и рабочих профилей до психологических аспектов собеседования и адаптации на рабочем месте. Получите рекомендации по своему первому резюме от HR-специалистов и более опытных разработчиков.
Мы заинтересованы, чтобы вы нашли первую работу. Получите полную консультацию по профессии и карьере в IT!
This media is not supported in your browser
VIEW IN TELEGRAM
😎Хотите расширить свой стек языком Clojure? Приходите ЗАВТРА, 6.04 в 20:00 мск на бесплатный вебинар «Разработка скриптов на Clojure», приуроченный к старту онлайн-курса «Clojure Developer» в OTUS.
— Clojure — это язык программирования общего назначения, на нём можно разрабатывать абсолютно все. До недавнего времени разработка скриптов на Clojure была трудной задачей в основном из-за медленного старта JVM, но появление GraalVM позволило обойти это ограничение. Скрипты, написанные на Clojure, теперь стартуют практически мгновенно, при этом, в процессе разработки доступен REPL и весь арсенал языка Clojure.
— На занятии мы познакомимся с проектом Babashka и узнаем, как именно эта библиотека помогает разрабатывать скрипты.
✅ Не упустите возможность протестировать курс! После открытого урока вы сможете приобрести курс, доступный в рассрочку.
👉Пройдите полный тест на сайте, узнайте, осилите ли вы обучение, и запишитесь на бесплатный вебинар: https://otus.pw/33in/
— Clojure — это язык программирования общего назначения, на нём можно разрабатывать абсолютно все. До недавнего времени разработка скриптов на Clojure была трудной задачей в основном из-за медленного старта JVM, но появление GraalVM позволило обойти это ограничение. Скрипты, написанные на Clojure, теперь стартуют практически мгновенно, при этом, в процессе разработки доступен REPL и весь арсенал языка Clojure.
— На занятии мы познакомимся с проектом Babashka и узнаем, как именно эта библиотека помогает разрабатывать скрипты.
✅ Не упустите возможность протестировать курс! После открытого урока вы сможете приобрести курс, доступный в рассрочку.
👉Пройдите полный тест на сайте, узнайте, осилите ли вы обучение, и запишитесь на бесплатный вебинар: https://otus.pw/33in/
This media is not supported in your browser
VIEW IN TELEGRAM
😎Хотите расширить свой стек языком Clojure? Приходите ЗАВТРА, 6.04 в 20:00 мск на бесплатный вебинар «Разработка скриптов на Clojure», приуроченный к старту онлайн-курса «Clojure Developer» в OTUS.
— Clojure — это язык программирования общего назначения, на нём можно разрабатывать абсолютно все. До недавнего времени разработка скриптов на Clojure была трудной задачей в основном из-за медленного старта JVM, но появление GraalVM позволило обойти это ограничение. Скрипты, написанные на Clojure, теперь стартуют практически мгновенно, при этом, в процессе разработки доступен REPL и весь арсенал языка Clojure.
— На занятии мы познакомимся с проектом Babashka и узнаем, как именно эта библиотека помогает разрабатывать скрипты.
✅ Не упустите возможность протестировать курс! После открытого урока вы сможете приобрести курс, доступный в рассрочку.
👉Пройдите полный тест на сайте, узнайте, осилите ли вы обучение, и запишитесь на бесплатный вебинар: https://otus.pw/hMtmJ/
— Clojure — это язык программирования общего назначения, на нём можно разрабатывать абсолютно все. До недавнего времени разработка скриптов на Clojure была трудной задачей в основном из-за медленного старта JVM, но появление GraalVM позволило обойти это ограничение. Скрипты, написанные на Clojure, теперь стартуют практически мгновенно, при этом, в процессе разработки доступен REPL и весь арсенал языка Clojure.
— На занятии мы познакомимся с проектом Babashka и узнаем, как именно эта библиотека помогает разрабатывать скрипты.
✅ Не упустите возможность протестировать курс! После открытого урока вы сможете приобрести курс, доступный в рассрочку.
👉Пройдите полный тест на сайте, узнайте, осилите ли вы обучение, и запишитесь на бесплатный вебинар: https://otus.pw/hMtmJ/
Java Чистый код: Как его писать? Лучшие практики от экспертов
Разработка программного обеспечения - сложное ремесло.
Всегда существует множество способов написания определенных частей кода или разработки новых функциональных возможностей. В конечном счете, они могут делать одно и то же, но некоторые из них могут быть на порядки более эффективными и простыми для понимания, чем другие.
Именно разработчики должны определить, какой подход будет работать лучше всего и как написать качественный чистый код.
В этой статье мы сосредоточимся на написании чистого кода на Java. Почему так важно писать легко читаемый код? Каковы лучшие практики разработки кода на Java? Продолжайте читать, чтобы узнать!
https://stratoflow.com/java-clean-code/
👉👆
Разработка программного обеспечения - сложное ремесло.
Всегда существует множество способов написания определенных частей кода или разработки новых функциональных возможностей. В конечном счете, они могут делать одно и то же, но некоторые из них могут быть на порядки более эффективными и простыми для понимания, чем другие.
Именно разработчики должны определить, какой подход будет работать лучше всего и как написать качественный чистый код.
В этой статье мы сосредоточимся на написании чистого кода на Java. Почему так важно писать легко читаемый код? Каковы лучшие практики разработки кода на Java? Продолжайте читать, чтобы узнать!
https://stratoflow.com/java-clean-code/
👉👆
Сравните Iterator и ListIterator.
☕️ ListIterator расширяет интерфейс Iterator;
☕️ ListIterator может быть использован только для перебора элементов коллекции List;
☕️ Iterator позволяет перебирать элементы только в одном направлении при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
☕️ ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
☕️ При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
#вопросы_с_собеседований
☕️ ListIterator может быть использован только для перебора элементов коллекции List;
☕️ Iterator позволяет перебирать элементы только в одном направлении при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
☕️ ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
☕️ При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
Приведите примеры структурных шаблонов проектирования.
Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.
👉👆
Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.
👉👆