100 câu hỏi phỏng vấn java cốt lõi hàng đầu dành cho người có kinh nghiệm năm 2022

Theo khảo sát thì cho thấy tại Việt Nam, lập trình Java luôn là một trong những kỹ năng được các công ty săn đón và trả lương cao nhất, có thể lên tới 3000$ cho vị trí Senior Java Developer!

Show

Cơ hội việc làm cho lập trình viên Java hết sức phong phú với hàng trăm vị trí tuyển dụng thường xuyên

Ngoài ra, ngôn ngữ lập trình Java còn hấp dẫn bới các lý do sau:

  •  Miễn phí

Trong ngành phát triển phần mềm, chi phí là vấn đề quan trọng cần cân nhấc khi chọn lựa công nghệ. Chings vì vậy, Java miễn phí ngay từ đầu giúp nó càng được tổ chức và lập trình viên ưu ái.

  • Bộ sưu tập thư viên mã nguồn mở phong phú

Apache, google và những tổ chức lớn khác đã đóng góp rất nhiều vào các thư viện mã nguồn mở, giúp Java phát triển nhanh và dễ dàng hơn, đồng thời tiết kiệm chi phí hơn.

Trước khi lập trình một chức năng, bạn nên thử Google đã, vì có khả năng là nó đã được một ai đó viết code, test sẵn.

Và cũng nhờ bộ sưu tập thư viện mã nguồn mở đồ sộ mà Java phủ sóng khắp mọi nơi.

  • Hỗ trợ tài liệu với Javadoc

Javadoc là công cụ do Sun Microsystems phát triển, dùng để tạo APT document với định dạng HTML từ Java source code. Định dạng HTML giúp việc hyperlink các tài liệu liên quan với nhau dễ dàng hơn.

Bên cạnh đó, Javadoc cũng cung cấp một API để tạo docltets và taglets, giúp người dùng phân tích cấu trúc của một ứng dụng java

  • Cộng đồng người dùng mạnh, năng động và gắn kết

Cộng đồng người dùng mạnh về số lượng và chất lượng là yếu tố then chốt làm nên thành công của một ngôn ngữ.

Java rất may mắn có được một cộng đồng đông đảo với vô số website, diễn đàn, tổ chức mã nguồn mở, hội nhóm, chuyên gia…luôn chia sẻ, tương trợ lẫn nhau.

Để học ngôn ngữ lập trình Java, bạn nên có các kiến thức cơ bản về lập trình, ngôn ngữ C và lập trình hướng đối tượng trước đã. Sau đó, bạn có thể bắt đầu tìm hiểu sâu hơn về công nghệ Java như:

– Core Java

– RMI và JODBC

– Java Beans và Jsp/Java Serverlet

– Enterprise Java Beans

– J2ME

TÀI LIỆU HỌC LẬP TRÌNH JAVA 

1. Study and Share

100 câu hỏi phỏng vấn java cốt lõi hàng đầu dành cho người có kinh nghiệm năm 2022

Nếu đã có chút kiến thức nền về lập trình hướng đối tượng, bạn có thể bắt đầu học ngôn ngữ Java với chuỗi tài liệu Java tiếng Việt online này.

Bao gồm 58 chương, chương trình Java cơ bản do study and share thực hiện rất cơ bản, mạch lạc, dễ hiểu. Đặc biệt phù hợp cho newbie và những ai muốn nhanh chóng nắm kiến thức lập trình java cơ bản.

2. Website chính thức của Java

Nếu muốn học lập trình Java "chuẩn không cần chỉnh", thì website chính thức của Java là tài liệu mà bạn không thể bỏ qua. Ở đây, bạn có thể tìm thấy mọi thông tin cần thiết từ A-Z, ví dụ:

– Các khóa học lập trình Java online miễn phí

– Blog cập nhật tin tức mới về Java

– Dowload Java ( cho cả Developer và doanh nghiệp)

3. Free Java Guide

Đúng như tên gọi, tài liệu Java online miễn phí này sẽ cung cấp cho bạn hàng loạt tutorials cực kỳ chi tiết về ngôn ngữ lập trình java. Ngoài ra, bạn cũng có thể tìm thấy các câu hỏi phỏng vấn Java thường gặp.

Ưu điểm

  • Miễn phí
  • Thực tế
  •  Không đòi hỏi quá nhiều kinh nghiệm về lập trình hướng đối tượng để bắt đầu, tài nguyên học Java online này phù hợp cho newbie bước đầu muốn tìm hiểu Java

Tuy nhiên website cũng có rất nhiều chủ đề chuyên sâu hợp với các Java developer giàu kinh nghiệm

4. Java World

Java World là nguồn tài liệu độc lập cho các lập trình viên, kiến thức sư phần mềm và nhà quản lý muốn phát triển, triển khai và tích hợp giải pháp dựa trên Java cũng như công nghệ liên quan ở cấp độ doanh nghiệp.

Và đúng như tên gọi, Java toàn tập này có đủ thứ từ tutorials, open source Java, cho đến cả cơ hội nghề nghiệp cho các Java developer "chất".

5. Javaranch

Một nguồn tài liệu học Java online nội dung phong phú, bao gồm cả hướng dẫn học Java cơ bản nhất newbie, cho đến những thảo luận chuyên sâu cho Senior Java Developer

Website cũng cung cấp bộ sách học Java với phần review chi tiết. Ngoài ra, bạn có thể đăng ký kiểm tra kỹ năng lập trình Java để có chứng chỉ.

Trên hết JavaRanch sẽ dễ dàng "đốn tim" bạn ngay từ cú pháp nhấp chuột đầu tiên nhờ giao diện thân thiện và hết sức dễ thương!

Ngoài những lý do trên, việc học lập trình Java còn có khá nhiều nguồn tài liệu để học viên tham khảo, nó còn là nền tảng độc lập, không phụ thuộc với bất kỳ nền tảng nào, vậy nên học nó là một sự lựa chọn sáng suốt dành cho bạn. Nếu còn thắc mắc gì về ngôn ngữ lập trình Java, bạn chưa biết nên học ngôn ngữ lập trình này sao cho hiệu quả nhất, vậy đừng bỏ lỡ bài viết kỳ sau mà chúng tôi chia sẻ trên chuyên trang này bạn nhé. Chúc bạn thành công!!!

