Chương 1: Thiết kế lớp

Câu 1: Compile và chạy chương trình dưới đây. Kết quả là? (chọn 1 đáp án)

A. 0
B. 1
C. X
D.Compile error
Câu 2: Compile và chạy chương trình dưới đây kết quả là? (chọn 1 đáp án)

A. z
B. z other
C. other
D. Compile error
E. runtime error
Câu 3:  Compile và chạy chương trình dưới đây kết quả là? (chọn 1 đáp án)

A. 20 20
B. Y 20
C. Dòng số 2 và số 4 Compile error
D. Dòng số 5 Compile error
E. Dòng số 9 Compile error
Câu 4: Chọn 2 câu giới thiệu đúng dưới đây
A. design pattern cung cấp cách giải quyết tất cả vấn đề phát sinh
B. design pattern sử dụng nguyên lý kế thừa và đa hình để giải quyết những vấn đề riêng biệt trong toàn bộ ứng dụng
C. design pattern và nguyên tắc thiết kế có chức năng giống nhau
D. Việc sử dụng nguyên tắc thiết kế và design pattern giúp cho code dễ đọc dễ bảo trì hơn
E. design pattern chỉ có thể ứng dụng cho các class static
Câu 5: Hãy sửa class dưới đây để ứng dụng đúng singleton pattern (chọn 2 đáp án)

A. thêm khai báo final vào class ở dòng 1
B. Biến obj ở dòng 2 đổi public thành private
C. Xóa static ở dòng 2 và 4
D. tên method ở dòng 4 đổi từ getFoo() thành getInstance()
E. thêm synchronized vào method getFoo() ở dòng 4
Câu 6: Chọn các trường hợp đúng khi khi sử dụng singleton pattern(chọn 3 đáp án)
A. Nếu muốn tạo 1 object chuyên dùng để đọc lấy
B. Nếu muốn cung cấp object cache có khả năng tái sử dụng
C. Nếu muốn tạo instance mỗi lần gọi
D. Nếu muốn tạo classs dùng để ghi 1 file log
E. Nếu muốn tạo class để access vào file setting của toàn ứng dụng
F. Nếu muốn quản lý nhiều object static trong bộ nhớ
Câu 7: Compile và chạy chương trình sau kết quả là? (chọn 1 đáp án)

A. Phương thức hashCode()  có vấn để Compile error
B. Phương thức equals có vấn để Compile error
C. Runtime error
D. equals
E. not equals
Câu 8: Compile và chạy chương trình sau. Kết quả là? (chọn 1 đáp án)

A. compile error
B. str1 == str2
C. str1.equals(str2)
D. str1 == str2
str1.equals(str2)
E. Không hiện ra gì
Câu 9: Đoạn code sau mô tả ở 1 thành phố có các câu lạc bộ bóng đá của học sinh và câu lạc bộ bóng đá của các đoàn thể khác. Câu nào sau đây là đúng ( chọn 1 đáp án)

A. compile success nhưng method equals chưa hợp lý
B. compile success nhưng method hashCode chưa hợp lý
C. compile success cả method equals và hashCode đều hợp lý
D. compile error
Câu 10: Câu nào giới thiệu đúng về method equals của class Object(chọn 2 đáp án)
A. đối số của method equals là null thì sẽ xảy ra run time error
B. đối số của method equals là null thì sẽ trả về false
C. đối số của method equals là null thì sẽ trả về true
D. đối số của method equals là 1 object có kiểu khác thì sẽ xảy ra run time error
E. đối số của method equals là 1 object có kiểu khác thì sẽ trả về false
F. đối số của method equals là 1 object có kiểu khác thì sẽ trả về true
Câu 11: Câu nào sau đây giới thiệu đúng về class của object immutable (chọn 3 đáp án)
A. ko được định nghĩa method getter
B. ko được định nghĩa method setter
C. thêm final và private vào các thuộc tính
D. thêm static vào các thuộc tính
E. ko cho phép ovveride method
F. thêm synchronized vào method
※Đáp án ở cuối bài viết

Note của đề thi java gold:

  • Java có thể khai báo các số thuộc hệ cơ số 2, 8,10, 16.
    • Hệ cơ số 2: int val = 0b0010
    • Hệ cơ số 8: int val = 0235
    • Hệ cơ số 10: int val = 24
    • Hệ cơ số 16: int val = 0x1a
  • Sử dụng under score(dấu gạch dưới) trong khai báo
    • float x1 = 3_.1415F;                    NG(Compile error)
    • float x2 = 3._1315F;                    NG(Compile error)
    • long x3 = 999_99_9999_L;     NG(Compile error)
    • int x4 = _52;                                NG(Compile error)
    • int x5 = 5_2;                                OK
    • int x6 = 53_;                                NG(Compile error)
    • int x7 = 5______2;                   OK
    • int x8 = 0_x52                            NG(Compile error)
    • int x9 = 0x_52                            NG(Compile error)
    • int x10 = 0x5_2;                         OK
    • int x11 = 0_52                             OK
  • Tính đóng gói: các method được khai báo public còn các thuộc tính thì khai báo private
  • Access modifier
    • public: Có thể truy cập ở bất cứ class nào
    • protected: Có thể truy cập ở class con hoặc class cùng 1 package
    • Không chỉ định: Chỉ truy cập dc từ các class trong cùng 1 package
    • private: Chỉ truy cập được từ chính class chứa nó
  • Import static
    • import static package_name.class_name.static_variable
    • import static package_name.class_name.static_method
    • import static package_name.class_name.*
  • Trong java kết quả của biểu thức sẽ được so sánh với các case theo thứ tự từ trên xuống. Các kiểu dữ liệu có thể dùng trong switch là byte, short, char, string, int, enum.
  • Tất cả các chương trình java đều được tự động import lớp java.lang
  • Các câu lệnh catch exception mà chắc chắn không bao giờ được chạy khi Compile sẽ bị báo lỗi

Ví dụ:

  • Khi import com.sample.* thì chỉ import những class trong sample chứ ko import thư mục bên trong sample
  • Ép kiểu số theo thứ tự double -> float -> long -> int -> short (char) -> byte
  • Ép kiểu số sang string phải dùng function của class string
  • Chuẩn ISO_DATE: 2018-06-27 + 1:00
  • LocalDate ko chứa time khi tạo phải chú ý format
  • Class ko được khai báo protected và private (ngoại trừ nested class và inner class)
  • Immutable là các class ko thể chỉnh sửa được.
    • Ko được có setter
    • Sử dụng final cho class để ko cho phép kế thừa
    • Các thuộc tính  đều private và final
    • Không khai báo những method có thể thay đổi trạng thái object
  •  JavaBeans là class chuẩn có getter setter, biến instance là private
  • Class muốn có chung xử lý ở các hàm construct thì dùng static block (chỉ chạy với lần khởi tạo đầu tiên)

Ví dụ:

  • Composition – tạm dịch là tổng hợp – là một kỹ thuật design. Để thực hiện kỹ thuật Composition, ta cần sử dụng các object ở một class khác làm thuộc tính cho object được tạo bởi class tổng hợp. Composition có tính tái sử dụng cao hơn và dùng cho quan hệ has a
  • Từ khóa strictfp là một non-access modifier giúp bảo đảm rằng kết quả tính toán trên các số thực sẽ có kết quả như nhau (phần sau dấu thập phân) trên các nền tảng khác nhau.
  • Khi một class hoặc interface được khai báo với strictfp modifier, thì tất cả các phương thức khai báo bên trong class/interface đó đều được áp dụng strictfp.
  • strictfp không thể sử dụng với abstract method (method trừu tượng) nhưng có thể sử dụng với abstract class/interface.
  • strictfp không thể sử dụng với bất kỳ method nào bên trong interface.

Đáp Án:

  1. A
  2. D
  3. C
  4. B, D
  5. B, E
  6. B, D, E
  7. D
  8. C
  9. B
  10. B, E
  11. B, C, E

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *