Header Ads Widget

Responsive Advertisement

Nổi bật

6/recent/ticker-posts

Câu hỏi bài tập



1. Đầu ra của các câu lệnh dưới đây là gì?

String s1 = "abc";
String s2 = "abc";
System.out.println("s1 == s2 is:" + s1 == s2);
Đáp án:
Đầu ra của các câu lệnh đã cho sẽ là "false" vì trong java toán tử “+” ưu tiên hơn toán tử “==”. Vì vậy, biểu thức đã cho sẽ được đánh giá là “s1 == s2 is: abc” == “abc” tức là sai.

2. Đầu ra của các câu lệnh dưới đây là gì?
    String s3 = "JournalDev";
    int start = 1;
    char end = 5;
System.out.println(start + end);
System.out.println(s3.substring(start, end));
Đáp án:

Đầu ra của các câu lệnh đã cho sẽ là “ourn”. Ký tự đầu tiên sẽ được tự động gõ đẳng cấp thành int. Sau đó, vì trong java chỉ số ký tự đầu tiên là 0, vì vậy nó sẽ bắt đầu từ 'o' và in cho đến 'n'. Lưu ý rằng trong hàm substring String nó để lại chỉ mục kết thúc.

3. Đầu ra của các câu lệnh dưới đây là gì?
HashSet shortSet = new HashSet();
for (short i = 0; i < 100; i++) {
    shortSet.add(i); shortSet.remove(i - 1);
}
System.out.println(shortSet.size());
Đáp án:

Kích thước của shortSet sẽ là 100. Tính năng Java Autoboxing đã được giới thiệu trong JDK 5, vì vậy trong khi thêm short vào HashSet <Short>, nó sẽ tự động chuyển nó thành đối tượng Short. Bây giờ “i-1” sẽ được chuyển đổi thành int trong khi đánh giá và sau đó nó sẽ Autoboxing thành đối tượng Integer nhưng không có đối tượng Integer trong HashSet, vì vậy nó sẽ không loại bỏ bất kỳ thứ gì khỏi HashSet và cuối cùng kích thước của nó sẽ là 100.

4. Điều gì sẽ là boolean “flag” giá trị để đạt được khối finally?
try { if (flag) {
    while (true) {}
} else {
    System.exit(1);
}
} finally {
    System.out.println("In Finally");
}
Đáp án:

Khối finally sẽ không bao giờ đạt được ở đây. Nếu flag TRUE, nó sẽ đi vào một vòng lặp vô hạn và nếu là false, nó sẽ thoát ra khỏi JVM. Vì vậy, cuối cùng khối sẽ không bao giờ đạt được ở đây.

5. Kết quả đầu ra của các câu lệnh dưới đây là gì?
String str = null;
String str1="abc";
System.out.println(str1.equals("abc") | str.equals(null));
Đáp án:
Câu lệnh in đã cho sẽ ném java.lang.NullPointerException bởi vì trong khi đánh giá toán tử logic OR, trước tiên nó sẽ đánh giá cả hai nghĩa đen và vì str là null,. Phương thức equals() sẽ ném ra ngoại lệ. Luôn luôn khuyến khích sử dụng các toán tử logic ngắn mạch, tức là “||” và “&&” đánh giá các giá trị theo nghĩa đen từ bên trái và vì nghĩa đen đầu tiên sẽ trả về true nên nó sẽ bỏ qua đánh giá theo nghĩa đen thứ hai.


Bài viết được dịch lại từ journaldev.com. Cảm ơn bạn đã xem bài viết!
Nếu có bất cứ lỗi sai nào trong bài bạn có thể góp ý cho chúng tôi bằng cách bình luận bên dưới.

Đăng nhận xét

0 Nhận xét