>Java >Java시작하기 >null은 Java의 객체입니까?

null은 Java의 객체입니까?

王林
王林원래의
2019-11-25 10:47:283795검색

null은 Java의 객체입니까?

1. Null은 불확실한 객체를 나타냅니다.

Java에서 null은 불확실한 객체를 식별하는 데 사용되는 키워드입니다. 따라서 참조형 변수에는 null을 할당할 수 있지만, 기본형 변수에는 null을 할당할 수 없습니다.

예: int a = null이 잘못되었습니다. 객체 o = null이 맞습니다.

Java에서 변수 적용은 한 가지 원칙을 따릅니다. 즉, 변수를 사용하기 전에 먼저 정의하고 초기화해야 합니다. a에 값을 할당하지 않으면 int a 이후의 a 값을 인쇄할 수 없습니다. 이 쌍은 참조 유형 변수에도 적용됩니다.

참조형 변수를 정의할 때 처음에 명확한 값을 줄 수 없는 경우가 있는데, 값을 지정하지 않으면 프로그램이 try 문 블록에서 값을 초기화할 수 있습니다. 이때 아래 변수를 사용하면 오류가 보고됩니다. 이때 먼저 변수에 null 값을 할당하면 문제가 해결됩니다. 예:

Connection conn = null
    try {
        conn = DriverManager.getConnection("url", "user", "password");
        } catch (SQLException e) {
          e.printStackTrace();
  }
    String catalog = conn.getCatalog();

conn = null을 처음에 지정하지 않으면 마지막 문장에서 오류가 보고됩니다.

Java 학습 영상 추천: Java 학습 소개

2. Null 자체는 객체도 아니고 Object의 인스턴스도 아닙니다

null 자체는 불확실한 객체를 나타낼 수 있지만 null 자체에 관한 한, 객체도 아니고, java.lang.Object의 인스턴스도 아닙니다.

간단한 예를 만들 수 있습니다.

//null是对象吗? 属于Object类型吗?
if (null instanceof java.lang.Object) {
    System.out.println("null属于java.lang.Object类型");
} else {
    System.out.println("null不属于java.lang.Object类型");
  }

결과는 다음과 같습니다. null은 java.lang.Object 유형에 속하지 않습니다

3. Java는 기본적으로 변수에 값을 할당합니다

변수를 정의할 때 정의 후 변수에 값이 할당되지 않으면 Java는 런타임 시 자동으로 변수에 값을 할당합니다. 할당 원칙은 정수형 int, byte, short 및 long에는 자동으로 0 값이 할당되고, 소수점이 있는 float 및 double에는 자동으로 0.0 값이 할당되고, boolean에는 자동으로 false 값이 할당되며, 기타 참조는 다음과 같습니다. 유형 변수에는 자동으로 null 값이 할당됩니다.

4. 컨테이너 유형 및 null

List: 중복 요소가 허용되며 원하는 수만큼 null을 추가할 수 있습니다.

Set: 중복된 요소는 허용되지 않으며, null은 최대 1개까지 추가할 수 있습니다.

Map: Map 키에는 최대 하나의 null을 추가할 수 있으며 값 필드에는 제한이 없습니다.

Array: 기본형 배열. 정의 후 초기값을 지정하지 않으면 Java 실행 시 자동으로 값이 지정됩니다. 참조형 배열의 경우 초기값이 지정되지 않으면 모든 요소 값은 null이 됩니다.

5. null의 기타 기능

1. 참조 유형 데이터가 null인지 확인합니다. 판단하려면 ==를 사용하세요.

2. 메모리를 해제하고 null이 아닌 참조 유형 변수가 null을 가리키도록 합니다. 이 개체는 더 이상 어떤 개체에서도 사용되지 않습니다. JVM 가비지 수집 메커니즘이 재활용될 때까지 기다립니다.

더 많은 관련 기사 추천: ​​Java 언어 소개

위 내용은 null은 Java의 객체입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.