Может ли byte[] == null в Java?
И вообще корректно ли
private void myMethod(byte[] bs){
if (bs != null){
... some code ...
}
}
Ответы (2 шт):
Значение byte не может быть равным null, т. к. это примитивный тип данных.
Массив byte[] может (!!) быть равным null, т. к. это объект.
- Primitive Data Types (The Java™ Tutorials > Learning the Java Language > Language Basics)
- Arrays (The Java™ Tutorials > Learning the Java Language > Language Basics)
Ошибки нет:
public static void main(String[] args) {
byte[] bs = null;
myMethod(bs);
myMethod(null);
}
private static void myMethod(byte[] bs) {
if (bs != null) {
System.out.println("not null");
} else {
System.out.println("null");
}
}
Вывод:
null
null
А в таком случае будет ошибка компиляции, т. к. переменная не инициализирована:
public static void main(String[] args) {
byte[] bs;
myMethod(bs); // variable bs might not have been initialized
}
Есть восемь типов данных, поддерживаемых Java. Основные типы данных предопределены языком и названы по ключевому слову. К ним относятся:
byte
Тип данных byte является 8-разрядным знаковым целым числом.
Минимальная величина равна -128 (-27) Максимальное значение равно +127 (включительно) (27-1)
По умолчанию – 0
short
Тип данных short является 16-разрядным знаковым целым числом.
Минимальное значение равно -32 768 (-215). Максимальная величина равна 32 767 (включительно) (215-1).
По умолчанию — 0.
int
В языке Java тип данных int является 32-разрядным знаковым целым числом.
Минимальный размер int -2 147 483 648 (-231).
Максимальная величина равна +2 147 483 647 (включительно)(231-1). .
По умолчанию равно 0.
long
Тип данных long является 64-разрядным знаковым целым числом.
Минимальное значение равно -9 223 372 036 854 775 808 (-263).
Максимальная величина +9 223 372 036 854 775 807 (включительно). (263-1).
По умолчанию — 0L.
float
Тип данных float является c одинарной точностью 32-битный IEEE 754 с плавающей точкой.
По умолчанию — 0.0f.
double
Тип данных double является c двойной точностью 64-битный IEEE 754 с плавающей точкой..
По умолчанию — 0.0d.
boolean
Тип данных boolean представляет собой один бит информации.
Существует только два возможных значения: true и false.
По умолчанию — false.
char
Тип данных char является одним 16-разрядным символом Юникода.
Минимальная величина равна «\u0000» (или 0).
Максимальная величина равна «\uffff» (или 65535 включительно).
По умолчанию - 0
У каждого примитивного типа есть значение по умолчанию. Все остальное в Java это ссылочные типы данных(в том числе и массивы) и все они могут быть null