Какова память наверху объекта в Java? [дубликат]

Самый простой способ исправить это - преобразовать в число с плавающей точкой уже в первой строке, а затем, если ввод не является числом, вернет NaN, case не будет работать нормально. И см .:

NaN === NaN; // Returns false
isNaN(NaN); // Returns true

Другая проблема в том, что подсказка всегда возвращает строку или null, насколько я знаю. Поэтому приведенный ниже код должен исправить вашу проблему:

function addD() {
  var dataSin = parseFloat(prompt("What number do you want to add?"));
  if(isNaN(dataSin)) {
    document.getElementById("targetD").innerHTML = dataSin + " is not a number";
  } else {
    dataArr[dataArr.length] = dataSin;
    document.getElementById("targetD").innerHTML = dataArr;
  }
}
6
задан Community 23 May 2017 в 12:09
поделиться

1 ответ

Это будет зависеть, на котором JVM Вы используете.

Предположение, что Вы не используете JVM со сжатыми указателями массив, использует:

  • 8 байтов для указателя типа.
  • 4 байта для длины массива.
  • 8 байтов для каждого элемента в массиве (это указатели на фактические объекты).
  • Сумма: 8+4+len*8 байты
  • Для JVM со сжатыми указателями: 4+4+len*4 байты

Затем фактические объекты, которые Вы храните (ссылки на) в массиве, используют память в зависимости от того, какие объекты они. java.lang. Объект только содержит указатель на класс, так 8 байтов или 4 байта при использовании сжатых указателей.

Для Ваших собственных классов можно считать использование памяти путем рассмотрения полей в классе. Каждая ссылка использует 8 байтов (4 байта для сжатых указателей). Каждый долго 8 байтов, интервал 4 байта, символьные/короткие 2 байта, байт/булевская переменная 1 байт. Но все, они будут выровненные к ровному общему размеру, который является кратным любым 4 или 8 байтам, в зависимости от которых JVM Вы используете.

25
ответ дан 8 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: