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 год) у...

Основы программирования TCP-сокетов на Java

Клиент-серверная архитектура — наиболее распространенная структура приложений в Интернете. В этой архитектуре клиенты (т.е. персональные компьютеры, устройства Интернета вещей и т. д.) сначала запрашивают ресурсы с сервера. Затем сервер отправляет обратно соответствующие ответы на запросы клиентов. Чтобы это произошло, должен быть какой-то механиз...

Синхронизация в Java. Часть 1

Прежде чем перейти к самой синхронизации, я объясню многопоточность на примере простого кода.  Рисунок 1 Первым классом будет класс “Countdown”, а класс “ThreadColor” будет выглядеть вот так: public class ThreadColor { public static final public static final String ANSI_RED = "\u001B[31m"; public static final String ANSI_GREEN = "...

Синхронизация в Java. Часть 2

Часть 1, Часть 2 Состояние гонки Вновь приветствую вас в теме “Синхронизация в Java”! Надеюсь, что вы прочли мою предыдущую статью. Давайте разберёмся, что же такое состояние гонки. Это состояние проявляется, когда нам нужно обратиться к данным параллельно. Хорошо, тогда что же значит параллельное обращение к данным? Проще говоря, это означает, чт...

Основы программирования UDP-сокетов на Java

Сокеты — это абстракция самого низкого уровня для программистов, работающих в области сетевого программирования. Существует в основном два способа (протокола) того, как должна происходить коммуникация сокетов. Один из способов устанавливает набор правил и механизмов, ограничивающих коммуникацию, так, что вероятность возникновения ошибки делается о...

Замеры производительности на Java с JMH

Практически каждому разработчику известна фраза, сказанная Дональдом Кнутом в 1974 году: “Преждевременная оптимизация — корень всех зол”. Но откуда мы должны узнать, что именно стоит оптимизировать? С тех пор вычислительные мощности многократно возросли. Но настрой на то, чтобы сосредоточиться на реальных проблемах, стоящих оптимизации, по-прежнем...

Жизненный цикл потока в Java

Эта статья направлена на объяснение различных состояний потока в мире Java. Если вы новичок в области многопоточного программирования, попробуйте сначала почитать про потоки что-нибудь базовое. Согласно Sun Microsystems, существует четыре состояния жизненного цикла потока Java. Вот они: New  —  поток находится в состоянии New, когда создается экзе...

Портируем решатель судоку с Java на WebAssembly

Мне давно хотелось приступить к изучению WebAssembly, но никак не находилось подходящего материала. Однако недавно я просматривал некоторые старые программы и вспомнил, что как-то написал решатель судоку, который отлично подходил для этого эксперимента. И я поставил цель: перенести эту программу в WASM и провести тестирование производительности. Р...

Функции Java 15: скрытые и запечатанные классы, сопоставление шаблонов и текстовые блоки

Java 15  —  это еще один функциональный релиз, таким будет и 16. Следующий LTS (релиз с долгосрочной поддержкой) запланирован как Java 17, и выйдет он в сентябре 2021 года. Этот релиз включает новое превью запечатанных (sealed) классов, а также вторую предварительную версию записей (records) и сопоставления шаблонов (pattern matching) для instance...