Я сказал бы , скажем, 4 , потому что:
x + y
будет заменен компилятором с реализацией StringBuilder
. +1 new
всегда создает новый объект. +1 Вот как:
String x = new String("xyz"); // 2 objects created: the variable and the constant
String y = "abc"; // 1 object created: the variable
x = x + y; // 1 object created: the one by the StringBuilder class
Допустимые имена ключей и значений см. На странице MSDN на Структура реестра . В частности:
Каждая клавиша имеет имя, состоящее из одного или нескольких печатных символов. Имена клавиш не чувствительны к регистру. Имена ключей не могут включать символ обратной косой черты (\), но любой другой печатный символ может быть используемый. Имена значений и данные могут включать символ обратной косой черты.
Типы значений реестра описаны в подробностях в MSDN здесь на случай, если вам нужно знать допустимые значения.
Для всего, что связано с Windows, MSDN должен быть авторитетным источником - статья о Ограничениях на размер элементов реестра подразумевает, что Unicode хорош, а Структура реестра говорит, что обратная косая черта и непечатаемые символы запрещены в именах клавиш. Значения просто должны быть полностью печатными символами.