JavaRush /Blog Java /Random-VI /Nghỉ giải lao #101. 19 câu hỏi phỏng vấn Java cần thiết v...

Nghỉ giải lao #101. 19 câu hỏi phỏng vấn Java cần thiết và câu trả lời mẫu ngắn

Xuất bản trong nhóm
Nguồn: Hackernoon Dưới đây là một số câu hỏi và câu trả lời thường xuất hiện trong các cuộc phỏng vấn về Java.

1. Bộ công cụ phát triển Java (JDK) là gì?

JDK là bộ công cụ phát triển phần mềm bao gồm các công cụ và thư viện cần thiết để phát triển các ứng dụng Java.

2. Môi trường chạy thi hành Java (JRE) làm gì?

JRE đề cập đến Môi trường thời gian chạy trong đó mã byte Java chạy. JRE duy trì các tệp và thư viện trong thời gian chạy.

3. Máy ảo Java (JVM) làm công việc gì?

JVM là một máy trừu tượng cung cấp môi trường thời gian chạy trong đó mã byte Java có thể thực thi.

4. Java độc lập với nền tảng. Tại sao?

Trong bất kỳ ngôn ngữ lập trình nào khác, mã nguồn được biên dịch thành mã thực thi và mã có thể không chạy trên tất cả các nền tảng. Bằng cách sử dụng JVM, chúng tôi có thể làm cho mã byte dễ hiểu đối với mọi nền tảng và mã byte này độc lập với nền tảng. Mặc dù JVM khác nhau đối với mỗi nền tảng, Java độc lập với nền tảng vì nó không phụ thuộc vào bất kỳ loại nền tảng nào.

5. Java không hướng đối tượng 100%. Tại sao?

Bởi vì Java sử dụng tám kiểu dữ liệu nguyên thủy như boolean, byte, char, int, float, double, long, short không phải là đối tượng.

6. Hàm tạo trong Java là gì?

Hàm tạo là một khối mã được sử dụng để khởi tạo các đối tượng. Cú pháp:
class DemoClass
{
   // constructor name is same as class name
   DemoClass()
   {
      ....
   }
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
Ví dụ:
public class ConstructorDemo
{
   int a; // class attribute
   // create constructor for class ConstructorDemo
   ConstructorDemo()
   {
      a = 26; // initial value for class attribute 'a'
   }
   public static void main(String[] args)
   {
      // creating object for ConstructorDemo class
      // here we're calling constructor ConstructorDemo()
      ConstructorDemo obj = new ConstructorDemo();
      System.out.println(obj.a);
   }
}
Kết quả:
26

7. Lớp học đơn lẻ làm gì?

Các lớp Singleton chỉ có thể có một đối tượng (thể hiện của lớp) tại một thời điểm. Sau khi đối tượng được tạo và chúng ta cố gắng khởi tạo lớp singleton , biến mới cũng trỏ đến đối tượng đầu tiên được tạo.

8. Lớp trình bao bọc trong Java là gì?

Các lớp trình bao bọc cho phép các kiểu dữ liệu nguyên thủy được chuyển đổi thành một đối tượng và ngược lại. Ví dụ:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class

9. Sự khác biệt giữa toán tử == và phương thức đẳng thức trong Java là gì?

Nói chung, == là một toán tử và bằng() là một phương thức. Chúng tôi sử dụng toán tử == để tham chiếu các đối tượng so sánh trên heap. Không có khái niệm nạp chồng toán tử trong Java. Mặc dù vậy, toán tử == được sử dụng để kiểm tra xem địa chỉ của hai đối tượng có giống nhau hay không. Nghĩa là, toán tử == kiểm tra xem cả hai đối tượng có trỏ đến cùng một vị trí bộ nhớ hay không. Toán tử == cũng được sử dụng để so sánh các kiểu đối tượng và kiểu nguyên thủy như boolean. Trong khi phương thức Equals() của lớp String so sánh nội dung của hai đối tượng.

10. Các khái niệm về OOP trong Java là gì?

  • Tính trừu tượng được định nghĩa là ẩn việc triển khai nội bộ và chỉ hiển thị thông tin cần thiết.
  • Kế thừa là thủ tục chuyển đổi tất cả các thuộc tính và hành vi của lớp cha (lớp cha) thành lớp con (lớp con).
  • Đóng gói là thủ tục liên kết dữ liệu hoặc các biến và phương thức với nhau.
  • Đa hình theo nghĩa đen có nghĩa là nhiều hình thức. Đa hình là khả năng của một phương pháp để thực hiện các nhiệm vụ khác nhau. Điều này có thể đạt được bằng cách sử dụng các phương pháp.

11. Tại sao phương thức main() luôn tĩnh trong Java?

Bởi vì không cần phải gọi phương thức tĩnh trên một đối tượng. Nếu main() là một phương thức không tĩnh, trước tiên Máy ảo Java phải tạo đối tượng của nó rồi gọi phương thức main() , điều này sẽ khiến bộ nhớ bổ sung được phân bổ.

12. Tại sao chuỗi không thể thay đổi trong Java?

Các chuỗi trong Java là bất biến vì các đối tượng Chuỗi được lưu trữ trong nhóm hằng số chuỗi .

13. Mảng và ArrayList trong Java là gì?

Mảng là một đối tượng chứa một số phần tử cố định có cùng kiểu.
  1. ArrayList là một phần của cấu trúc bộ sưu tập.

  2. ArrayList thực hiện giao diện danh sách.

  3. Mảng ArrayList là một mảng có thể mở rộng, tăng trưởng linh hoạt khi các phần tử được thêm vào và thu nhỏ lại khi các phần tử bị xóa.

