Cho đoạn mã sau đây. Hãy cho biết kết quả khi thực thi đoạn lệnh trên?
String s1[] = new String[5]
String str = s1[0].toUpperCase();
System.out.println(str);
String s1[] = new String[5]
String str = s1[0].toUpperCase();
System.out.println(str);
String str = s1[0].toUpperCase();
System.out.println(str);
Trả lời:
Đáp án đúng: A
Đoạn mã khai báo một mảng `s1` kiểu `String` với kích thước là 5. Khi một mảng `String` được khởi tạo bằng `new String[5]`, tất cả các phần tử của mảng sẽ được khởi tạo với giá trị mặc định là `null`.
Sau đó, đoạn mã cố gắng truy cập phần tử đầu tiên của mảng (`s1[0]`) và gọi phương thức `toUpperCase()` trên nó. Vì `s1[0]` có giá trị là `null`, việc gọi bất kỳ phương thức nào trên một đối tượng `null` sẽ gây ra ngoại lệ `NullPointerException`.
Do đó, chương trình sẽ ném ra ngoại lệ `NullPointerException` và kết thúc thực thi.





