Tổng hợp trắc nghiệm java core Câu 1: Trong Java, phạm vi (range) của kiểu dữ liệu short là gì? A. 128 đến 127 B. 32768 đến 32767 C. 2147483648 đến 2147483647 D. Không có trong các lựa chọn Đáp án: B Giải thích: Kiểu dữ liệu short chiếm 16 bit trong bộ nhớ. Phạm vi của nó là từ 32768 đến 32767. Câu 2: Phạm vi của kiểu dữ liệu byte trong Java là gì? A. 128 đến 127 B. 32768 đến 32767 C. 2147483648 đến 2147483647 D. Không có trong các lựa chọn Đáp án: A Giải thích: Kiểu dữ liệu byte chiếm 8 bit trong bộ nhớ. Phạm vi của nó là từ 128 đến 127. trắc nghiệm java, trắc nghiệm test java, câu hỏi thi trắc nghiệm java, trắc nghiệm java fpt, trắc nghiệm java hướng đối tượng, câu hỏi thi trắc nghiệm java
Trang 2có thể được ép kiểu thành byte Nếu long lớn hơn 127, nó mất đi các bit có ý nghĩa cao nhất (3) thực sự hoạt động, mặc dù không cần phải ép kiểu, vì một long có thể lưu trữ một byte.
Câu 4: Một biểu thức liên quan đến byte, int và các số nguyên được thăng cấp thành kiểu
Giải thích: Phạm vi của kiểu dữ liệu float là từ -(3.4e38) đến +(3.4e38)
Câu 6: Các hàm toán học siêu việt (transcendental) trả về giá trị của kiểu dữ liệu nào?
Trang 3Câu 7: Đoạn mã Java sau đây sẽ in ra kết quả gì?
for (int i = 0; i < 6; ++i)
result = result + num[i];
Trang 4Câu 9: Đoạn mã Java sau đây sẽ in ra kết quả gì?
Trang 7Đáp án: C
Giải thích: Unicode định nghĩa một bảng ký tự toàn cầu có thể biểu diễn tất cả các ký tự được tìm thấy trong tất cả các ngôn ngữ trên thế giới Phạm vi của nó là từ 0 đến 65536
Câu 13: Biến boolean có thể chứa giá trị nào sau đây?
A True & False
B 0 & 1
C Bất kỳ giá trị nguyên nào
D true
Đáp án: A
Giải thích: Biến boolean chỉ có thể chứa một trong hai giá trị có thể có, true và false
Câu 14: Kiểu dữ liệu nào chiếm giữ các giá trị từ 0 đến 127 trong bảng ký tự Unicode được sử dụng cho ký tự trong Java?
Trang 8Giải thích: Biến boolean chỉ có thể được gán giá trị true hoặc false.
Câu 16: Chương trình Java sau đây sẽ in ra kết quả gì?
class array_output {
public static void main(String args[]) {
char array_variable [] = new char[10];
for (int i = 0; i < 10; ++i) {
Trang 9public static void main(String args[]) {
boolean var1 = true;
boolean var2 = false;
Trang 10public static void main(String args[]) {
boolean var1 = true;
boolean var2 = false;
System.out.println((var1 & var2));
Trang 11Giải thích: Toán tử boolean ‘&’ luôn trả về true hoặc false Nó trả về true khi cả hai giá trị đều là true và ngược lại Vì var1 được định nghĩa là true và var2 được định nghĩa là false nên kết quả của toán tử ‘&’ là false.
public static void main(String args[]) {
char var1 = 'A';
char var2 = 'a';
Trang 12Câu 21: Trong Enum, thứ tự của các biến là gì?
Câu 22: Chúng ta có thể tạo một đối tượng của Enum ở ngoài Enum chính nó không?
Trang 13Giải thích: Phương thức ordinal() cung cấp số cho các biến được định nghĩa trong Enum.
Câu 24: Nếu chúng ta cố gắng thêm các hằng số Enum vào TreeSet, thứ tự sắp xếp nó sẽ
sử dụng là gì?
A Sắp xếp theo thứ tự khai báo của Enums
B Sắp xếp theo thứ tự chữ cái của Enums
C Sắp xếp dựa trên phương thức order()
D Sắp xếp theo thứ tự giảm dần của tên của Enums
Đáp án: A
Giải thích: TreeSet sẽ sắp xếp các giá trị theo thứ tự mà các hằng số Enum được khai báo
Câu 25: Đoạn mã Java sau đây sẽ in ra kết quả gì?
A Lỗi thời gian chạy (Runtime Error)
B Lỗi biên dịch (Compilation Error)
Trang 14Câu 26: Đoạn mã Java sau đây sẽ in ra kết quả gì?
Trang 15Giải thích: Hàm tạo của Enums được gọi và in ra 10.
Câu 28: Phương thức nào trả về các phần tử của lớp Enum?
Trang 16Giải thích: Phương thức getEnumConstants() trả về các phần tử của lớp Enum hoặc null nếu đối tượng Class này không biểu diễn một kiểu Enum.
Câu 29: Tất cả các Enum đều mở rộng từ lớp nào?
A int
Trang 17BigDecimal _a = new BigDecimal("0.02");
BigDecimal _b = new BigDecimal("0.03");
Trang 180.009999999999999998
Đáp án: A
Giải thích: BigDecimal cung cấp độ chính xác cao hơn so với double Double nhanh hơn
về mặt hiệu suất so với BigDecimal
Câu 34: Cơ sở của kiểu dữ liệu BigDecimal là gì?
Trang 19Giải thích: BigDecimal là một phần của java.math Gói này cung cấp các lớp khác nhau
để lưu trữ số và thực hiện các phép toán toán học
Câu 38: BigDecimal.ONE là gì?
A Tuyên bố sai
B Tuyên bố được xác định tùy chỉnh
C Biến tĩnh với giá trị 1 với scale 10
D Biến tĩnh với giá trị 1 với scale 0
Đáp án: D
Giải thích: BigDecimal.ONE là biến tĩnh của lớp BigDecimal với giá trị 1 và scale 0
Câu 39: Lớp nào là thư viện của các hàm thực hiện các phép toán số nguyên và số thập phân?
A MathContext
B MathLib
C BigLib
D BigContext
Trang 20Đáp án: A
Giải thích: Lớp MathContext là một thư viện các hàm thực hiện các phép toán số nguyên
và số thập phân với BigInteger và BigDecimal
Câu 40: Đoạn mã Java sau đây sẽ in ra kết quả gì?
public class AddDemo
{
public static void main(String args[])
{
BigDecimal b = new BigDecimal("23.43");
BigDecimal br = new BigDecimal("24");
BigDecimal bres = b.add(new BigDecimal("450.23"));
System.out.println("Add: " + bres);
MathContext mc = new MathContext(2, RoundingMode.DOWN);
BigDecimal bdecMath = b.add(new BigDecimal("450.23"), mc);
System.out.println("Add using MathContext: " + bdecMath);
Add using MathContext: 473.66
D Ngoại lệ thời gian chạy
Trang 21Giải thích: SimpleDateFormat có thể được sử dụng như sau:
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-mm-dd'T'hh:MM:ss");
String nowStr = sdf.format(now);
System.out.println("Current Date: " + nowStr);
Câu 42: Làm thế nào để chuyển đổi đối tượng Date thành chuỗi?
Trang 23A useDaylightTime() của lớp Time
B useDaylightTime() của lớp Date
C useDaylightTime() của lớp TimeZone
D useDaylightTime() của lớp DateTime
Trang 24Đáp án: A
Giải thích: java.sql.Date là kiểu dữ liệu của ngày tháng được lưu trữ trong cơ sở dữ liệu
Câu 48: LocalTime đại diện cho cái gì?
A Ngày mà không có thời gian
B Thời gian mà không có ngày
C Ngày và thời gian
D Ngày và thời gian với múi giờ
Đáp án: B
Giải thích: LocalTime của thư viện joda đại diện cho thời gian mà không có ngày
Câu 49: Làm thế nào để lấy sự khác biệt giữa hai ngày?
A long diffInMilli = java.time.Duration.between(dateTime1, dateTime2).toMillis();
B long diffInMilli = java.time.difference(dateTime1, dateTime2).toMillis();
C Date diffInMilli = java.time.Duration.between(dateTime1, dateTime2).toMillis();
D Time diffInMilli = java.time.Duration.between(dateTime1, dateTime2).toMillis();Đáp án: A
Giải thích: Java 8 cung cấp một phương thức gọi là between để cung cấp Duration giữa hai thời gian
Câu 50: Làm thế nào để lấy thời gian UTC?
Trang 25Câu 51: Đối với kiểu dữ liệu nào dưới đây là hằng số kiểu long?
Giải thích: Chúng ta có thể sử dụng toán tử & trên số nguyên/kiểu char (và nó trả về một
số nguyên) hoặc trên kiểu boolean (và nó trả về một boolean)
Câu 53: Hằng số trong Java phải được thêm vào cuối bằng điều gì dưới đây?
Giải thích: Hằng số kiểu long kết thúc bằng L hoặc l
Câu 54: Hằng số có thể thuộc loại dữ liệu nào dưới đây?
Trang 26C identifier & keyword
D Không có gì trong số những lựa chọn trên
Trang 27public static void main(String args[]) {
int array_variable [] = new int[10];
for (int i = 0; i < 10; ++i) {
Trang 28Lỗi biên dịch không giải quyết: y cannot be resolved to a variable
Câu 59: Đối với chuỗi ký tự nào dưới đây là chuỗi không đúng?
Trang 29Giải thích: Tất cả các chuỗi phải bắt đầu và kết thúc trong cùng một dòng.
Câu 60: Đoạn mã Java sau sẽ xuất ra kết quả gì?
Trang 30Câu 61: Điều kiện này sau đây là điều kiện cần để chuyển đổi kiểu tự động trong java?a) The destination type is smaller than the source type
b) The destination type is larger than the source type
c) The destination type can be larger or smaller than the source type
d) None of the mentioned
Đáp án: b
Giải thích: Trong quá trình chuyển đổi kiểu tự động ở Java, điều kiện cần là kiểu đích phải lớn hơn kiểu nguồn
Câu 62: Prototype của constructor mặc định của lớp Java sau:
public class prototype { }
Trang 31b = b * 50;
a) b không thể chứa giá trị 100, giới hạn bởi dải giá trị của nó
b) Toán tử * đã chuyển đổi b * 50 thành int, không thể chuyển đổi thành byte mà không cần ép kiểu
c) b không thể chứa giá trị 50
d) Không có lỗi trong đoạn mã này
Giải thích: Nếu bất kỳ toán hạng nào là double, kết quả của biểu thức là double
Câu 65: Trong Java, thuật ngữ "Truncation" có nghĩa là gì?
a) Giá trị dấu chấm động được gán cho kiểu số nguyên
b) Giá trị số nguyên được gán cho kiểu số dấu chấm động
c) Giá trị dấu chấm động được gán cho kiểu số dấu chấm động
d) Giá trị số nguyên được gán cho kiểu số nguyên
Trang 32Đáp án: a
Giải thích: Truncate có nghĩa là cắt bớt một số chữ số của một số dấu chấm động hoặc một số nguyên từ phải Chúng ta cũng có thể cắt bớt phần thập phân hoàn toàn, biến nó thành một số nguyên
Câu 66: Đoạn mã Java sau sẽ xuất ra kết quả gì?
Giải thích: Toán tử ++ tăng giá trị của ký tự lên 1 c1 và c2 được gán giá trị D và 84, khi
sử dụng toán tử ++, giá trị của chúng tăng lên 1, c1 và c2 trở thành E và U tương ứng
Câu 67: Đoạn mã Java sau sẽ xuất ra kết quả gì?
class conversion {
public static void main(String args[]) {
Trang 33Câu 68: Đoạn mã Java sau sẽ xuất ra kết quả gì?
Trang 34public static void main(String args[]) {
public static void main(String [] args) {
String [][] argument = new String[2][2];
Trang 35Câu 70: Đoạn mã Java sau sẽ xuất ra kết quả gì?
Trang 36Đáp án: C
Giải thích: Toán tử new cấp phát một khối bộ nhớ có kích thước tương ứng với mảng và trả về tham chiếu đến bộ nhớ đã cấp phát cho biến mảng
Câu 72: Đâu là khai báo mảng không đúng?
A int arr[] = new int[5]
B int [] arr = new int[5]
C int arr[] = new int[5]
D int arr[] = int [5] new
Đáp án: D
Giải thích: Toán tử new phải được theo sau bởi kiểu mảng và kích thước mảng
Câu 73: Kết quả của đoạn mã Java sau là gì?
int arr[] = new int[5];
Câu 74: Đâu là một câu lệnh không đúng?
A Sử dụng toán tử new là bắt buộc để khởi tạo một mảng
B Mảng có thể được khởi tạo bằng cách sử dụng các biểu thức phân cách bởi dấu phẩy
và được bao quanh bởi dấu ngoặc nhọn
C Mảng có thể được khởi tạo khi chúng được khai báo
Trang 37D Không có câu lệnh nào là đúng
Giải thích: Không có yêu cầu cụ thể nào cần được chỉ định trong quá trình khởi tạo mảng
Câu 76: Kết quả của đoạn mã Java sau là gì?
class array_output {
public static void main(String args[]) {
int array_variable [] = new int[10];
for (int i = 0; i < 10; ++i) {
Trang 38public static void main(String args[]) {
int arr[][] = new int[3][];
arr[0] = new int[1];
arr[1] = new int[2];
arr[2] = new int[3];
Trang 39Giải thích: Mảng arr được khai báo là một mảng 2 chiều, với mỗi hàng có số phần tử tăngdần Các giá trị của mảng được cộng vào biến sum, sau đó sum được in ra màn hình.
Câu 78: Kết quả của đoạn mã Java sau là gì?
class evaluate {
public static void main(String args[]) {
int arr[] = new int[] {0 , 1, 2, 3, 4, 5, 6, 7, 8, 9};
public static void main(String args[]) {
char array_variable [] = new char[10];
for (int i = 0; i < 10; ++i) {
array_variable[i] = 'i';
System.out.print(array_variable[i] + "");
Trang 40Giải thích: Mảng được khởi tạo với ký tự 'i', và vòng lặp in ra các giá trị của mảng.
Câu 80: Kết quả của đoạn mã Java sau là gì?
Trang 41Giải thích: Mảng được khởi tạo với các giá trị tăng dần và tổng của các giá trị mảng đượctính và in ra màn hình.
Câu hỏi 81: Loại biến 'b' và 'd' trong đoạn mã Java sau là gì?
int a[], b;
int []c, d;
A 'b' và 'd' đều là kiểu int
B 'b' và 'd' đều là mảng kiểu int
C 'b' là biến int; 'd' là mảng int
D 'd' là biến int; 'b' là mảng int
Đáp án: C
Giải thích: Nếu [] được khai báo sau biến, nó chỉ áp dụng cho một biến duy nhất Nếu [] được khai báo trước biến, nó áp dụng cho tất cả các biến
Câu hỏi 82: Khai báo mảng nào sau đây là không đúng?
A int arr[] = new int[5];
B int [] arr = new int[5];
C
int arr[];
arr = new int[5];
D int arr[] = int [5] new;
Đáp án: D
Giải thích: Toán tử new phải đi sau kiểu mảng và kích thước mảng Thứ tự quyết định kiểu biến
Câu hỏi 83: Đoạn mã Java sau đây sẽ xuất ra kết quả gì?
int arr[] = new int[5];
Trang 42Câu hỏi 84: Đoạn mã Java sau đây sẽ xuất ra kết quả gì?
Object[] names = new String[3];
names[0] = new Integer(0);
A ArrayIndexOutOfBoundsException
B ArrayStoreException
C Lỗi biên dịch (Compilation Error)
D Chương trình chạy thành công (Code runs successfully)
Đáp án: B
Giải thích: ArrayIndexOutOfBoundsException xảy ra khi mã cố gắng truy cập một chỉ mục không hợp lệ cho một mảng ArrayStoreException xảy ra khi bạn lưu trữ một phần
tử có kiểu khác với kiểu của mảng
Câu hỏi 85: Generics không hoạt động với?
A Set
B List
C Tree
D Mảng (Array)
Trang 44Giải thích: Bạn chỉ có thể làm cho biến trỏ đến mảng trở nên volatile Nếu một mảng thayđổi bằng cách thay thế từng phần tử riêng lẻ, thì đặc tính volatile của biến sẽ không được giữ.
Câu hỏi 89: Mảng được lưu trữ ở đâu trong bộ nhớ?
B Ngẫu nhiên (Random)
C Tuần tự và Ngẫu nhiên
D Tìm kiếm nhị phân (Binary search)