Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Почему не рекомендуется использовать конструкторы, такие как new String, в JavaScript?
Использование конструкторов, таких как new String или new Number, не рекомендуется, так как они создают объект вместо примитива. Объекты ведут себя иначе, чем примитивные типы данных, и могут приводить к неожиданным результатам в сравнении и других операциях. Примитивные значения (например, строки или числа) следует использовать напрямую без конструкторов.
Какая разница между String, StringBuffer и StringBuilder?
String — неизменяемый класс, каждый раз при изменении строки создается новый объект.
StringBuffer — изменяемый класс, потокобезопасен, но менее эффективен, чем StringBuilder.
StringBuilder — изменяемый класс, не является потокобезопасным, но более эффективен в однопоточных приложениях.
В чем различия между String и &str в Rust?
String — это владимый тип данных, размещённый в куче. Он изменяем и позволяет манипулировать содержимым строки.
&str — это заимствованный тип данных, обычно используемый для чтения строковых данных. Он неизменяем и эффективен для передачи строк в функции.
Что такое классы System.String и System.Text.StringBuilder?
Класс String является неизменяемым, что означает создание нового объекта при каждой модификации строки. В то время как StringBuilder позволяет изменять строки в памяти без создания новых объектов, что делает его более эффективным при частых изменениях.
Как устроена строка в C# — ссылочный тип или значимый, и зачем нужен string pool (интернирование)?
string в C# — ссылочный тип с неизменяемым содержимым. CLR использует intern pool — таблицу статически созданных литералов и интернированных строк, чтобы хранить одну копию одинаковых значений. Это экономит память и ускоряет сравнение через ссылочное равенство для литералов.
Для чего используется класс StringBuilder и как он оптимизирует работу со строками?
Иммутабельность String и String Pool
Как устроен String? Почему нельзя обратиться по индексу?
Как реализовать глубокое копирование объекта без использования JSON.stringify и StructuredClone? Какие сложности могут возникнуть?
Как бы ты реализовал метод, который умеет складывать числа разных типов (int, long, float, double) и строки (String), приводя их к числовому виду?
Рейтинг:
2
Сложность:
5
StringBuilder предназначен для сборки строк путём последовательного добавления, чтобы не создавать новые объекты string при каждой конкатенации. Он хранит изменяемый буфер символов и расширяет его по необходимости, что значительно уменьшает число аллокаций и повышает производительность при большом числе операций.
Рейтинг:
2
Сложность:
6
String иммутабелен, потому что:
Это безопасно для многопоточности.
Позволяет кешировать строки в String Pool (например, при String s = "text").
Хеш-код строки неизменен, что важно для HashMap.
Рейтинг:
3
Сложность:
6
Строки в Swift представляют собой Unicode-корректные последовательности символов, которые могут иметь переменную длину в байтах. Прямой доступ по индексу невозможен из-за переменной длины графемовых кластеров — необходимо использовать String.Index для безопасного доступа.
Рейтинг:
1
Сложность:
9
Глубокое копирование можно реализовать с помощью рекурсивной функции, которая вручную создает новый объект или массив и копирует все его свойства. Для каждого свойства, если оно является объектом, функция вызывает сама себя. Основные сложности: обработка циклических ссылок (когда объект ссылается сам на себя), копирование специальных объектов (как Date, Map, Set) и поддержка различных типов данных.
Рейтинг:
2
Сложность:
7
Для реализации такого метода нужно использовать перегрузку методов для разных числовых типов и преобразование строк к числам. Следует обрабатывать исключения при парсинге строк и выбирать наиболее подходящий тип для результата (например, double для сохранения точности). Можно использовать обобщённые методы и автоматическое приведение типов.
Рейтинг:
2
Сложность:
7
Рейтинг:
3
Сложность:
6
Рейтинг:
2
Сложность:
5
Рейтинг:
1
Сложность:
6
Рейтинг:
2
Сложность:
5