Подборка объединяет вопросы, отмеченные на этапах интервью в Самокат Тех. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: go, java.
В Go строка (string) — это неизменяемая последовательность байтов, обычно представляющая текст в кодировке UTF-8. Структурно строка реализована как структура с двумя полями: указатель на массив байтов и длина.
Небуферизированные каналы в Go — это каналы, которые не имеют внутреннего буфера, то есть отправка в такой канал блокируется до тех пор, пока другой горутина не прочитает значение, и наоборот.
В Go пустой интерфейс interface{} — это интерфейс, который не содержит методов и может хранить значение любого типа. Однако, когда переменная интерфейсного типа содержит nil, важно понимать, что именно nil.
В Go механизм recover используется для перехвата паники (panic) и восстановления нормального выполнения программы. Это позволяет системе после сбоя не завершаться аварийно, а обработать ошибку и продолжить работу.
В работе с Go для профилирования обычно использую встроенный пакет pprof, который позволяет собирать и анализировать профили CPU, памяти, блокировок и горутин.
В Go нулевое значение (zero value) для интерфейса — это nil. Интерфейс в Go — это тип, который содержит два поля: указатель на тип конкретного значения и указатель на само значение.
Асинхронные каналы в программировании — это структуры или механизмы, которые позволяют передавать данные между потоками или горутинами без блокировки отправителя или получателя.