Câu hỏi phỏng vấn Java Core (Phần 5)

Câu hỏi phỏng vấn Java Core (Phần 5)
1. Kể các collection biết. Phân biệt list và linklist. Add dãy 10 số từ 0 -10 thì nên dùng cái nào?
- Collection, Set, List, Map, ArrayList, Vector, Hashtable, Hashset, HashMap
*Phân biệt list và linkedlist, array, arrraylist:

Array
- Ưu điểm:
+ Dễ cài đặt & truy cập đến các phần tử dữ liêu.
+ Tốc độ truy cập đến 1 vị trí bất kỳ trên mảng nhanh & hiệu quả.

- Nhược điểm:
+ Cần phải xác định số phần tử mảng trước khi sử dụng(kể cả mạng động)-> ko phù hợp với bài toán chưa biết số lượng các phần tử.
+ Khó khăn trong khi chèn or xoá một phần tử bất kỳ. Nếu việc chèn & xoá diễn ra nhiều -> xử lý chậm.

Linkedlist
- Ưu điểm:
+ Do DSLK dùng tới đâu cấp phát tới đó -> phù hợp với bài toán chưa xđ số phần tử cho trước.
+ Dễ dàng trong việc xoá, chèn các phần tử trong DS(thay đổi lại địa chỉ, quan hệ của phần tử).

- Nhược điểm:
+ Khó cài đặt và truy cập đến phần tử trong danh sách.
+ Tốc độ truy cập đến phần tử trong DS chậm( người ta thường dùng cây quyết định để phục vụ cho việc tìm kiếm)

ArrayList:
- truy cập trực tiếp các phần tử qua set và get methods
- có thể thêm, tìm kiếm đối tượng dể dàng hơn array

2. Phân biệt Vector và ArrayList?
Vector có cơ chế đồng bộ hóa còn ArrayList thì khôngà ArrayList nhanh hơn vector

3. Arraylist hơn array như thế nào?
Năng động, cung cấp cơ chế chèn và tìm kiếm mạnh mẽ hơn array

4. an Iterator là gì?
Về cơ bản,bộ duyệt Iterator giúp ta duyệt các phần tử trong 1 cái danh sách, ví dụ mình có cái danh sách các tên:
- khi khởi tạo Iterator, sẽ có 1 con trỏ được khởi tạo
- hàm hasNext để kiểm tra xem mình còn duyệt được tiếp nữa không
- hàm next trả ra phần tử kế tiếp của bộ duyệt

Mình hoàn toàn có thể làm một class duyệt theo ý mình, ví dụ như thêm vào đó 2 biến là vị trí bắt đầu và chiều duyệt thì hoàn toàn có thể làm được duyệt nhiều kiểu

5. Các câu hỏi khác

+ Subclass: class kế thừa tất cá các thuộc tính public và phương thức protected
+ Break, continute:
      Break: cham dứt hẳn
      Continute: chấm dứt câu lệnh và quay trở lại vòng lặp

Q: Can you call one constructor from another if a class has multiple constructors?
A: Yes, use this() syntax.

Q: What is the default value of an object reference declared as an instance variable?
A: Null, unless it is defined explicitly.

Q: Is it necessary that each try block must be followed by a catch block?
A: It is not necessary that each try block must be followed by a catch block. It should be followed by either a catch block or a finally block.

Q: a private constructor?
A: ngăn chặn subclass và ko muốn lớp khác khởi tạo đối tượng

Q: What is difference between Path and Classpath?
A: Path and Classpath are operating system level environment variales. Path is defines where the system can find the executables(.exe) files and classpath is used to specify the location of .class files.

Q: Can an Interface extend another Interface?
A: Yes an Interface can inherit another Interface, for that matter an Interface can extend more than one Interface

Q: Em hay sử dụng những loại Collections nào và một chút đặc điểm:
A: Có 4 loại là Lists (lưu một danh sách các đối tượng), Sets (một danh sách các đối tượng không trùng nhau), Maps (một danh sách các đối tượng có ID), Queues (một danh sách các đối tượng được xắp sếp theo thứ tự). Mỗi loại này có nhiều lớp con.
 Dùng gì để truy cập CSDL và thiết kế như thế nào: JDBC, Hibernate… sau đó sử dụng DAO pattern (CRUD: creat, read, insert, update, delete)
- Mô hình n-tier: view, bussiness logic, data
- Một vài loại pattern thông dụng: singleton, factory, proxy, adapter, observer …
- Một vài loại frameworks: Struts: MVC+ Front Controller pattern. Hibernate: object relational mapping.

Q: các tính chất của OOP
A: có 4 tính chất là: Tính trừu tượng, tính đa hình, tính thừa kế và tính đóng gói

Q: sự khác nhau giữa JSP và Servlet
A: JSP khi biên dịch thì sẽ convert sang code java, Servlet là thuần code java nên servlet sẽ nhanh hơn. Hơn nữa trong mô hình MVC thì servlet sẽ đóng vai trò controller và trả về một view JSP. Trên serlvet mà trả về code HMTL thì sẽ rất là nhàm chán nhưng JSP thì sẽ dễ hơn nhiều

Q: Khác nhau giữa equals và == trong java
A: equals là để so sánh giá trị giữa 2 object còn == là để so sánh reference của 2 object

Q: sư khác nhau khi anh lấy 1 phần từ từ 1 list ra và lấy phần tử tứ set ra như thế nào
A: lấy phần tử từ một list ra sẽ trả về 1 reference của object trong list đó, còn set thì sẽ nhận được giá trị clone (copy) của nó

A: có 2 loại là Runtime Exception (unchecked) là những ngoại lệ xảy ra trong lúc thực thi và checked exception là những ngoại lệ xảy ra trong lúc biên dịch

6. Kể các kinh nghiệm về Java

7. Jad là gì? build file ở đâu?

8. HashMap and Map?

9. Phân biệt HashMap và HashTable

10. Phân biệt a constructor và a method?

No comments:

Post a Comment