Bộ câu hỏi phỏng vấn Java phần 2

Sự khác nhau giữa == và phương thức Equals trong Java?


  • Biến tham trị : gồm các kiểu nguyên thủy int ,long. double
  • Biến tham chiếu gồm : String , array , kiểu đối tượng
  • Sử dụng biến tham trị java chỉ cho phép bạn sử dụng toán tử so sánh ==
  • Sử dụng biến kiểu tham chiếu java cho phép sử dụng cả toán từ ==equals().
  • Khi sử dụng toán tử == bộ xử lý của Java sẽ so sánh xem 2 biến tham chiếu này có trỏ đến cùng một đối tượng hay không , còn nếu bạn sử dụng phương thức equals(), bộ xử lý sẽ so sánh giá trị của 2 biến tham chiếu.

Hiệu suất cao (High Performance) được kích hoạt như thế nào trong Java?


Java sử dụng Just-In-Time compiler để kích hoạt hiệu năng cao. Bộ biên dịch này là một chương trình mà bật Java Bytecode, mà là một chương trình chứa các chỉ thị phải được thông dịch thành các chỉ thị có thể được gửi trực tiếp tới Processor.

Biến local hay biến cục bộ trong java là gì?


Các biến được định nghĩa bên trong phương thức, constructor hoặc các khối được gọi là biến local. Biến này sẽ được khai báo và khởi tạo bên trong phương thức và nó sẽ bị hủy khi phương thức kết thúc.

Sự khác biệt giữa JDK và JRE là gì?


Java Runtime Environment (JRE) về cơ bản là Java Virtual Machine (JVM) nơi các chương trình Java của bạn đang được thực thi. Nó cũng bao gồm các plugin trình duyệt để thực thi applet. Java Development Kit (JDK) là Software Development Kit đầy đủ tính năng cho Java, bao gồm JRE, các trình biên dịch và tools (như JavaDoc và Java Debugger), để người dùng phát triển, biên dịch và thực thi các ứng dụng Java.

Liệt kê một số JDE của Java?


  • Eclipse
  • IntelliJ
  • NetBeans
  • JDeveloper
  • MyEclipse
  • BlueJ
  • Visual Studio Code

Biến instance là gì?


Biến instance là các biến bên trong một lớp nhưng bên ngoài bất cứ phương thức nào. Những biến này được thuyết minh khi lớp được tải.

Servlet là gì?


Servlet là một class ngôn ngữ lập trình Java được sử dụng để xử lý các requests từ client và tạo ra nội dung web động. Servlet chủ yếu được sử dụng để xử lý hoặc lưu trữ dữ liệu được gửi bởi một biểu mẫu HTML, cung cấp nội dung động và quản lý thông tin state không tồn tại trong giao thức stateless HTTP.

Có mấy loại Exceptions trong Java? Sự khác biệt giữa chúng?


Java có hai loại exceptions: unchecked exceptionschecked exceptions.

  • Unchecked exceptions không cần phải được khai báo trong một phương thức hoặc mệnh đề throws của phương thức khởi tạo, nếu chúng có thể được throw bởi việc thực thi phương thức hoặc hàm tạo và lan truyền bên ngoài phương thức hoặc ranh giới của hàm tạo.
  • Mặt khác, Checked exceptions phải được khai báo trong một phương thức hoặc mệnh đề throws của phương thức khởi tạo.

Định nghĩa Lớp (class) trong Java?


Một lớp là một blueprint từ đó các đối tượng đơn được tạo. Một lớp có thể chứa các trường và các phương thức để miêu tả hành vi của một đối tượng.

Mô tả về Contructor trong Java?


Contructor được triệu hồi khi một đối tượng mới được tạo. Mỗi lớp có một Constructor.

Nếu chúng ta không viết một constructor một cách tường minh cho một lớp, thì Java Compiler sẽ xây dựng một Constructor mặc định cho lớp đó.

Giá trị mặc định của kiểu dữ liệu float và double trong Java?


Giá trị mặc định của kiểu dữ liệu float và double trong Java

  • Giá trị mặc định của kiểu dữ liệu float và double là khác với trong C/C++.
  • Mặc định của float là 0.0f và của double là 0.0d.

Lập trình hướng đối tượng là gì?


Lập trình hướng đối tượng là 1 kỹ thuật lập trình, cho phép lập trình viên trừu tượng hóa các đối tượng thực tế thành các đối tượng trong code...

Một đối tượng bao gồm 2 thông tin: thuộc tính và phương thức.

  • Thuộc tính chính là những thông tin, đặc điểm của đối tượng. Ví dụ: con người có các đặc tính như mắt, mũi, tay, chân…
  • Phương thức là những thao tác, hành động mà đối tượng đó có thể thực hiện. Ví dụ: một người sẽ có thể thực hiện hành động nói, đi, ăn, uống, . . .