Mọi thông tin chi tiết xem tại website này nhé.

Xem thêm bài viết hữu ích khác

  1. Top 10 website hỗ trợ tốt cho việc học lập trình Java
  2. Các lỗi hay gặp khi học lập trình Java và cách giải quyết

  3. Có nên học lập trình Java hay không?

  4. Những cách học lập trình Java hiệu quả nhất

  5. Kỹ năng cốt lõi trong thế kỷ 21 là lập trình

Đăng nhập

Xin chào các bạn, trong bài viết này, chúng tôi đã chia sẻ hơn 100 câu hỏi phỏng vấn Java cho cả người mới bắt đầu và những người có kinh nghiệm. Nếu bạn là người mới bắt đầu Java, tôi khuyên bạn nên kiểm tra hướng dẫn Java của tôi.java interview questions for both beginners and experienced folks. If you are a java beginner, I highly recommend you to checkout my java tutorial.

Mục lục

  1. Câu hỏi cơ bản
  2. Oops câu hỏi phỏng vấn
  3. Xử lý ngoại lệ Các câu hỏi phỏng vấn
  4. Câu hỏi phỏng vấn đa luồng Java
  5. Câu hỏi phỏng vấn tuần tự
  6. Câu hỏi phỏng vấn chuỗi
  7. Câu hỏi phỏng vấn bộ sưu tập Java
  8. Câu hỏi phỏng vấn Applet

Q) Nền tảng Java có độc lập không?

Đúng. Java là một ngôn ngữ độc lập nền tảng. Chúng ta có thể viết mã Java trên một nền tảng và chạy nó trên một nền tảng khác. Ví dụ: Chúng ta có thể viết và biên dịch mã trên Windows và có thể chạy mã byte được tạo trên Linux hoặc bất kỳ nền tảng được hỗ trợ nào khác. Đây là một trong những tính năng chính của Java.

Q) Tất cả các khu vực bộ nhớ nào được JVM phân bổ?

Lớp học lớp, khu vực lớp, heap, stack, đăng ký bộ đếm chương trình và ngăn xếp phương thức gốc

Q) Java so với C ++?

Dưới đây là một vài sự khác biệt giữa Java và C ++:

  • Phụ thuộc nền tảng - C ++ phụ thuộc vào nền tảng trong khi Java độc lập với nền tảng
  • Không có hỗ trợ GOTO - Java không hỗ trợ câu lệnh GOTO trong khi C ++ có.
  • Nhiều kế thừa - C ++ hỗ trợ nhiều kế thừa trong khi Java thì không.
  • MultiThreading-C ++ không có hỗ trợ chủ đề xây dựng, mặt khác Java hỗ trợ đa luồng
  • Từ khóa ảo - C ++ có từ khóa ảo, nó xác định xem chức năng thành viên của một lớp có thể được ghi đè trong lớp con của nó hay không. Trong Java không có khái niệm về từ khóa ảo.

Q) Giải thích void static static chính (String args [])

Ở đây công chúng là một công cụ sửa đổi truy cập, có nghĩa là phương pháp này có thể truy cập được bởi bất kỳ lớp nào.public is an access modifier, which means that this method is accessible by any class.

Từ khóa tĩnh - Tĩnh cho biết rằng phương pháp này có thể được truy cập mà không cần tạo phiên bản của lớp. Tham khảo: Từ khóa tĩnh trong Java – static keyword tells that this method can be accessed without creating the instance of the class. Refer: Static keyword in java

Void - Phương pháp chính này trả về không có giá trị. – this main method returns no value.

Main - nó là tên của phương pháp. – It is the name of the method.

Chuỗi args [] - Args là một mảng loại chuỗi. Điều này chứa các đối số dòng lệnh mà chúng ta có thể vượt qua trong khi chạy chương trình. – The args is an array of String type. This contains the command line arguments that we can pass while running the program.

Q) Javac là gì?

Javac là một trình biên dịch biên dịch mã nguồn của chương trình của bạn và tạo mã byte. Trong các từ đơn giản, Javac tạo ra mã byte Java từ mã nguồn được viết *.java tệp. JVM thực thi mã byte để chạy chương trình.

Q) Lớp học là gì?

Một lớp là một bản thiết kế hoặc mẫu hoặc nguyên mẫu mà bạn có thể tạo đối tượng của lớp đó. Một lớp có tập hợp các thuộc tính và phương thức phổ biến cho các đối tượng của nó.

Q) Lớp cơ sở của tất cả các lớp là gì?

java.lang.Object là lớp cơ sở (siêu lớp) của tất cả các lớp trong java.

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

Một lớp trình bao bọc chuyển đổi kiểu dữ liệu nguyên thủy như int, byte, char, boolean, v.v. thành các đối tượng của các lớp tương ứng của chúng như số nguyên, byte, nhân vật, boolean, v.v. Tham khảo: lớp bao bọc trong Java

Q) Đường dẫn và đường dẫn lớp trong Java là gì?

Đường dẫn Chỉ định vị trí của các tệp .exe. ClassPath Chỉ định vị trí của ByteCode (các tệp .Class).

Q) Các loại dữ liệu khác nhau trong Java.

  • Byte - 8 bit
  • Ngắn - 16 bit
  • char - 16 bit unicode
  • int - 32 bit (toàn bộ số)
  • Float - 32 bit (số thực)
  • dài - 64 bit (độ chính xác đơn)
  • Double - 64 bit (độ chính xác gấp đôi)

Q) Unicode là gì?

Java sử dụng Unicode để đại diện cho các ký tự. Unicode xác định một bộ nhân vật quốc tế đầy đủ có thể đại diện cho tất cả các nhân vật được tìm thấy trong ngôn ngữ con người.

Q) Biết chữ là gì?

Bất kỳ giá trị không đổi nào được gán cho một biến được gọi là theo nghĩa đen trong Java. Ví dụ -

// Here 101 is a literal
int num = 101

Q) Khởi tạo động?

Khởi tạo động là quá trình trong đó giá trị khởi tạo của một biến được biết đến tại thời gian biên dịch. Nó đã tính toán trong thời gian chạy để khởi tạo biến.

Q) Loại đúc trong Java là gì?

Khi chúng ta gán một giá trị của một loại dữ liệu cho loại dữ liệu khác nhau thì hai loại dữ liệu này có thể không tương thích và cần chuyển đổi. Nếu các loại dữ liệu tương thích (ví dụ: gán giá trị INT dài) thì Java sẽ tự động chuyển đổi và không yêu cầu đúc. Tuy nhiên, nếu các loại dữ liệu không tương thích thì chúng cần được sử dụng để chuyển đổi.

Ví dụ:

//here in the brackets we have mentioned long keyword, this is casting
double num = 10001.99;
long num2 = (long)num;

Q) Mảng là gì?

Một mảng là một bộ sưu tập (nhóm) số lượng mục cố định. Array là một cấu trúc dữ liệu đồng nhất có nghĩa là chúng ta có thể lưu trữ nhiều giá trị cùng loại trong một mảng nhưng nó có thể chứa nhiều giá trị của các loại khác nhau. Ví dụ, một mảng loại int chỉ có thể giữ các giá trị số nguyên.

Q) Tuyên bố phá vỡ trong Java là gì?

Câu lệnh Break được sử dụng để phá vỡ chuỗi dòng chảy trong Java.

  • Tuyên bố Break thường được sử dụng với cấu trúc dữ liệu trường hợp chuyển đổi để ra khỏi câu lệnh sau khi trường hợp được thực thi.
  • Nó có thể được sử dụng để ra khỏi vòng lặp trong java

Q) Mảng có thể được định nghĩa theo những cách khác nhau. Viêt chung xuông.

int arr[];
int[] arr;

Oops câu hỏi phỏng vấn

Q) Bốn nguyên tắc chính của khái niệm rất tiếc?

  • Di sản
  • Đa hình
  • Đóng gói dữ liệu
  • Trừu tượng hóa

Q) Sự thừa kế là gì?

Quá trình mà một lớp có được các thuộc tính và chức năng của một lớp khác được gọi là kế thừa. Kế thừa mang lại khả năng tái sử dụng mã trong ứng dụng Java. Tham khảo: Hướng dẫn để thừa kế trong Java.Refer: Guide to Inheritance in Java.

Q) Java có hỗ trợ nhiều kế thừa không?

Khi một lớp mở rộng nhiều hơn một lớp thì nó được gọi là nhiều kế thừa. Java không hỗ trợ nhiều kế thừa trong khi C ++ hỗ trợ nó, đây là một trong những khác biệt giữa Java và C ++. & nbsp; Tham khảo: Tại sao Java không hỗ trợ nhiều kế thừa?Refer: Why java doesn’t support multiple inheritance?

Q) Đa hình là gì và các loại của nó là gì?

Đa hình là khả năng của một đối tượng để có nhiều hình thức. Việc sử dụng đa hình phổ biến nhất trong OOP là có nhiều hơn một phương pháp có cùng tên trong một lớp. Có hai loại đa hình: đa hình tĩnh và đa hình động. Tham khảo các hướng dẫn này để hiểu khái niệm đa hình một cách chi tiết: 1) Đa hình Java 2) Các loại đa hình

Q) Phương pháp ghi đè trong Java là gì?

Khi một lớp phụ (lớp con) ghi đè phương thức của siêu lớp (lớp cha) thì nó được gọi là ghi đè. Để ghi đè một phương thức, chữ ký của phương thức trong lớp con phải khớp với chữ ký phương thức trong lớp cha. Tham khảo: Java - Ghi đè phương thứcRefer: Java – Method Overriding

Q) Chúng ta có thể ghi đè một phương thức tĩnh không?

Không, chúng tôi không thể ghi đè một phương thức tĩnh trong Java.

Q) Quá tải phương pháp là gì?

Khi một lớp có nhiều hơn một phương thức có cùng tên nhưng số khác nhau, trình tự hoặc các loại đối số thì nó được gọi là quá tải phương thức. Tham khảo: Java - quá tải phương thứcRefer: Java – Method Overloading

Q) Nhà điều hành hỗ trợ Java có quá tải không?

Quá tải người vận hành không được hỗ trợ trong Java.

Q) Chúng ta có thể quá tải một phương thức bằng cách chỉ thay đổi loại trả về và không thay đổi chữ ký của phương thức không?

Không, chúng tôi không thể làm điều này. Để quá tải một phương thức, chữ ký phương thức phải khác nhau, loại trả về không đóng vai trò nào trong quá tải phương thức.

Q) Có thể làm quá tải phương thức chính () của một lớp không?

Có, chúng ta có thể quá tải phương thức main () trong java.

Q) Sự khác biệt giữa quá tải phương thức và ghi đè phương thức là gì?

Tham khảo hướng dẫn này: Quá tải VS ghi đè trong Java

Q) Liên kết tĩnh và động trong Java là gì?

Binding đề cập đến sự liên kết của phương pháp gọi vào cơ thể của nó. Một liên kết xảy ra tại thời điểm biên dịch được gọi là liên kết tĩnh trong khi liên kết trong thời gian chạy được gọi là liên kết động. Tham khảo: Liên kết tĩnh và động trong Java.

Q) Đóng gói là gì?

Gói dữ liệu và mã với nhau được gọi là đóng gói. Tham khảo: Đóng gói Java.Refer: Java Encapsulation.

Q) Lớp trừu tượng trong Java là gì?

Một lớp trừu tượng là một lớp có thể được khởi tạo (chúng ta không thể tạo đối tượng của lớp trừu tượng), chúng ta chỉ có thể mở rộng các lớp đó. Nó cung cấp hình thức tổng quát sẽ được chia sẻ bởi tất cả các lớp con của nó, để lại cho mỗi lớp con để điền vào các chi tiết. Chúng ta có thể đạt được sự trừu tượng một phần bằng cách sử dụng các lớp trừu tượng, để đạt được sự trừu tượng đầy đủ mà chúng ta sử dụng giao diện.

Q) Giao diện trong Java là gì?

Một giao diện được sử dụng để đạt được sự trừu tượng đầy đủ. Một lớp thực hiện một giao diện, do đó kế thừa các phương thức trừu tượng của giao diện. Tham khảo: Giao diện JavaRefer: Java Interface

Q) Sự khác biệt giữa lớp trừu tượng và giao diện là gì?

1) Lớp trừu tượng có thể có các phương pháp trừu tượng và không Abstract. Một giao diện chỉ có thể có các phương thức trừu tượng. 2) Một lớp trừu tượng có thể có các phương thức tĩnh nhưng giao diện không thể có các phương thức tĩnh. 3) Lớp trừu tượng có thể có các hàm tạo nhưng một giao diện không thể có các hàm tạo.
2) An abstract class can have static methods but an interface cannot have static methods.
3) abstract class can have constructors but an interface cannot have constructors.

Q) Đặt tên cho các sửa đổi truy cập có thể được áp dụng cho các lớp bên trong?

công khai, riêng tư, trừu tượng, cuối cùng, được bảo vệ.

Q) Trình xây dựng trong Java là gì?

Constructor được sử dụng để tạo một thể hiện của một lớp, chúng được gọi khi một thể hiện của lớp được tạo. Tên constructor và tên lớp phải giống nhau và nó không có loại trả về. Tham khảo hướng dẫn này: Trình xây dựng Java.

Q) Chúng ta có thể kế thừa các hàm tạo không?

Không, chúng ta không thể kế thừa các nhà xây dựng.

Q) Chúng ta có thể đánh dấu các nhà xây dựng cuối cùng không?

Không, hàm tạo không thể được khai báo cuối cùng.

Q) Các hàm tạo mặc định và tham số hóa là gì?

Mặc định: Các hàm tạo không có đối số được gọi là các hàm tạo mặc định, khi bạn không khai báo bất kỳ hàm tạo nào trong một lớp, trình biên dịch sẽ tự động tạo một loại mặc định.

Tham số hóa: hàm tạo với các đối số được gọi là các hàm tạo tham số hóa.

Q) Một hàm tạo có thể gọi một hàm tạo khác?

Đúng. Một hàm tạo có thể gọi một hàm tạo khác của cùng một lớp bằng cách sử dụng từ khóa này. Ví dụ: Điều này () gọi hàm tạo mặc định. Lưu ý: Đây () phải là câu lệnh đầu tiên trong trình xây dựng cuộc gọi.
Note: this() must be the first statement in the calling constructor.

Q) Một hàm tạo có thể gọi hàm tạo của lớp cha?

Đúng. Trong thực tế, nó xảy ra theo mặc định. Trình xây dựng lớp con luôn gọi hàm tạo lớp cha. Tuy nhiên, chúng tôi vẫn có thể gọi nó bằng cách sử dụng từ khóa Super. Ví dụ: Super () có thể được sử dụng để gọi Super Class Sheet Constructor.

Lưu ý: Super () phải là câu lệnh đầu tiên trong một hàm tạo.

Q) Từ khóa này?

Từ khóa this là một tham chiếu đến đối tượng hiện tại.

Q) Từ khóa này có thể được gán giá trị null không?

Không, từ khóa này không thể có các giá trị null được gán cho nó.

Q) Giải thích các cách để vượt qua các lập luận trong Java?

Trong Java, các đối số có thể được truyền dưới dạng cuộc gọi theo giá trị - Java chỉ hỗ trợ cuộc gọi theo giá trị, không có khái niệm về cuộc gọi bằng cách tham khảo trong Java.

Q) Biến tĩnh trong Java là gì?

Các biến tĩnh còn được gọi là biến cấp lớp. Một biến tĩnh là giống nhau cho tất cả các đối tượng của lớp cụ thể mà nó được khai báo.

Q) Khối tĩnh là gì?

Một khối tĩnh được thực thi tại thời điểm tải lớp. Chúng được sử dụng để khởi tạo các biến tĩnh.

Q) Phương pháp tĩnh là gì?

Các phương thức tĩnh có thể được gọi trực tiếp mà không cần tạo phiên bản (đối tượng) của lớp. Một phương thức tĩnh có thể truy cập trực tiếp vào tất cả các biến tĩnh của lớp nhưng nó không thể truy cập các biến không tĩnh mà không tạo phiên bản của lớp.

Q) Giải thích từ khóa siêu trong Java?

Siêu khóa tham chiếu đến lớp cha. Có một số cách sử dụng của Super Keyword:

  • Nó có thể được sử dụng để gọi hàm tạo siêu lớp (lớp cha).
  • Nó có thể được sử dụng để truy cập một phương thức của siêu lớp đã bị ẩn bởi lớp con (gọi phiên bản lớp cha mẹ, trong trường hợp ghi đè phương thức).
  • Để gọi hàm tạo của lớp cha.

Q) Sử dụng từ khóa cuối cùng trong Java?

Các phương thức cuối cùng - Các phương thức này không thể được ghi đè bởi bất kỳ phương thức nào khác. Biến chính - Hằng số, giá trị của các biến này có thể được thay đổi, lớp cố định của nó - Các lớp đó không thể được kế thừa bởi các lớp khác. Các loại lớp này sẽ được sử dụng khi ứng dụng yêu cầu bảo mật hoặc ai đó không muốn lớp cụ thể đó. Từ khóa cuối cùng trong Java. – These methods cannot be overridden by any other method.
Final variable – Constants, the value of these variable can’t be changed, its fixed.
Final class – Such classes cannot be inherited by other classes. These type of classes will be used when application required security or someone don’t want that particular class. Final Keyword in Java.

Q) Lớp đối tượng là gì?

Đây là một lớp đặc biệt được xác định bởi Java; Tất cả các lớp khác là các lớp con của lớp đối tượng. Lớp đối tượng là siêu lớp của tất cả các lớp khác. Lớp đối tượng có các phương thức sau

  • objectClone () - Để tạo một đối tượng mới giống như đối tượng được nhân bản.
  • Boolean bằng (đối tượng OBJ) - Xác định xem một đối tượng có bằng một đối tượng khác hay không.
  • Finalize () - Được gọi bởi người thu gom rác trên một đối tượng khi bộ sưu tập rác xác định rằng không có thêm tài liệu tham khảo nào về đối tượng. Một lớp con ghi đè phương pháp hoàn thiện để xử lý các tài nguyên hệ thống hoặc để thực hiện dọn dẹp khác.
  • toString () - Trả về một biểu diễn chuỗi của đối tượng.

Q) Các gói trong Java là gì?

Một gói có thể được định nghĩa là nhóm các loại liên quan (lớp, giao diện, liệt kê và chú thích). Tham khảo: Gói trong Java.

Q) Sự khác biệt giữa nhập khẩu java.util.date và java.util.*?

Mẫu sao (java.util.*) Bao gồm tất cả các lớp của gói đó và điều đó có thể tăng thời gian biên dịch - đặc biệt nếu bạn nhập một số gói. Tuy nhiên, nó không có bất kỳ hiệu suất thời gian chạy.

Q) Nhập khẩu tĩnh là gì?

Tham khảo: Nhập tĩnh trong Java.

Q) Bộ sưu tập rác trong Java?

Vì các đối tượng được phân bổ động bằng cách sử dụng toán tử mới, Java tự động xử lý việc phân bổ bộ nhớ, khi không có tài liệu tham khảo nào đến một đối tượng tồn tại trong một thời gian dài. Toàn bộ quá trình này được gọi là bộ sưu tập rác. Toàn bộ mục đích của bộ sưu tập rác là quản lý bộ nhớ hiệu quả.

Q) Sử dụng Phương thức Finalize () trong Java?

Phương thức hoàn thiện () được sử dụng để giải phóng tài nguyên được phân bổ.

Q) Bộ thu gom rác được gọi là bao nhiêu lần cho phương thức finalize () cho một đối tượng?

Trình thu gom rác gọi phương thức hoàn thiện () chỉ một lần cho một đối tượng.

Q) Hai cách khác nhau để gọi người thu gom rác là gì?

System.gc() hoặc Runtime.getRuntime().gc().

Q) Bộ sưu tập rác có thể bị ép buộc bằng bất kỳ phương tiện nào không?

Không, nó không thể. Bạn không thể buộc thu gom rác. Bạn có thể gọi các phương thức System.gc () để thu gom rác nhưng nó không đảm bảo rằng việc thu gom rác sẽ được thực hiện.

Xử lý ngoại lệ Các câu hỏi phỏng vấn

Q) Ngoại lệ là gì?

Ngoại lệ là các điều kiện bất thường phát sinh trong quá trình thực hiện chương trình. Nó có thể xảy ra do đầu vào người dùng sai hoặc logic sai được viết bởi lập trình viên.

Q) Các ngoại lệ được xác định trong gói Java nào? Hoặc gói nào có định nghĩa cho tất cả các lớp ngoại lệ?

Java.lang.Exception Gói này chứa các định nghĩa cho các ngoại lệ.
This package contains definitions for Exceptions.

Q) Các loại ngoại lệ là gì?

Có hai loại ngoại lệ: Các ngoại lệ đã kiểm tra và không được kiểm tra. Các trường hợp ngoại lệ đã được kiểm tra: Các ngoại lệ này phải được lập trình viên nếu không chương trình sẽ đưa ra một lỗi biên dịch. ngoại lệ không được kiểm soát. Bạn sẽ không gặp lỗi biên dịch nếu bạn không xử lý các ngoại lệ này. Những ngoại lệ này xảy ra trong thời gian chạy.
Checked exceptions: These exceptions must be handled by programmer otherwise the program would throw a compilation error.
Unchecked exceptions: It is up to the programmer to write the code in such a way to avoid unchecked exceptions. You would not get a compilation error if you do not handle these exceptions. These exceptions occur at runtime.

Q) Sự khác biệt giữa lỗi và ngoại lệ là gì?

Lỗi: Chủ yếu là một vấn đề hệ thống. Nó luôn luôn xảy ra trong thời gian chạy và phải được giải quyết để tiến hành thêm. Ngoại lệ: Chủ yếu là sự cố dữ liệu đầu vào hoặc logic sai trong mã. Có thể xảy ra tại thời điểm biên dịch hoặc thời gian chạy.
Exception: Mostly an input data issue or wrong logic in code. Can occur at compile time or run time.

Q) Từ khóa ném trong xử lý ngoại lệ là gì?

Từ khóa ném được sử dụng để ném ngoại lệ do người dùng xác định hoặc xác định trước.

Q) Từ khóa ném là gì?

Nếu một phương thức không xử lý ngoại lệ đã kiểm tra, phương thức phải khai báo nó bằng cách sử dụng throwskeyword. Từ khóa ném xuất hiện ở cuối chữ ký của phương thức.

Q) Sự khác biệt giữa ném và ném vào Java

Đọc sự khác biệt ở đây: Java - Ném vs ném.

Q) Có thể vượt quá ngoại lệ khối không?

Có, một khối tĩnh có thể ném ngoại lệ. Nó có những hạn chế riêng của nó: nó chỉ có thể ném ngoại lệ thời gian chạy (ngoại lệ không được kiểm soát), để ném các ngoại lệ đã kiểm tra, bạn có thể sử dụng một khối thử thử bên trong nó.

Q) Cuối cùng thì khối là gì?

Cuối cùng, khối là một khối mã luôn thực thi, cho dù ngoại lệ có xảy ra hay không. Cuối cùng, chặn theo sau hãy thử khối hoặc thử-catch Block.

Q) ClassNotFoundException vs NoclassdeffounderRor? 1) CLASTNOTFOUNDException xảy ra khi trình tải không thể tìm thấy lớp cần thiết trong đường dẫn lớp. 2) NoclassDeffounderRor xảy ra khi lớp được tải trong ClassPath, nhưng một hoặc nhiều lớp được yêu cầu bởi lớp khác, bị loại bỏ hoặc không tải được bởi trình biên dịch.
1) ClassNotFoundException occurs when loader could not find the required class in class path.
2) NoClassDefFoundError occurs when class is loaded in classpath, but one or more of the class which are required by other class, are removed or failed to load by compiler.

Q) Chúng ta có thể có một khối thử mà không bắt được hay cuối cùng là chặn?

Không, chúng tôi không thể có một khối thử mà không bắt hoặc cuối cùng là chặn. Chúng ta phải có một trong số họ hoặc cả hai.

Q) Chúng ta có thể có nhiều khối bắt sau một khối thử duy nhất không?

Có, chúng tôi có thể có nhiều khối bắt để xử lý nhiều ngoại lệ.

Q) Có thể cuối cùng có khối mà không bị bắt không?

Có, chúng ta có thể thử khối theo sau là cuối cùng mà không cần sử dụng các khối bắt ở giữa.

Khi một khối cuối cùng không được thực thi?