  4. Đối với hoạt động truy xuất thường xuyên, Java ArrayList là lựa chọn tốt nhất . Bởi vì các phần tử của ArrayList được lưu trữ ở các vị trí bộ nhớ liên tiếp.

  5. ArrayList không thể chứa các kiểu dữ liệu nguyên thủy như int, double, char và long.

  6. ArrayList có thể chứa các đối tượng lớp String và trình bao bọc ( Double , Integer ).

  7. ArrayList cho phép bạn sao chép các phần tử.

  8. ArrayList giữ nguyên thứ tự chèn.

  9. ArrayList được sử dụng rộng rãi do chức năng và tính linh hoạt của nó. Nó được thiết kế để lưu trữ các bộ sưu tập đối tượng không đồng nhất.

  10. Một ArrayList có thể có bất kỳ số lượng giá trị null nào.

14. Sự khác biệt giữa HashSet và HashMap trong Java là gì?

Trong Hashset :
  1. Chúng ta có thể lưu trữ các đối tượng trong HashSet . Ví dụ: HashSet: {"Xin chào", "Thế giới"} .

  2. Thứ tự chèn không được giữ nguyên. Nó dựa trên mã băm.

  3. Có phương thức add() .

  4. Triển khai giao diện Set .

  5. Không cho phép các phần tử trùng lặp.

  6. Cho phép một giá trị null duy nhất.

Trong HashMap :
  1. Trong HashMap chúng ta có thể lưu trữ các cặp khóa và giá trị. Ví dụ: {1 -> “Xin chào”, 2 -> “Thế giới”} .

  2. Không hỗ trợ thứ tự chèn. Nó dựa trên hàm băm.

  3. Có phương thức put() .

  4. Triển khai giao diện bản đồ.

  5. Cho phép các giá trị trùng lặp. Không cho phép trùng lặp khóa.

  6. Cho phép một khóa null duy nhất và bất kỳ số lượng giá trị null nào.

16. Sự khác biệt giữa this và super trong Java là gì?

Từ khóa this trong Java:
  1. đây là từ khóa là biến tham chiếu đề cập đến đối tượng hiện tại.

  2. Có thể được sử dụng để gọi ngầm phương thức lớp hiện tại.

  3. Từ khóa this() , được sử dụng để gọi hàm tạo của lớp hiện tại.

  4. Điều này có thể được sử dụng để chuyển làm đối số khi gọi một phương thức.

Từ khóa siêu trong Java:
  1. Từ khóa super là một biến tham chiếu được sử dụng để chỉ đối tượng trực tiếp của lớp cha.

  2. super có thể được sử dụng để gọi trực tiếp một phương thức của lớp cha, hàm tạo của lớp cha và để truy cập các phương thức của lớp cơ sở.

17. Câu lệnh break và continue trong Java là gì?

Nếu câu lệnh break xảy ra trong một vòng lặp, vòng lặp sẽ kết thúc và quyền điều khiển sẽ chuyển sang câu lệnh tiếp theo trong cùng vòng lặp. Ví dụ:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a == 3)
         {
            // breaking loop
            break;
         }
         System.out.println(a);
      }
   }
}
Kết quả:
12
Câu lệnh continue chuyển sang lần lặp tiếp theo của vòng lặp tùy thuộc vào một điều kiện nhất định. Ví dụ:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a % 2 != 0)
         {
            continue;
         }
         System.out.println(a + " ");
      }
   }
}
Kết quả:
2 4 6 8 10

18. Công cụ sửa đổi truy cập trong Java là gì?

Công cụ sửa đổi quyền truy cập xác định giới hạn hoặc phạm vi của biến, hàm tạo, lớp hoặc phương thức. Có bốn loại công cụ sửa đổi truy cập trong Java:
  1. Công cụ sửa đổi quyền truy cập riêng tư.
  2. Công cụ sửa đổi truy cập được bảo vệ.
  3. Công cụ sửa đổi chia sẻ.
  4. Công cụ sửa đổi truy cập mặc định.

19. Sự khác biệt giữa vòng lặp for và vòng lặp for trong Java là gì?

vòng lặp for :
  1. Không có trình tự thực thi. Trong vòng lặp for, chúng ta có thể thay đổi bộ đếm theo ý muốn.
  2. Xuất hiện ngay từ đầu, trong JDK 1.
  3. Không cần phải thực hiện giao diện.
  4. Có thể có quyền truy cập vào chỉ mục. Vì vậy, có thể thay thế một phần tử trong mảng.
  5. Bộ đếm có thể tăng và giảm.
Đối với mỗi vòng lặp :
  1. Thực hiện tuần tự. Bộ đếm tăng thêm một.
  2. Lần đầu tiên xuất hiện trong JDK 5.
  3. Để lặp lại các vùng chứa bằng vòng lặp for-each, vùng chứa phải triển khai giao diện Iterable.
  4. Không thể thay thế phần tử tại chỉ mục này vì không thể truy cập chỉ mục mảng.
  5. Chỉ có thể lặp theo thứ tự tăng dần, không thể giảm.
Ví dụ về sự khác biệt giữa vòng lặp for eachfor :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
   public static void main(String[] args)
   {
      List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
      // iterate over List using for loop
      System.out.println("using for loop: ");
      for(int a = 0; a < players.size(); a++)
      {
         System.out.println(players.get(a));
      }
      // iterate over List using enhanced for loop
      System.out.println("using for each loop: ");
      for(String str : players)
      {
         System.out.println(str);
      }
   }
}
Kết quả cho và cho mỗi vòng lặp:
Virat Rohit Dhoni.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION