Ключевое слово synchronized Java

В ранних статьях блога вы видели, как надо использовать объекты Lock и Condition. Прежде чем двинуться дальше, подведем итоги, перечислив ключевые моменты, касающиеся блокировок и условий. Блокировка защищает сегмент кода, позволяя только одному потоку в единицу времени выполнять этот код.…

Работоспособные потоки Java

Как только вы вызовете метод start(), поток оказывается в работоспособном(runnable) состоянии. Работоспособный поток может в данный момент выполняться, а может и нет. Зависит от операционной системы — будет ли выделено потоку время на выполнение. Спецификация Java, однако не назысает это…

Концепция монитора

Блокировки и условия — мощный инструмент синхронизации потоков, но они не слишком объектно-ориентированы. В течении многих лет исследователи ищут способы обеспечения безопасности многопоточности, дабы избавить программистов от необходимости думать о явных блокировках. Одно из наиболее успешных решений — концепция монитора,…

Создание диалоговых окон в Java

Как вы наверное уже знаете, для использования предопределенных диалоговых окон применяется класс JOptionPane. Теперь мы опишем, как «вручную» создать собственное диалоговое окно. На рис.1 показано типичное модальное диалоговое окно, содержащее сообщение. Подобное окно отображается на экране после того, как пользователь…

Написание программы — технические детали

За последние пару десятилетий программирование прочно вошло в нашу жизнь: уже со школы учат детей писать простейшие программные модули, реализующие какую-либо простую идею. Сложно написать программу в один прием, даже если имеется опыт в области программирования. Большинство из них эволюционируют…

Наборы строк(Row Set) в языке Java

Прокручиваемые результирующие наборы предлагают богатые возможности, однако они не свободны от недостатков. В течении всего времени взаимодействия с пользователем соединения с базой данных должно быть открыто. Однако пользователь может отлучиться на длительное время, а открытое соединение будет потреблять ресурсы. В…

Битовые операции в языке Java

Работая с любыми целочисленными типами, можно применять операции, непосредственно обрабатывающие биты, из которых состоят целые числа. Это значит, что для определения состояния отдельных битов числа можно использовать маски. В языке Java есть следующие битовые операции: &(«и»), |(«или»), ^(«исключающие или»), ~(«не»).…

Сортировка и перетасовка Java

Ветераны программирования иногда вспоминают о том, как им приходилось использовать перфокарты и как вручную программировать алгоритмы сортировки. В наши дни, конечно, алгоритмы сортировки являются частью стандартной библиотеки в большинстве языков программирования, и язык программирования Java — не исключение. Метод sort()…

Использование диагностических утверждений Java

Диагностические утверждения(assertion) — это широко распространенные идиомы, применяемые для обеспечения надежности программирования. Допустим, вы убеждены в том, что конкретное свойство уже задано, и ссылаетесь на него в своей программе. Предположим, что вы вычисляете следующее выражение:

Вы уверены, что число…