Lần duy nhất cuối cùng đã thắng được là nếu bạn gọi System.exit () hoặc nếu JVM gặp sự cố trước.

Q) Chúng ta có thể xử lý nhiều ngoại lệ trong một khối bắt không?

Vâng, chúng tôi có thể làm điều đó bằng cách sử dụng tuyên bố if-else nhưng nó không được coi là một thực tiễn tốt. Chúng ta nên có một khối bắt cho một ngoại lệ.

Q) Đậu Java là gì?

Javabean là một lớp Java tuân theo một số quy ước đơn giản bao gồm các quy ước về tên của một số phương pháp nhất định để có được và đặt trạng thái được gọi là hướng nội. Bởi vì nó tuân theo các quy ước, nó có thể dễ dàng được xử lý bởi một công cụ phần mềm kết nối đậu với nhau trong thời gian chạy. Javabeans là các thành phần phần mềm có thể tái sử dụng.

Câu hỏi phỏng vấn đa luồng Java

Q) MultiThreading là gì?

Đây là một quá trình thực hiện hai hoặc nhiều phần của chương trình cùng một lúc. Mỗi phần này được gọi là chủ đề. Tóm lại, quá trình thực hiện đồng thời nhiều luồng được gọi là đa luồng.

Q) Mục đích chính của việc có môi trường đa luồng là gì?

Tối đa hóa việc sử dụng CPU và giảm thời gian nhàn rỗi CPU

Q) Sự khác biệt chính giữa quy trình và luồng là gì? Giải thích ngắn gọn.

1) & nbsp; một quá trình có thể có nhiều luồng. Một chủ đề là một phần nhỏ hơn của một quá trình. 2) & nbsp; Mỗi quy trình đều có không gian bộ nhớ riêng, mã thực thi và mã định danh quy trình duy nhất (PID) trong khi mọi luồng đều có ngăn xếp riêng trong Java nhưng nó sử dụng bộ nhớ chính của quy trình và chia sẻ nó với các luồng khác. 3) Các chủ đề của cùng một quy trình có thể giao tiếp với nhau bằng cách sử dụng từ khóa như chờ và thông báo, vv Quá trình này được gọi là giao tiếp trong quá trình.
2)  Every process has its own memory space, executable code and a unique process identifier (PID) while every thread has its own stack in Java but it uses process main memory and shares it with other threads.
3) Threads of same process can communicate with each other using keyword like wait and notify etc. This process is known as inter process communication.

Q) Làm thế nào chúng ta có thể tạo một chủ đề trong Java?

Có hai cách tạo ra một luồng: 1) & nbsp; bằng cách triển khai giao diện Runnable. 2) & nbsp; bằng cách mở rộng lớp luồng.
1)  By Implementing Runnable interface.
2)  By Extending Thread class.

Q) Giải thích về năng suất và giấc ngủ?

Năng suất () - Nó khiến đối tượng luồng hiện đang thực hiện tạm thời tạm dừng và cho phép các luồng khác thực thi.

Ngủ () - Nó làm cho luồng hiện tại đình chỉ thực thi trong một khoảng thời gian cụ thể. Khi một chủ đề đi vào trạng thái ngủ, nó không giải phóng khóa.

Q) Sự khác biệt giữa giấc ngủ () và Wait () là gì?

Ngủ () - Nó làm cho luồng hiện tại đình chỉ thực thi trong một khoảng thời gian cụ thể. Khi một chủ đề đi vào trạng thái ngủ, nó không giải phóng khóa

Đợi () - Nó khiến luồng hiện tại phải đợi cho đến khi một luồng khác gọi phương thức thông báo () hoặc phương thức notifyall () cho đối tượng này hoặc một lượng thời gian được chỉ định đã trôi qua.

Q) Chủ đề daemon là gì?

Một luồng daemon là một luồng, không ngăn JVM thoát ra khi chương trình kết thúc nhưng chủ đề vẫn đang chạy. Một ví dụ cho một chủ đề daemon là bộ sưu tập rác.

Q) Phương thức tham gia () làm gì?

Nếu bạn sử dụng tham gia (), nó đảm bảo rằng ngay sau khi một luồng gọi tham gia, luồng hiện tại (có, hiện tại đang chạy) sẽ không thực thi trừ khi luồng bạn đã gọi là tham gia đã kết thúc.

Q) Lập lịch ưu tiên so với cắt thời gian?

1) Lập lịch ưu tiên được ưu tiên. Quá trình ưu tiên cao nhất phải luôn luôn là quá trình hiện đang được sử dụng. 2) Cắt thời gian có nghĩa là thực thi nhiệm vụ cho một lát/ khoảng thời gian xác định và sau đó nhập vào nhóm của trạng thái sẵn sàng. Trình lập lịch sau đó xác định nhiệm vụ nào thực thi tiếp theo dựa trên mức độ ưu tiên hoặc yếu tố khác.
2) Time slicing means task executes for a defined slice/ period of time and then enter in the pool of ready state. The scheduler then determines which task execute next based on priority or other factor.

Q) Chúng ta có thể gọi phương thức Run () của lớp luồng không?

Có, chúng ta có thể gọi phương thức Run () của một lớp luồng nhưng sau đó nó sẽ hoạt động như một phương thức bình thường. Để thực sự thực thi nó trong một luồng, bạn nên gọi phương thức Thread.start () để bắt đầu nó.

Q) đói là gì?

Starvation mô tả một tình huống trong đó một chủ đề không thể có quyền truy cập thường xuyên vào các tài nguyên được chia sẻ và không thể đạt được tiến bộ. Điều này xảy ra khi các tài nguyên được chia sẻ được cung cấp không có sẵn trong thời gian dài bởi các chủ đề tham lam. Ví dụ: giả sử một đối tượng cung cấp một phương thức đồng bộ thường mất nhiều thời gian để quay lại. Nếu một luồng gọi phương thức này thường xuyên, các luồng khác cũng cần truy cập đồng bộ thường xuyên vào cùng một đối tượng sẽ thường bị chặn.

Q) bế tắc là gì?

Holdlock mô tả một tình huống trong đó hai hoặc nhiều luồng bị chặn mãi mãi, chờ đợi nhau.

Câu hỏi phỏng vấn tuần tự

Hỏi: Xét nghiệm và khử serialization là gì?

