JavaRush /Java Blog /Random-KO /커피 브레이크 #173. HashMap과 Hashtable의 차이점은 무엇입니까? Java에서 Null...

커피 브레이크 #173. HashMap과 Hashtable의 차이점은 무엇입니까? Java에서 NullPointerException을 찾고 수정하는 방법

Random-KO 그룹에 게시되었습니다

HashMap과 Hashtable의 차이점은 무엇입니까

출처: Medium 오늘은 가장 인기 있는 Java 인터뷰 질문 중 하나인 HashMap과 Hashtable의 차이점에 대한 답변을 배우게 됩니다. 커피 브레이크 #173.  HashMap과 Hashtable의 차이점은 무엇입니까?  Java에서 NullPointerException을 찾고 수정하는 방법 - 1Hashtable은 해싱과 Map 인터페이스 구현을 기반으로 키 쌍과 그 값을 저장하기 위한 데이터 구조입니다. HashMap은 또한 해싱과 Map 인터페이스 구현을 기반으로 키와 값을 저장하기 위한 데이터 구조입니다. HashMap을 사용하면 키로 값을 빠르게 얻을 수 있습니다. 예를 들어 사용자의 이름과 전화번호입니다. Java의 HashMap과 Hashtable 간에는 상당한 차이가 있습니다 . 여기에는 스레드 안전성, 동기화 및 맵 구현 일관성이 포함됩니다. Java 프로그램에서 사용할 데이터 구조 유형을 선택할 때 다음 측면을 고려하는 것이 중요합니다. HashMap은 키-값 쌍의 비동기화 , 정렬되지 않은 맵입니다. null 값을 허용 하고 동일성 검사로 해시 코드를 사용하는 반면, Hashtable은 키-값 쌍의 동기화된 순서 맵입니다. null 값을 허용하지 않으며 같음 을 확인하기 위해 equals() 메서드를 사용합니다. HashMap의 기본 용량은 16이고, Hashtable의 기본 초기 용량은 11입니다. HashMap 객체의 값은 반복자를 사용하여 반복되며, Hashtable은 벡터 외에 열거자를 사용하는 유일한 클래스입니다. Hashtable 객체의 값을 반복합니다. HashMap과 Hashtable의 차이점은 Java 인터뷰에서 가장 인기 있는 질문 중 하나라는 점을 기억하세요.

Java에서 NullPointerException을 찾고 수정하는 방법

출처: Theflashreads 이 기사를 읽은 후에는 Java 코드의 일반적인 오류인 NullPointerException을 더 잘 찾고 수정할 수 있습니다. 커피 브레이크 #173.  HashMap과 Hashtable의 차이점은 무엇입니까?  Java에서 NullPointerException을 찾고 수정하는 방법 - 2

NullPointerException이란 무엇입니까?

java.lang.NullPointerException 은 Java의 런타임 예외입니다. 어떤 객체도 가리키거나 참조하지 않는 변수, 즉 null인 변수에 액세스하려고 할 때 발생합니다. NullPointerException 은 런타임 예외이므로 애플리케이션 코드에서 명시적으로 포착하여 처리할 필요가 없습니다 .

NullPointerException은 어떤 상황에서 발생합니까?

NullPointerException은 초기화되지 않은 개체에 액세스하려고 시도할 때 발생합니다. 이미 언급했듯이 이는 객체 참조가 아무데도 가지 않고 null 값을 가질 때 발생합니다. 다음은 가장 일반적인 NullPointerException 예외 시나리오 중 일부입니다 .
  • null 개체의 속성에 액세스합니다.
  • 예외를 발생시키는 메서드에서 null을 발생시킵니다.
  • 종속성 주입 프레임워크에 대한 잘못된 구성입니다(예: (Spring)).
  • null 매개변수를 메소드에 전달합니다.
  • null 개체에 대한 메서드 호출.
  • null 객체에 동기화를 사용합니다.
  • null 개체의 인덱스 요소(예: 배열)에 액세스합니다.

예 NullPointerException

이 예에서는 문자열을 매개변수로 사용하여 해당 길이를 인쇄하는 printLength 메소드를 호출하려고 합니다. 매개변수로 전달된 문자열의 값이 null인 경우 java.lang.NullPointerException이 발생합니다 .
public class NullPointerExceptionExample {

    private static void printLength(String str) {

        System.out.println(str.length());

    }



    public static void main(String args[]) {

        String nullString = null;

        printLength(nullString);

    }

}





Exception in thread "main" java.lang.NullPointerException

    at NullPointerExceptionExample.printLength(NullPointerExceptionExample.java:3)

    at NullPointerExceptionExample.main(NullPointerExceptionExample.java:8)

NullPointerException 발생을 방지하는 방법

NullPointerException은 다음 검사 및 예방 방법을 사용하여 방지할 수 있습니다.
  • 해당 메서드나 속성에 액세스하기 전에 null 검사 를 추가하여 개체가 올바르게 초기화되었는지 확인하세요 .

  • 문자열 작업에는 Apache Commons StringUtils를 사용합니다. 예를 들어 문자열을 추가로 사용하기 전에 문자열이 비어 있는지 확인하려면 StringUtils.isNotEmpty()를 사용하세요.

    import org.apache.commons.lang3.StringUtils;
    
    
    
    public class NullPointerExceptionExample {
    
        private static void printLength(String str) {
    
            if (StringUtils.isNotEmpty(str)) {
    
                System.out.println(str.length());
    
            } else {
    
                System.out.println("This time there is no NullPointerException");
    
            }
    
        }
    
    
    
        public static void main(String args[]) {
    
            String nullString = null;
    
            printLength(nullString);
    
        }
    
    }
  • null 참조를 가질 수 없으므로 가능하면 개체보다는 기본 형식을 사용하십시오. 예를 들어 Integer 대신 int를 사용 하고 Boolean 대신 boolean을 사용합니다 .

  • 코드를 다시 확인하세요. 이렇게 하면 NullPointerException이 발생할 가능성이 줄어듭니다 .

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION