Câu 1: Chọn câu giới thiệu đúng (chọn 2 đáp án)
A. Khi gọi System.console() sẽ tạo ra 1 object console mới
B. Console object được thiết kế theo singleton partten
C. Console object được dùng để đọc dữ liệu từ người dùng nhưng ko thể xuất dữ liệu ra thiết bị
D. System.console() ko bao giờ trả về null
E. System.console() có thể trả về null
Câu 2: Điền code vào chỗ trống để chương trình compile success
1 2 3 4 5 6 7 8 9 10 |
import java.io.*; class Test { public static void main(String[] args){ Console console = System.console(); 「①」 「②」 str = console.readLine(); pw = console.readPassword(); } } |
A. String str = null
String pw = null
B. char[] str = null
char[] pw = null
C. char[] str = null
String pw = null
D. String str = null
char pw = null
Câu 3: Câu nào sau đây là đúng khi nói về đoạn code sau (chọn 1 đáp án)
1 2 3 4 5 |
Console console = System.console(); PrintWriter w = console.writer(); String str = console.readLine(); if (str != null) pw.append(str); pw.flush(); |
A. compile error
B. Xảy ra IOException
C. xảy ra ArrayIndexOutOfBoundsException
D. compile success nhưng khi chạy thì ko hiện ra gì
E. Hiển thị những gì người dùng nhập vào
Câu 4: Câu nào đúng khi nói về đoạn code dưới đây (chọn 2 đáp án)
1 2 3 4 5 6 7 8 |
static void foo(File file) { if(!file.isFile()){ File[] files = file.listFiles(); for(int i = 0; i < files.length; i++){ foo(files[i]); } } } |
A. Code trên sẽ xóa tất cả các directory có chứa file
B. Code trên chỉ xóa directory
C. Code trên chỉ xóa các file
D. Dòng thứ 9 compile error
E. Dòng thứ 10 compile error
F. Khi chạy code trên sẽ có trường hợp tạo ra runtime exception
Câu 5: Class java.io.File có các method nào (chọn 3 đáp án)
A. mkdir
B. copy
C. renameTo
D. move
E. mkdirs
F. createDirectory
G. mv
Câu 6: Câu nào sau đây đúng (chọn 2 đáp án)
A. Hằng số in trong class System có kiểu InputStream
B. Hằng số in trong class System có kiểu FileReader
C. Hằng số out trong class System có kiểu OutputStream
D. Hằng số out trong class System có kiểu PrintStream
E. Hằng số err trong class System có kiểu OutputStream
F. Hằng số err trong class System có kiểu ErrorStream
Câu 7: package java.io ko có class nào (chọn 1 đáp án)
A. printWriter
B. PrintReader
C. FileWriter
D. FileReader
E. BuffferedWriter
F. BufferedReader
Câu 8: Trong file memo.txt có 10 dòng. Compile và chạy chương trình sau kết quả là gì (chọn 1 đáp án)
1 2 3 4 5 |
static void bar() throws IOException{ try(BufferedReader br = new BufferedReader(new FileReader("memo.txt"))){ System.out.println(br.readLine()); } } |
A. Chỉ hiện thị dòng đàu tiên trong file memo.txt
B. Hiển thị tất cả các dòng trong file memo.txt
C. Vì chưa gọi method close của BufferedReader nên compile error
D. Vì chưa gọi method close của BufferedReader nên runtime error
E. compile erro bởi 1 lý do khác (ko phải lí do của đáp án C)
Câu 9: Câu nào sau đây đúng (chọn 2 đáp án)
A. Nếu 2 class kế thừa nhau thì khi implements interface Serializable ở lớp cha hay lớp con cũng như nhau
B. class dc khai báo final sẽ ko thể implements interface Serializable
C. Nếu đã implements interface khác thì ko thể implements interface Serializable
D. Những biến static sẽ ko được serializable
E. class abstract có thể implements Serializable
F. Interface Serializable được cung cấp trong package java.lang
Câu 10: Sau khi serializable và deserializable class Foo dưới đây thì biến nào sẽ là null (chọn 2 đáp án)
1 2 3 4 5 6 7 8 9 10 |
public class Foo implements Serializable{ private static final long serialUID = 1L; private transient String val1 = "abc"; private staticString val2 = "xyz"; private transient Integer val3 = null; private List<String> val4 = new ArrayList<>(); private Object val5 = null; {val3 = 100; } public Foo() { this.val1 = "other";} } |
A. val1
B. val2
C. val3
D. val4
E. val5
- System.console object có thể trả về null (Nếu ko thể sử dụng console hoặc device). Đây là object dc thiết kế theo pattern singleton
- console.readPassword() được lưu vào chuỗi kí tự char[]
- Function obj.isFile() kiểm tra xem có phải là file ko. Nếu obj ko phải là file (là folder hoặc là link ko tồn tại) sẽ trả về false
- Java.io.File cung cấp các method mkdir, mkdirs, renameTo…
- System.in là inputStream System.out và System.err là printStream
- java.io có printWriter nhưng ko có printReader
- Serializable:
- Trong mảng hay colection cũng phải serializeable
- Các lớp con đều tự động được serialize
- Các đối tượng khác trong lớp serialize đều phải serializable
- static và transient ko được serialize
- Lớp con có seralize thì khi lớp cha デシリアライズ sẽ tạo instance?? (Lớp cha và lớp con cùng implements serializabale sẽ có cách hoạt động khác so với chỉ có lớp cha implements)
- console có phương thức printf và format ko có out, println, print. Có thể lấy writer() là printWriter object. Trong printWriter object lại có phương thức println
- BufferedInputStream có phương thức mark nhưng FileInputStream thì không có. Khi reset sẽ bị lỗi nếu ko có mark
- java.io.File chỉ xử lý file chứ ko đọc ghi dữ liệu file
- java.io đươc thiết kế theo parrtten Decorator để mở rộng phương thức
- phương thức resolveSibling tạo ra 1 file hay folder ngang hàng với đối số(Cùng folder cha với đối số)
Đáp án:
- B E
- D
- E
- C F
- A C E
- A D
- B
- A
- D E
- A C