Tuần tự hóa là một quá trình chuyển đổi một đối tượng và các thuộc tính của nó thành luồng byte. Khử serialization đang tái tạo đối tượng từ dòng byte; Nó chỉ là một quá trình đảo ngược của tuần tự hóa. Để biết thêm về tuần tự hóa với chương trình ví dụ, hãy tham khảo bài viết này.

Q) Chúng ta có cần thực hiện bất kỳ phương pháp giao diện có thể nối tiếp nào để tạo ra một đối tượng có thể nối tiếp không?

Không. Để làm cho một đối tượng có thể nối tiếp, chúng ta chỉ cần triển khai giao diện có thể nối tiếp. Chúng tôi không cần phải thực hiện bất kỳ phương pháp nào.

Q) Biến thoáng qua là gì?

1) Các biến thoáng qua không được bao gồm trong quá trình tuần tự hóa. 2) Chúng không phải là một phần của trạng thái tuần tự hóa đối tượng. 3) Các biến mà chúng tôi không muốn bao gồm trong tuần tự hóa được tuyên bố là thoáng qua.
2) They are not the part of the object’s serialized state.
3) Variables which we don’t want to include in serialization are declared as transient.

Câu hỏi phỏng vấn chuỗi

Q) Một lớp chuỗi là bất biến hoặc có thể thay đổi?

Lớp chuỗi là bất biến mà Lý do một khi đối tượng của nó được tạo ra, nó không thể thay đổi thêm.

Q) Sự khác biệt giữa lớp StringBuffer và StringBuilder?

1) StringBuffer là an toàn cho luồng nhưng StringBuilder không an toàn. 2) StringBuilder nhanh hơn StringBuffer. 3) StringBuffer được đồng bộ hóa trong khi StringBuilder không được đồng bộ hóa.
2) StringBuilder is faster than StringBuffer.
3) StringBuffer is synchronized whereas StringBuilder is not synchronized.

Q) Phương thức toString () trong java là gì?

Phương thức toString () trả về biểu diễn chuỗi của bất kỳ đối tượng nào.

Câu hỏi phỏng vấn bộ sưu tập Java

Q) Danh sách là gì?

Các yếu tố có thể được chèn hoặc truy cập bởi vị trí của chúng trong danh sách, sử dụng chỉ mục dựa trên không. Một danh sách có thể chứa các yếu tố trùng lặp.
A list may contain duplicate elements.

Q) Bản đồ là gì?

Bản đồ giao diện bản đồ các phím duy nhất cho các giá trị. Khóa là một đối tượng mà chúng tôi sử dụng để lấy một giá trị sau. Bản đồ không thể chứa các khóa trùng lặp: Mỗi khóa có thể ánh xạ đến tối đa một giá trị.

Q) Điều gì được đặt?

Một bộ là một bộ sưu tập không thể chứa các yếu tố trùng lặp.

Q) Tại sao ArrayList tốt hơn mảng?

Mảng có thể giữ số lượng các phần tử cố định. ArrayList có thể phát triển động.

Q) Sự khác biệt giữa ArrayList và LinkedList là gì?

1) Các yếu tố lưu trữ LinkedList trong cấu trúc dữ liệu danh sách liên kết gấp đôi. Các phần tử lưu trữ ArrayList trong một mảng thay đổi kích thước động. 2) LinkedList được ưu tiên cho các hoạt động Thêm và cập nhật trong khi ArrayList là một lựa chọn tốt cho các hoạt động tìm kiếm. Đọc thêm tại đây.
2) LinkedList is preferred for add and update operations while ArrayList is a good choice for search operations. Read more here.

Q) Để bổ sung và xóa. Cái nào được ưa thích nhất: ArrayList hoặc LinkedList?

LinkedList. Bởi vì xóa hoặc thêm một nút trong LinkedList nhanh hơn ArrayList.

Q) cho tìm kiếm. Cái nào được ưa thích nhất: ArrayList hoặc LinkedList?

Lập danh sách. Tìm kiếm một phần tử nhanh hơn trong ArrayList so với LinkedList.

Q) Sự khác biệt giữa ArrayList và Vector là gì?

1) Vector được đồng bộ hóa trong khi ArrayList không được đồng bộ hóa. 2) Theo mặc định, vectơ tăng gấp đôi kích thước của mảng của nó khi nó được kích thước lại bên trong. ArrayList tăng một nửa kích thước của nó khi nó được kích thước lại. Thêm chi tiết.
2) By default, Vector doubles the size of its array when it is re-sized internally. ArrayList increases by half of its size when it is re-sized. More details.

Q) Sự khác biệt giữa Iterator và ListIterator là gì?

Sau đây là sự khác biệt chính giữa chúng: 1) Iterator có thể được sử dụng để đi ngang, danh sách và bản đồ. ListIterator chỉ có thể được sử dụng để đi qua một danh sách. 2) Chúng ta chỉ có thể đi qua hướng về phía trước bằng cách sử dụng tererator. ListIterator có thể được sử dụng để đi qua cả hai hướng (tiến và lùi). Đọc thêm tại: ListIterator vs Iterator.
1) Iterator can be used for traversing Set, List and Map. ListIterator can only be used for traversing a List.
2) We can traverse only in forward direction using Iterator. ListIterator can be used for traversing in both the directions(forward and backward). Read more at: ListIterator vs Iterator.

Q) Sự khác biệt giữa cây và sắp xếp?

Cây thực hiện giao diện sắp xếp.

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

1) Hashtable được đồng bộ hóa. Hashmap không được đồng bộ hóa. 2) Hashtable không cho phép các khóa hoặc giá trị null. Hashmap cho phép một khóa null và bất kỳ số lượng giá trị null nào. Đọc thêm tại đây.
2) Hashtable does not allow null keys or values. HashMap allows one null key and any number of null values. Read more here.

Q) Sự khác biệt giữa iterator và liệt kê là gì?

1) Iterator cho phép loại bỏ các phần tử khỏi bộ sưu tập bên dưới trong quá trình lặp bằng phương thức Remove (). Chúng tôi không thể thêm/loại bỏ các phần tử khỏi bộ sưu tập khi sử dụng điều tra viên. 2) Iterator đã cải thiện tên phương pháp. Liệt kê.hasmoreelement () -> iterator.hasnext () liệt kê.nextEuity () -> iterator.next ().
2) Iterator has improved method names.
Enumeration.hasMoreElement() -> Iterator.hasNext()
Enumeration.nextElement() -> Iterator.next().

