Golang:
Map internals от случайного порядка до эвакуации бакетов | Go ↔ Java
В этой статье мы разберём внутреннее устройство map / hash-таблиц в Go и Java. Если ты Java-разработчик, привыкший к HashMap, тебе будет интересно, насколько иначе мыслит Go. Если ты гофер — ты увидишь, почему в Java сделаны такие компромиссы. Мы пройдёмся по ключевым аспектам: случайный порядок ите…
Map internals from random order to bucket evacuation | Go ↔ Java
In this article, we will examine the internal structure of maps / hash tables in Go and Java. If you are a Java developer used to HashMap, you will be interested in how differently Go thinks. If you are a gopher — you will see why such compromises are made in Java. We will cover key aspects: random …
Internal structure of the Garbage Collector: Go ↔ Java
In this article, we will thoroughly examine the work of the garbage collector (Garbage Collector, GC) in Go and Java, discuss key internal mechanisms: concurrent mark & sweep, mutator vs collector, tricolor marking, GC pacing, root set scanning, and stack scanning. For Java developers, this will…
Внутреннее устройство Garbage Collector: Go ↔ Java
В этой статье мы подробно разберём работу сборщика мусора (Garbage Collector, GC) в Go и Java, рассмотрим ключевые внутренние механизмы: concurrent mark & sweep, mutator vs collector, tricolor marking, GC pacing, root set scanning и stack scanning. Для Java-разработчиков это поможет понять подхо…
Memory, Runtime и Allocator: Сравнение Go и Java для разработчиков
В этой статье мы разберём ключевые аспекты работы с памятью, runtime и механизмами аллокации объектов в Go и Java. Мы сфокусируемся на различиях подходов к управлению памятью, работе со стеком и кучей, а также как эти механизмы влияют на производительность, безопасность и удобство разработки. Статья…
Memory, Runtime, and Allocator: A Comparison of Go and Java for Developers
In this article, we will examine the key aspects of memory management, runtime, and object allocation mechanisms in Go and Java. We will focus on the differences in approaches to memory management, working with the stack and heap, and how these mechanisms affect performance, safety, and ease of deve…
Atomic vs Mutex, Blocking vs Non-Blocking, Read/Write Splitting (RWMutex), Logging | Concurrency Patterns and Best Practices part 5 | Go ↔ Java
In this article, we will analyze the key approaches to working with parallelism and synchronization in Go and Java. We will compare how the same tasks are solved in these languages, show idioms, patterns, and best practices. The material will be useful for both Java developers learning Go and Go dev…
Atomic vs Mutex, Blocking vs Non‑Blocking, Read/Write Splitting (RWMutex), Logging | Concurrency Patterns и Best Practices часть 5 | Go ↔ Java
В этой статье мы разберём ключевые подходы к работе с параллелизмом и синхронизацией в Go и Java. Мы сравним, как одни и те же задачи решаются на этих языках, покажем идиомы, паттерны и лучшие практики. Материал будет полезен как Java-разработчикам, изучающим Go, так и гоферам, которые хотят понять …
Resource cleanup, rate-limiting strategies, bounded vs unbounded channels - in Go vs Java | Patterns, idioms, and best practices for Go
We continue the series of articles for developers who want to learn Go based on knowledge of Java, and vice versa. In this article, we will discuss three key topics: Resource Cleanup (resource release), Rate-Limiting Strategies (load limiting strategies) and Bounded vs Unbounded Channels (bounded an…
Resource cleanup, rate‑limiting strategies, bounded vs unbounded channels - в Go vs Java | Паттерны, идиомы и лучшие практики Go
Продолжаем серию статей для разработчиков, которые хотят изучить Go на основе знаний Java, и наоборот. В этой статье мы обсудим три ключевые темы: Resource Cleanup (освобождение ресурсов), Rate-Limiting Strategies (стратегии ограничения нагрузки) и Bounded vs Unbounded Channels (ограниченные и неогр…
Breaking down: Rate-limiter, non-blocking operations, scheduler Go vs Java | Concurrency part 4
This article is dedicated to understanding the principles of working with concurrency and synchronization in Go and Java. We will look at key approaches such as rate-limiter, non-blocking operations, and task scheduling, compare their implementation and philosophy in both languages. This will help a…
Разбираем: Rate‑limiter, non‑blocking operations, scheduler Go vs Java | Concurrency часть 4
Эта статья посвящена пониманию принципов работы с конкурентностью и синхронизацией в Go и Java. Мы рассмотрим ключевые подходы, такие как rate‑limiter, неблокирующие операции и планирование задач, сравним их реализацию и философию в двух языках. Это поможет Java-разработчику быстро освоить Go и, нао…
Полезные статьи:
Переменные в Java — понятие, типы, область видимости и константы Всем привет! С вами Виталий Лесных. В этом уроке разберём, что такое переменные в Java, зачем они нужны, какие бывают типы, как объявля…
Побитовые операторы в Java В языке программирования Java определено несколько побитовых операторов. Эти операторы применяются к целочисленным типам данных, таким как byte, short, int, long и char. Спи…
Рассуждение о том, почему полнота знаний недостижима и как выстроить личную архитектуру профессионального роста. Каждый разработчик хотя бы раз думал: «Как всё успеть?» Технологии растут быстрее,…
Новые статьи:
Конкурентность — это не про «запустить много потоков». Это про договорённости между ними. Представь кухню ресторана: — повара (потоки / горутины) — заказы (задачи) — и главный вопрос: как они коорди…
История начинается не с академической теории, а с типичной production-проблемы. Представьте сервис: 48 CPU 300+ потоков нагрузка 200k операций в секунду много shared state Команда использует обы…
Представьте обычный продакшн-сервис. 32 CPU сотни потоков кэш конфигурации / сессий / rate limits десятки тысяч операций в секунду И где-то внутри — обычный Map. Сначала всё выглядит безобидно. Map&…