Decalarations là gì?


Decalarations tương tự như khai báo biến trong Java. Declarations được sử dụng để khai báo các biến để sử dụng tiếp theo trong các biểu thức hoặc tập lệnh. Để thêm một declaration, bạn phải sử dụng các trình tự để bao quanh các declarations của bạn.

Điều gì sẽ xảy ra với đối tượng Exception sau khi xử lý exception?


Đối tượng Exception sẽ được thu gom rác trong lần thu gom rác tiếp theo.

Trình bày kiến trúc của Servlet?


Phần trừu tượng cốt lõi phải được thực hiện bởi tất cả các servlet là javax.servlet.Servlet interface.

Mỗi servlet phải triển khai nó trực tiếp hoặc gián tiếp, bằng cách extend javax.servlet.GenericServlet hoặc javax.servlet.http.HTTPServlet.

Cuối cùng, mỗi servlet có thể phục vụ nhiều request song song bằng cách sử dụng đa luồng.

Bạn biết gì về ký hiệu big-O (big-O notation) và bạn có thể cho biết một số ví dụ liên quan đến các cấu trúc dữ liệu khác nhau?


  • Ký hiệu Big-O chỉ đơn giản mô tả một thuật toán mở rộng quy mô hoặc hoạt động tốt như thế nào trong trường hợp xấu nhất khi số lượng phần tử trong cấu trúc dữ liệu tăng lên.
  • Ký hiệu Big-O cũng có thể được sử dụng để mô tả các hành vi khác như tiêu thụ bộ nhớ. Vì các lớp collection thực sự là cấu trúc dữ liệu, cho nên chúng tôi thường sử dụng ký hiệu Big-O để chọn cách triển khai tốt nhất để sử dụng, dựa trên thời gian, bộ nhớ và hiệu suất.
  • Ký hiệu Big-O có thể cung cấp một dấu hiệu tốt về hiệu suất cho một lượng dữ liệu lớn.

Khi nào thì một Object đủ điều kiện để thu gom rác trong Java?


Một Object Java có thể bị thu gom rác khi nó không thể truy cập được vào chương trình mà nó hiện đang được sử dụng.

Giải thích Serialization và Deserialization?


Java cung cấp một cơ chế, được gọi là object serialization (tuần tự hóa đối tượng) trong đó một object có thể được biểu diễn dưới dạng một chuỗi các byte và bao gồm dữ liệu của object, cũng như thông tin về loại object và các loại dữ liệu được lưu trữ trong đối tượng. Vì vậy, serialization có thể được coi là một cách làm phẳng các đối tượng, để được lưu trữ trên đĩa và sau đó, đọc lại và hoàn nguyên.

Deserialisation là quá trình ngược lại chuyển đổi một object từ trạng thái phẳng thành một object ban đầu.

Sự khác biệt giữa HashMap và Hashtable là gì?


Có một số khác biệt giữa HashMap và Hashtable trong Java:

  • Hashtable được đồng bộ hóa, trong khi HashMap thì không. Điều này làm cho HashMap tốt hơn cho các ứng dụng không phân luồng, vì các đối tượng không được đồng bộ hóa thường hoạt động tốt hơn các đối tượng được đồng bộ hóa.
  • Hashtable không cho phép các key hoặc value là null. HashMap cho phép một key null và value null tùy ý.
  • Một trong các lớp con của HashMap là LinkedHashMap, vì vậy trong trường hợp bạn muốn thứ tự lặp lại có thể dự đoán được (theo mặc định là thứ tự insert), bạn có thể dễ dàng hoán đổi HashMap cho một LinkedHashMap. Điều này sẽ không dễ dàng nếu bạn đang sử dụng Hashtable.

JDBC là gì?


Có một số khác biệt giữa HashMap và Hashtable trong Java:

  • JDBC là một layer trừu tượng cho phép người dùng lựa chọn giữa các cơ sở dữ liệu.
  • JDBC cho phép các nhà phát triển viết các ứng dụng cơ sở dữ liệu bằng Java mà không cần phải quan tâm đến các chi tiết cơ bản của một cơ sở dữ liệu cụ thể.

HashMap hoạt động như thế nào trong Java?


  • HashMap trong Java lưu trữ các cặp key-value.
  • HashMap yêu cầu một hàm hash và sử dụng hashCode và các phương thức equals, để put và truy xuất các phần tử đến và từ collection tương ứng.
  • Khi phương thức put được gọi, HashMap sẽ tính toán giá trị hash của key và lưu trữ cặp trong chỉ mục thích hợp bên trong collection. Nếu key tồn tại, value của nó được cập nhật với giá trị mới.
  • Một số đặc điểm quan trọng của HashMap là dung lượng (capacity), hệ số tải (load factor) và ngưỡng thay đổi kích thước (threshold resizing).
Avatar Techmely Team
VIẾT BỞI

Techmely Team