Я думаю, что это имеет больше, чтобы сделать с тем, как Windows настроен, как подсказал этим ответом: Java-Xmx Опция
еще Некоторое тестирование: Я смог выделить 1300 МБ на старой машине Windows XP только с 768 МБ физическая RAM (плюс виртуальная память). На моей машине RAM на 2 ГБ я могу только получить 1220 МБ. На различных других корпоративных машинах (с более старым Windows XP) я смог получить 1400 МБ. Машина с пределом 1220 МБ является довольно новой (просто купленный у Dell), поэтому возможно, это имеет более новый (и более чрезмерно увеличенный в размерах) Windows и DLLs (это выполняет Window XP Pro Версия 2002 SP2).
Это нулевой оператор объединения. Вышеупомянутый метод утверждает, что x присваивается значение y, если y не является нулем, и в этом случае ему присваивается значение z.
Используйте y
, если не null
, в противном случае используйте z
.
Из Википедии :
Это оператор объединения с нулевым значением и сокращение для этого:
x = (y != null ? y : z);
Как утверждали другие, это нулевой оператор объединения.
Информация MSDN по этому поводу:
Если значение y равно нулю, тогда присваивается значение z.
Например:
x = Person.Name ?? "No Name";
Если имя равно нулю, x будет иметь значение «Без имени»
.Net framework 2.0 и более поздних версий разрешает значения NULL в типы значений, допускающие значение NULL.
здесь в данном случае говорится x равен y, если он имеет какое-то значение (т.е. не нуль), или же равен z