static int [] arr;
public static void main(String[] args) {
arr[2] = 4;
}public static void main(String[] args) {
int [] arr;
arr[2] = 4;
}
public static void main(String[] args) {
arr[2] = 4;
}public static void main(String[] args) {
int [] arr;
arr[2] = 4;
}
위에꺼는 NullPointerException뜨고
아래꺼는 배열 생성안해서 뜨는 오류인데
위에꺼 배열 arr은 static으로 선언하면 기본 값이 null인거임?
.data arr dword 0x00000000 public arr
?
..? 배열은 선언만하는게 아니라 최초에 길이까지 다 지정해줘야 입력되는거아냐?
ㅇㅇ 그거 다알고 두번째 생성안해서 오류뜨는거 아는데 차이가 뭔지 알려고
왜 첫번째는 NullPointerException뜨는지 static로 배열 바깥에 선언하면 null값 들어가나 궁금해서
두번째는 생성안해서 아예 컴파일때 에러나는데 첫번째는 컴파일은 완료되고 런타임시에 NPE뜸