Câu hỏi phỏng vấn Applet

Q) Làm thế nào để bạn thực hiện tệp I/O từ một applet?

Các Ứng dụng không dấu chỉ đơn giản là không được phép đọc hoặc ghi tệp trên hệ thống tệp cục bộ.

Tuy nhiên, các applet không dấu có thể đọc (nhưng không ghi) các tệp không lớp được gói với applet của bạn trên máy chủ, được gọi là các tệp tài nguyên

Q) Container là gì?

Một thành phần có khả năng giữ một thành phần khác được gọi là container. Hộp thoại bảng điều khiển applet panel applet
Container
Panel
Applet
Window
Frame
Dialog

Q) Trên Windows, thường là các khung hình là vô hình, làm thế nào để hiển thị nó?

Frame f = new Frame();
f.setSize(300,200);  //height and width
f.setVisible(true) ;  // Frames appears

Q) Người nghe và phương pháp tương ứng?

ActionListerner - ActionPerformed (); ItemListerner - itemStateChanged (); TextListener - TextValueChanged (); FocusListener - FocusLost (); & Tập trung (); Windowlistener - windowactified (); windowDeactified (); windowiconified (); windowdeiconified (); cửa sổ (); cửa sổ (); windowopened (); MousemotionListener - mousedragged (); & Mousemove (); Mouselistener - mousepress (); mouserelead (); Chuột được (); chuột (); mouseclicked ();
ItemListerner – itemStateChanged();
TextListener – textValueChanged();
FocusListener – focusLost(); & FocusGained();
WindowListener – windowActified(); windowDEactified(); windowIconified(); windowDeiconified(); windowClosed(); windowClosing(); windowOpened();
MouseMotionListener – mouseDragged(); & mouseMoved();
MouseListener – mousePressed(); mouseReleased(); mouseEntered(); mouseExited(); mouseClicked();

Q) Vòng đời applet?

Sau giai đoạn của bất kỳ vòng đời applet nào, bắt đầu bằng init (), start (), paint (), stop () và phá hủy ().

Q) Sử dụng phương thức showstatus () trong java

Để hiển thị thông báo ở dưới cùng của trình duyệt khi bắt đầu applet.

Q) Xử lý sự kiện trong Java là gì?

Không phân biệt bất kỳ thành phần nào, nếu bất kỳ hành động nào được thực hiện/thực hiện trên khung, bảng điều khiển hoặc trên cửa sổ, việc xử lý các hành động đó được gọi là xử lý sự kiện.

Q) Lớp bộ điều hợp là gì?

Lớp bộ điều hợp là một lớp trừu tượng. Ưu điểm của bộ điều hợp: Để thực hiện bất kỳ trình nghe cửa sổ nào, chúng tôi cần bao gồm tất cả các phương thức được sử dụng bởi trình nghe cửa sổ cho dù chúng tôi sử dụng các phương thức đó không có trong lớp của chúng tôi như giao diện trong khi với lớp bộ điều hợp, nó chỉ đủ để bao gồm các phương thức cần thiết để ghi đè. Thẳng đối diện với giao diện.
Advantage of adapter: To perform any window listener, we need to include all the methods used by the window listener whether we use those methods are not in our class like Interfaces whereas with adapter class, its sufficient to include only the methods required to override. Straight opposite to Interface.

Đọc thêm:

Nếu bạn đã đọc xong các câu hỏi phỏng vấn thì bạn có thể xem qua các hướng dẫn dưới đây để làm sắc nét kiến ​​thức của bạn trong Java. Chúng tôi sẽ tiếp tục thêm câu hỏi và câu trả lời mới vào danh sách trên.

1) Bộ sưu tập Java 2) Hướng dẫn Java 3) Khái niệm oops trong Java 4) Java MultiThreading 5) Lớp chuỗi trong Java 6)
2) Java Tutorial
3) OOPs concepts in Java
4) Java Multithreading
5) String class in Java
6) Java Exception handling

Làm thế nào tôi có thể chuẩn bị cho cuộc phỏng vấn có kinh nghiệm của Java?

Những chủ đề nào để chuẩn bị cho các cuộc phỏng vấn Java ?..
Nguyên tắc cơ bản của Java ..
Cấu trúc dữ liệu và thuật toán ..
Các khái niệm hướng đối tượng ..
MultiThreading, đồng thời và cơ bản chủ đề ..
Khung bộ sưu tập Java ..
Chuyển đổi loại ngày và các nguyên tắc cơ bản ..
Array..
Thu gom rác thải..

Các câu hỏi phỏng vấn Java cho 2 năm kinh nghiệm là gì?

Câu hỏi phỏng vấn Java cho 2 đến 3 năm kinh nghiệm..
Q1 Liệt kê các phương thức xuống có trong lớp đối tượng ?.
Q2 Giao diện là gì ?.
Q3 Sự khác biệt giữa phương thức ghi đè và quá tải phương thức trong Java là gì ?.
Q4 Có thể ghi đè phương thức tĩnh trong Java không ?.
Q5 Phương pháp động từ Java là gì ?.

Các câu hỏi phỏng vấn java cốt lõi là gì?

Câu hỏi và câu trả lời phỏng vấn Java phổ biến nhất..
Q #1) Java là gì? ....
Q #2) Các tính năng của Java là gì? ....
Q #3) Java cho phép hiệu suất cao như thế nào? ....
Q #4) Đặt tên cho Java IDE? ....
Q #5) Bạn có nghĩa là gì khi xây dựng? ....
Q #6) Biến cục bộ và biến thể hiện có nghĩa là gì? ....
Q #7) Lớp học là gì ?.

Các câu hỏi phỏng vấn Java phổ biến nhất là gì?

20 Câu hỏi phỏng vấn Java thường gặp vào năm 2022..
Trong Java, các khối tĩnh và khởi tạo tĩnh là gì ?.
Trong Java, quá tải phương pháp là gì ?.
Sự khác biệt giữa điều này () và Super () trong java là gì ?.
Chính xác thì một trình biên dịch JIT là gì ?.
Tại sao nền tảng Java là bất khả tri ?.
Trong Java, một từ khóa siêu là gì ?.