programing

Java에서 'boolean' 및 'Boolean' 기본값

sourcetip 2022. 7. 14. 23:26
반응형

Java에서 'boolean' 및 'Boolean' 기본값

의 기본값은 무엇입니까?boolean(표준) 및Boolean(primitive wrapper)는 자바어입니까?

의 디폴트값Boolean(오브젝트)는null.
의 디폴트값boolean(비밀번호)는false.

임의의 디폴트값Object,예를 들어Boolean, 는null.

의 디폴트값boolean거짓입니다.

주의: 모든 프리미티브에는 래퍼 클래스가 있습니다.모든 래퍼에는 기본값이 다음과 같은 참조가 사용됩니다.null. 프리미티브의 기본값은 다음과 같습니다.

boolean -> false

byte, char, short, int, long -> 0

float, double -> 0.0

주 (2): void포장지가 있다Void디폴트로는null(핵을 사용하지 않고) 가능한 값뿐입니다.

부울
수 있습니다.true또는false.
기본값은 다음과 같습니다.false.

(출처: Java Primitive Variables).

부울
a가 될 수 있습니다.Boolean나타내는 객체true또는false, 또는 다음과 같이 할 수 있습니다.null.
기본값은 다음과 같습니다.null.

문의가 필요한 경우 필드/변수를 명시적으로 초기화해야 합니다. 왜냐하면 검색해야 하는 경우 다른 사용자가 해당 필드/변수를 초기화해야 할 수도 있습니다.

원초적 가치boolean여기서 볼 있듯이 거짓입니다.

다른 사람들이 언급했듯이,Boolean디폴트로는 늘이 됩니다.

Boolean은 객체입니다.인스턴스 변수일 경우 null이 됩니다.메서드 내에서 선언된 경우 초기화할 필요가 있습니다.그렇지 않으면 컴파일러 오류가 발생합니다.

원시(예: 부울)로 선언하는 경우.인스턴스 변수(또는 클래스 변수)인 경우 값은 기본적으로 false입니다.메서드 내에서 선언된 경우에도 true 또는 false로 초기화해야 합니다.그렇지 않으면 컴파일러 오류가 발생합니다.

초기화되지 않은Boolean멤버(실제로 타입의 오브젝트에 대한 참조)Boolean)의 기본값은 입니다.null.

초기화되지 않은boolean(임의) 멤버의 디폴트값:false.

에는 디폴트가 없습니다.Boolean.Boolean를 사용하여 구축해야 합니다.boolean또는String. 오브젝트가 의도하지 않은 경우, 이것은 다음을 가리킵니다.null.

primitive의 디폴트booleanfalse.

http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

class BooleanTester
{
    boolean primitive;
    Boolean object;

    public static void main(String[] args) {
        BooleanTester booleanTester = new BooleanTester();
        System.out.println("primitive: " + booleanTester.getPrimitive());
        System.out.println("object: " + booleanTester.getObject());
}

    public boolean getPrimitive() {
        return primitive;
    }

    public Boolean getObject() {
        return object;
    }
}

출력:

primitive: false
object: null

이것은 명백해 보이지만 잭슨이 오브젝트를 JSON에 시리얼화하면서 이와 같이 getter를 호출한 후 NPE를 던지고 있는 상황이 있었습니다.게터는 할당되지 않은 원시 부울을 반환합니다.이로 인해 잭슨이 무효를 받아 NPE에 대한 메서드를 호출하려고 한다고 믿게 되었습니다.잘못했습니다.

이 이야기의 교훈은 Java가 프리미티브에 메모리를 할당할 때 초기화가 되지 않았더라도 해당 메모리는 값을 가지고 있다는 것입니다. Java는 부울에 대해 false로 간주됩니다.반면 Boolean과 같이 초기화되지 않은 복잡한 오브젝트에 메모리를 할당할 경우 오브젝트 자체에 참조 공간만 할당하지 않고 참조 공간만 할당합니다.메모리에 참조할 오브젝트가 없기 때문에 이 참조를 해결하면 null이 됩니다.

엄밀히 말하면, "디폴트 투 폴스"는 좀 빗나간 것 같아요.Java는 명시적으로 설정될 때까지 메모리를 할당하고 false 값을 할당하지 않는다고 생각합니다.Java는 메모리를 할당하고 그 값이 어떤 것이든 false 값과 같다고 생각합니다.그러나 실제적인 목적에서는 그것들은 같은 것이다.

언급URL : https://stackoverflow.com/questions/6226290/default-value-of-boolean-and-boolean-in-java

반응형