Java

Java에서 NullPointerException 발생 시 해결 방법

567Rabbit 2024. 6. 4. 11:45

 

 

 

 

 

 

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.ArrayList.add(Object)" because "mc.memberList" is null

at main.AddressMain.main(AddressMain.java:20)

 

 

실행 시켰을 때, 오류 뜨는 이유는?

 

 

=> mc가 힙메모리를 Pointer 할 때 Pointer 할 값이 null이기(비어있기) 때문이다.

=> memberlist에 저장된 힙 메모리가 없기 때문이다.

=> "홍길동", "010-2222-3333"이 stack 영역에서 member의 생성자로는 생성이 되었지만,

     힙 메모리에 저장되는 memberlist 영역에는 값이 제대로 저장되지 않았다.

 

 

 

 

= new ArrayList<>(); 를 해야 객체 (인스턴스) 가 생긴다.

 

 

 

 

 

모르겠다면, 아래 포스팅을 참고하자

 

https://codebunny99.tistory.com/123

 

자바의 메모리(Memory) 영역 개념

1. 메소드 영역(Method Area) (= 데이터 영역)  - 메소드 영역은 클래스 정보(클래스 이름, 메소드, 변수)와 같은 런타임 상수 풀을 포함하고 있는 메모리 영역이다.- Static 영역이라고도 하며 전역변

codebunny99.tistory.com

 

 

 

내용을 추가하고, 실행시켜보면

 

 

 

추가한 내용이 잘 반영되었다.