Найти тему
14.1 Параллелизм (Concurrency). Локальные переменные потока
Локальная переменная потока - это переменная типа ThreadLocal. Каждый поток, который обращается к локальной переменной потока, имеет свою собственную, независимо инициализированную копию переменной. Чтобы записать или прочитать значение локальной переменной потока, вызовите ее метод set или get соответственно. Обычно локальная переменная потока объявляется как final static поле, чтобы многие компоненты могли легко получить к ней доступ. В следующем примере класс TLDBConn представляет подключение к базе данных. TLBDBConn::open Метод выводит строку и имя пользователя. Класс TLServer представляет саму базу данных...
10 месяцев назад
14 Параллелизм (Concurrency). Структурированный параллелизм
Ссылка https://docs.oracle.com/en/java/javase/21/core/structured-concurrency.html Структурированный параллелизм рассматривает группы связанных задач, выполняемых в разных потоках, как единую единицу работы, тем самым оптимизируя обработку ошибок и их отмену, повышая надежность и улучшая наблюдаемость. Основной класс API структурированного параллелизма находится StructuredTaskScope в java.util.concurrent пакете. Этот класс позволяет координировать группу параллельных подзадач как единое целое. С помощью...
10 месяцев назад
14.1 Параллелизм (Concurrency). Виртуальные потоки
Ссылка https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html Виртуальные потоки - это легковесные потоки, которые сокращают усилия по написанию, обслуживанию и отладке высокопроизводительных параллельных приложений. Для получения справочной информации о виртуальных потоках см. JEP 444. Поток - это наименьшая единица обработки, которую можно запланировать. Он выполняется одновременно с другими подобными единицами и в значительной степени независимо от них. Это экземпляр java.lang.Thread...
10 месяцев назад
14 Параллелизм (Concurrency)
Ссылка https://docs.oracle.com/en/java/javase/21/core/concurrency.html API-интерфейсы параллелизма Java SE предоставляют мощную, расширяемую платформу высокопроизводительных утилит потоковой обработки, таких как пулы потоков и блокирующие очереди. Этот пакет освобождает программиста от необходимости создавать эти утилиты вручную, во многом аналогично тому, как Collections Framework создавал структуры данных. Кроме того, эти пакеты предоставляют низкоуровневые примитивы для продвинутого параллельного программирования...
10 месяцев назад
Операторы
Теперь, когда вы научились объявлять и инициализировать переменные, вы, вероятно, захотите узнать, как что-то делать с ними. Для начала неплохо изучить операторы языка программирования Java. Операторы - это специальные символы, которые выполняют определенные операции с одним, двумя или тремя операндами, а затем возвращают результат. Поскольку мы изучаем операторы языка программирования Java, вам может быть полезно заранее знать, какие операторы имеют наивысший приоритет. Операторы в следующей таблице перечислены в порядке приоритета...
11 месяцев назад
Краткое описание переменных
Язык программирования Java использует как "поля", так и "переменные" как часть своей терминологии. Переменные экземпляра (нестатические поля) уникальны для каждого экземпляра класса. Переменные класса (статические поля) - это поля, объявленные с модификатором static; существует ровно одна копия переменной класса, независимо от того, сколько раз создавался экземпляр класса. Локальные переменные хранят временное состояние внутри метода. Параметры - это переменные, которые предоставляют дополнительную информацию методу; и локальные переменные, и параметры всегда классифицируются как "переменные" (а не "поля")...
11 месяцев назад
Массивы
Массив - это объект-контейнер, который содержит фиксированное количество значений одного типа. Длина массива устанавливается при создании массива. После создания его длина фиксируется. Вы уже видели пример массивов в main методе приложения "Hello World!". В этом разделе массивы рассматриваются более подробно. Массив из 10 элементов. Каждый элемент в массиве называется элементом, и доступ к каждому элементу осуществляется по его числовому индексу. Как показано на предыдущем рисунке, нумерация начинается с 0...
11 месяцев назад
Примитивные типы данных
Язык программирования Java имеет статическую типизацию, что означает, что все переменные должны быть сначала объявлены, прежде чем их можно будет использовать. Это включает указание типа и имени переменной, как вы уже видели: int gear = 1; При этом ваша программа узнает, что существует поле с именем "gear", содержит числовые данные (целое число) и имеет начальное значение 1. Тип данных переменной определяет значения, которые она может содержать, а также операции, которые могут быть выполнены с ней. В дополнение к int, язык программирования Java поддерживает семь других примитивных типов данных...
1 год назад
Переменные
Ссылка на оригинал Как вы знаете, объект сохраняет свое состояние в полях. int cadence = 0; int speed = 0; int gear = 1; Вероятно у вас есть вопросы, такие как: Каковы правила и соглашения для присвоения имен полю? Какие существуют типы данных? Обязательно ли инициализировать поля при их объявлении? Присваиваются ли полям значения по умолчанию, если они явно не инициализированы? Мы рассмотрим ответы на эти вопросы в этой статье, но прежде чем мы это сделаем, есть несколько технических различий, о которых вы должны сначала узнать. В языке программирования Java используются оба термина: "поле"...
1 год назад
Что такое пакет?
Пакет - это пространство имен, которое организует набор связанных классов и интерфейсов. Концептуально вы можете думать о пакетах как о директориях на вашем компьютере. Вы можете хранить HTML-страницы в одной папке, изображения - в другой, а скрипты или приложения разместить в третьей. Поскольку приложение, написанное на языке программирования Java, может состоять из сотен или тысяч отдельных классов, имеет смысл поддерживать порядок, помещая связанные классы и интерфейсы в пакеты. Платформа Java предоставляет огромную библиотеку классов, подходящую для использования в ваших собственных приложениях...
1 год назад
Что такое интерфейс?
Как вы уже поняли, объекты определяют свое взаимодействие с внешним миром посредством методов, которые они предоставляют. Методы формируют интерфейс объекта с внешним миром; кнопки на передней панели вашего телевизора, например, являются интерфейсом между вами и электропроводкой на другой стороне пластикового корпуса. Вы нажимаете кнопку "питание", чтобы включать и выключать телевизор. В своей наиболее распространенной форме интерфейс представляет собой группу связанных методов с пустыми телами. Поведение bicycle, если оно указано в качестве интерфейса, может выглядеть следующим образом: interface...
1 год назад
Что такое наследование?
Различные типы объектов часто имеют определенное количество общего друг с другом. Например, горные велосипеды, шоссейные велосипеды и велосипеды-тандемы имеют общие характеристики велосипедов (текущая скорость, текущая частота вращения педалей, текущая передача). Однако в каждом из них также определены дополнительные функции, которые отличают их друг от друга: велосипеды-тандемы имеют два сиденья и два комплекта рулей; дорожные велосипеды имеют откидные рули; некоторые горные велосипеды имеют дополнительное кольцо цепи, обеспечивающее более низкое передаточное число. Объектно-ориентированное программирование...
1 год назад