TransWikia.com

Может ли byte[] == null в Java?

Stack Overflow на русском Asked by lened on August 30, 2021

И вообще корректно ли

private void myMethod(byte[] bs){
    if (bs != null){
       ... some code ...
    }
}

2 Answers

Есть восемь типов данных, поддерживаемых 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

Answered by Sergei Buvaka on August 30, 2021

Значение 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
}

Answered by user328896 on August 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP