java- все статьи тега
Незаслуженно забытый ForkJoinPool
Всем известно о новых функциях, которыми нас порадовал JDK 8, и, вероятно, трудно найти Java-разработчика, который не знает, что такое Java Streams, лямбды или CompletableFutures. Итак, все эти приятности появились несколько лет назад вместе с JDK 8, но что произошло немного раньше, когда состоялся выпуск JDK 7? Даже если мы заглянем в раздел “Нов...
Три способа захвата скриншотов с помощью Selenium WebDriver
При работе с автоматизированными тестами в Selenium часто приходится делать скриншот веб-страницы или ее части. Это полезно, особенно при отладке ошибок или проверке согласованности поведения приложения в разных браузерах. Скриншоты снимаются во время выполнения теста с помощью скрипта, который помогает анализировать ошибки, просматривая состояние...
Состояния потоков в Java
«Гораздо проще уже спроектировать класс потокобезопасным, чем модернизировать его позже».― Брайан Гетц. Состояния потоков (codeGym) Потоки Java играют важную роль в параллельном программировании. Поток в любой момент времени находится только в одном из показанных на схеме ниже состояний: Жизненный цикл потока Прежде чем переходить к рассмотре...
В ожидании Java 16: Stream.toList() и другие методы преобразования
Только самообслуживание В 2004 году я работал архитектором ПО на Java в крупной финансовой компании. На тот момент в этом языке отсутствовало большинство эффективных функциональностей коллекций, которые свободно предоставлялись в Smalltalk. Я решил не ждать у моря погоды и самостоятельно приступил к созданию первых утилитных классов, впослед...
Как правильно учиться Java-программированию: история одного тьютора
Не знаю как вы, а я обожаю пиццу, особенно вместе с чесночными палочками от «Папа Джонс». И когда мне пришло это сообщение после последнего заказа, я был на седьмом небе от счастья: “Пройди наш опросник и получи бесплатные чесночные пицца-палочки или картофельные шарики на следующий онлайн заказ!” Бесплатная еда! Я должен пройти этот оп...
Как пользоваться Thread.sleep на JVM без блокировки
У таких языков JVM, как Java и Scala, есть возможность запускать параллельный код с помощью класса Thread. Потоки, как известно, сложны и подвержены ошибкам, поэтому очень важно четко представлять, как они работают. Начнем с Javadoc для Thread.sleep: Приводит к тому, что выполняемый в данный момент поток переходит в спящий режим (временно прекраща...
Тестирование для не тестировщиков
Поздравляем, вы создали свое первое full-stack веб-приложение и теперь хотите выложить его в Интернет, чтобы показать своим друзьям, семье и будущим работодателям. С помощью этого руководства вы узнаете, как: Разместить свой бэкенд на Heroku.Перенести локальную базу данных Postgres на Heroku.Разместить интерфейс на Netlify.Добавить ключи API в при...
Как научиться программировать на Java и с чего начать
Что вас здесь ждёт Если вы так же любопытны, как я, вы наверняка задумывались о том, как работают операционные системы. Здесь я расскажу о некоторых исследованиях и экспериментах, которые я провёл, чтобы лучше понять, как работают вычислительные и операционные системы. После прочтения вы создадите свою загрузочную программу, которая будет раб...
Почему вы никогда не будете слишком стары, чтобы изучать Java (или любой другой язык программирования)
Когда речь заходит о нереляционных базах данных, не все видят две стороны одной медали: многие упускают из виду то, что у этих баз данных есть не только преимущества, но и недостатки, которые могут стать источником множества проблем 😉. Управление схемой БД В каждой нереляционной базе данных реализован свой подход к схеме. В одних схемы нет во...
Избегаем исключения Null Pointer Exception в Java с помощью Optional
В 1964 году британский ученый-компьютерщик Тони Хоар изобрел ссылки на нулевые указатели (Null Pointer References). Исключение Null Pointer Exception составляет львиную долю всех исключений, которые возникают в продакшне. Оно было реализовано во многих языках программирования, включая C, C++, C#, JavaScript, Java и другие. Потеря денег, времени и ...
Java против Kotlin. Android
Чтобы что-то было сделано компьютером, нужно указать ему, как это сделать. Нужно написать программу с пошаговым объяснением: какие задачи компьютер должен выполнить и каким образом. В этом нам помогают алгоритмы. Алгоритмы — это набор инструкций, используемых компьютерами для решения тех или иных задач, ведущих к достижению конечной цели. Знани...
Топ - 9 фреймворков Java в 2020 году
Язык Java в настоящее временя участвует в функционировании 134 861 сайта, включая ESPN, SnapDeal, Alibaba и т.д. За всю историю существования этот язык доказал свою высокую эффективность в разработке ПО. Java очень популярен во множестве индустрий, включая науку, медицину, образование, финансы, правительственные сегменты и не только. Выше на диагр...
Графовое моделирование данных на Java
Моделирование данных — это жизненно важная часть разработки ПО, а выбор подходящих структур данных или баз данных — основа успеха приложения или сервиса. В этой статье мы рассмотрим ряд техник, используемых для моделирования областей данных с помощью графов. В частности, вы увидите, как размеченные графы свойств и графы баз данных могут ...
Когда параллелизм превосходит конкурентность
Скорее всего, для большинства из вас эти две концепции означают одно и то же, или же вы затрудняетесь объяснить, в чём между ними разница. Однако на самом деле они совершенно разные. И понять, как происходит в наши дни обработка данных, очень важно. В обоих случаях мы пытаемся ускорить процесс решения проблемы, увеличивая число работников, занятых...
Микрооптимизации в Java. Enum - хороший, красивый и медленный
Перечисления — важная часть каждого приложения, которое представляет собой чуть больше, чем “Hello World”. Они повсюду. И, на самом деле, перечисления очень полезны: они ограничивают ввод, позволяют сравнивать значения по ссылке, обеспечивают проверку во время компиляции и облегчают чтение кода. Однако применение перечислений приводит к некоторы...
Знакомство с функциональным программированием в Python, JavaScript и Java
Функциональное программирование (ФП) представляет собой процесс создания ПО путем компоновки чистых функций. В современном мире работодатели ищут программистов, способных применять к решению задач различные парадигмы программирования. При этом наблюдается рост популярности именно функциональной, так как она очень эффективна и позволяет легко масшт...
Java-Lombok: нужны ли геттеры и сеттеры?
(adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-1591034030238691", enable_page_level_ads: true }); (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-1591034030238691", enable_page_level_ads: true }); Привет всем энтузиастам ...
Кто на свете всех сильнее - Java, Go и Rust в сравнении
(adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-1591034030238691", enable_page_level_ads: true }); (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-1591034030238691", enable_page_level_ads: true }); Мне показалось интересны...
5 основных фреймворков для Java-разработчиков
Приветствую вас, Java-разработчики! Размышляете над тем, какой фреймворк освоить, чтобы стать полноценным специалистом? Спешу вас обрадовать — это как раз тема данной статьи. Как-то я уже делился с вами свои видением плана по овладению всеми необходимыми профессиональными навыками Java-разработчика.А теперь настало время рассказать о важнейших ф...
Аннотации для параллелизма в Java: расцвечивание потоков
В Miro мы постоянно стараемся улучшить поддерживаемость нашего кода, применяя общепринятые практики, в том числе в вопросах многопоточности. Это не решает всех проблем, возникающих из-за постоянно возрастающей нагрузки, но упрощает поддержку: повышает как читабельность кода, так и скорость разработки новых функций. На сегодняшний день (2020 год) у...