Translated articles (in Russian)

Как перестать беспокоится и начать работать с лямбда-выражениями в Java

Это – перевод статьи How to start working with lambda expressions, автора Luis Santiago. Прежде чем лямбда-выражения появились в Java 8 я успел попробовать их аналоги в других языках, например в C# и C++. Появление лямбда-выражений расширило синтаксис Java, придав ему дополнительную выразительность. В этой статье я хочу сосредоточиться на...

Continue reading...

Многопоточность в Java

Это – перевод статьи “Threading in Java” автора Beka Kodirov. Вторая часть статьи находится здесь. Чем отличается поток от процесса? Процессы были разработаны для обеспечения многозадачности в операционных системах. Все приложения живут в рамках процессов, а память и ЦПУ выделяются напрямую ядром ОС. При желании можно запустить часть вашего приложения...

Continue reading...

Как работает обработка исключений на уровне виртуальной машины Java

Источник: Java Perfomance (Hunt & John, 2011)  Виртуальные машины Java используют исключения в качестве сигнала о том, что программа нарушила некие семантические ограничения языка. Например, попытка получить доступ к индексу за пределами массива вызовет ошибку. Исключение провоцирует нелокальное перемещение контроля из точки возникновения или “выброса”, в точку, которая была определена...

Continue reading...

Многопоточность в Java: Hardware

Это – перевод статьи “Threading in Java. Part II. Hardware” автора Beka Kodirov. Первая часть статьи находится здесь. Расскажите об иерархии кэшей L1/L2/L3? Зачем они нужны? Кэши L1/L2/L3 это сегменты памяти, в чем-то схожие с RAM. Это быстрая память небольшого объёма, которая используется для уменьшения времени доступа процессора к данным...

Continue reading...