Top 100 câu hỏi phỏng vấn về java năm 2022

Chắc hẳn ứng viên nào khi tham gia phỏng vấn đều rất lo lắng về các câu hỏi mà nhà tuyển dụng có thể đưa ra. Đặc biệt là trong các ngành đặc thù như Marketing, IT, khi mà các câu hỏi của nhà tuyển dụng có thể biến hóa khôn lường. Bài viết hôm nay TopCVsẽ đưa ra 20 câu hỏi phỏng vấn lập trình viên Java thường gặp, phân theo thứ tự từ cơ bản đến nâng cao giúp bạn dễ nắm bắt hơn. Nếu bạn đang có ý định ứng tuyển cho vị trí này thì đừng nên bỏ qua bài viết hữu ích này nhé.

Show

Câu hỏi phỏng vấn lập trình viên Java cơ bản

Ở phần này chúng tôi sẽ đưa ra các câu hỏi phỏng vấn lập trình viên Java cơ bản mà nhà tuyển dụng thường đưa ra. Các câu hỏi này sẽ giúp đánh giá nền tảng kiến thức về Java của ứng viên. Vì vậy bạn nên chuẩn bị câu trả lời chuẩn - chỉnh cho phần này để khẳng định nền tảng vững chắc của mình.

Câu 1: Java là gì?

Đây là câu hỏi lý thuyết khá đơn giản, ứng viên chỉ cần trả lời rõ ràng và thẳng thắn là được.

Java là ngôn ngữ lập trình cao cấp, hướng đối tượng và độc lập với nền tảng, là ngôn ngữ lập trình di động, hiệu suất cao. Nó được sáng tạo và phát triển bởi James Gosling vào năm 1991 với Slogan “Một lần viết, chạy ở bất cứ nơi nào”. 

Câu 2: Java có hoàn toàn hướng đối tượng không?

Tiếp tục là một câu hỏi phỏng vấn lập trình viên Java khá lý thuyết. Thực tế Java không hướng đối tượng hoàn toàn. Thay vào đó nó có sử dụng các loại dữ liệu như char, byte, float,.. đều không phải là đối tượng.

Câu 3: Tính năng nổi bật của Java là gì?

Ở câu hỏi này, ứng viên cần nếu được ít nhất 3 tính năng nổi bật của ngôn ngữ lập trình này. Đó là sự đơn giản, an toàn và tính di động.

Về sự đơn giản, có thể nói Java là ngôn ngữ lập trình dễ tiếp cận và học tập nhất so với các ngôn ngữ lập trình khác hiện nay. Vì vậy các lập trình viên, nhà phát triển ứng dụng đều có thể sử dụng nó để xây dựng phần mềm.

Java an toàn và bảo mật nhờ có trình thông dịch JVM. Sau khi được cài đặt chung với Java, JVM sẽ liên tục cập nhật chương trình bảo mật mới nhất từ Internet.

Cuối cùng, Java có tính di động bởi nó được sáng tạo dựa trên nguyên tắc “Viết một lần, chạy được ở bất cứ đâu”. Lập trình viên có thể sử dụng Java để code ở bất cứ máy tính nào theo ý thích.

Câu 4: Đặc điểm nổi bật của Java 8 là gì?

Đây là câu hỏi phỏng vấn lập trình viên Java kiểu so sánh. Loại câu hỏi này giúp nhà tuyển dụng đánh giá mức độ cập nhật thông tin và kiến thức của ứng viên. Với câu hỏi này bạn cần trả lời được một số tính năng mới của bản cập nhật Java 8 như sau:

  • Phần hỗ trợ ngôn ngữ cho Atring
  • Cải tiến tính năng cung cấp API Ngày/ Giờ
  • Phát triển và cập nhật hệ thống JVM

Nhìn chung, bản cập nhật Java 8 mang lại sự cải tiến lớn về hiệu năng và tính bảo mật cho ngôn ngữ lập trình này. Java 8 cũng giúp ngôn ngữ lập trình trở nên hiện đại và dễ tiếp cận hơn.

Câu 5: “ Access Specifiers” gồm những gì?

Access Specifiers là xác định phạm vi truy cập. Trong Java tổng cộng có 4 Access Specifiers là: public (công khai), private (riêng tư), protected (bảo vệ), default (mặc định).

Với mỗi trạng thái, quyền truy cập được xác định như sau:

  • Public specifier: bất cứ truy cập vào bất cứ lớp nào và bằng phương thức gì cũng được cho phép.
  • Private specifier: chỉ được truy cập vào lớp chỉ định bằng phương thức chỉ định.
  • Protected specifier: cho phép truy cập bằng các lớp tương quan hoặc từ trong một lớp, một lớp con hoặc trong cùng một gói.
  • Default specifier: chỉ được truy cập trong phạm vi mặc định cho phép và trong cùng một gói.

Câu 6: Sự khác nhau giữa JDK, JVM và JRE là gì? 

JDK (Java Development Kit) là công cụ được sử dụng trong Java để biên dịch các chương trình. Bộ công cụ này chứa tất cả các công cụ cần thiết để phục vụ cho quá trình trên.

JVM (Java Virtual Machine) là máy ảo Java được dùng để tạo ra môi trường lý tưởng cho Java bytecode hoạt động chính xác nhất.

JRE (Java Runtime Environment) là môi trường do JVM tạo ra, nơi mà Java bytecode có thể hoạt động hiệu quả nhất.

Câu 7: Phân biệt lớp trừu tượng với giao diện bằng cách nào?

Đây là câu hỏi phỏng vấn lập trình viên Java khá đơn giản. Sự khác biệt giữa lớp trừu tượng và giao diện gồm các điểm chính sau:

  • Lớp trừu tượng có thể triển khai bằng các phương thức khác nhau còn giao diện thì không.
  • Một lớp con chỉ có thể mở rộng một lớp trừu tượng hoặc cụ thể duy nhất. Còn một giao diện thì có thể mở rộng hoặc thực hiện nhiều giao diện khác.
  • Lớp trừu tượng gồm các thành phần hằng số, thành viên, sơ khai phương thức, phương thức được xác định. Còn giao diện chỉ có thể chứa hằng số và sơ đồ phương thức.
  • Ở lớp trừu tượng, phương thức và thành viên được định nghĩa với bất cứ mức độ hiển thị nào. Còn ở giao diện, phương thức được định nghĩa là công khai theo mặc định.

Câu 8: Sự khác nhau giữa Path và Classpath Variables 

Path là là một biến được dùng để định vị các tệp thực thi. Vì vậy khi cài đặt Java ta cần thêm vị trí thư mục vào Path variable. Điều này cũng giúp hệ điều hành kiểm soát bất cứ thực thi nào.

Classpath Variables được dùng để định vị vị trí của các tệp lớn trong thư mục. Nó có thể là một thư mục, tệp Zip hoặc Jar được cài đặt trong ứng dụng Java.

Câu 9: “Garbage Collection” được dùng để làm gì?

Câu hỏi phỏng vấn lập trình viên Java này khá đơn giản. Công dụng chính của tính năng Garbage Collection là xác định và loại bỏ các đối tượng (rác) không cần thiết để giải phóng bộ nhớ, tạo không gian để các tính năng khác hoạt động.

Câu 10: Cách đạt được Luồng an toàn trong Java

Để đạt được điều này bằng các cách sau:

  • Triển khai giao diện khóa đồng thời
  • Sử dụng một từ khóa dễ biến mất
  • Sử dụng các lớp bất biến
  • Các lớp an toàn luồng
  • Câu hỏi phỏng vấn lập trình viên Java nâng cao

Sau các câu hỏi cơ bản thì bạn nên tham khảo thêm các câu hỏi phỏng vấn lập trình viên Java nâng cao để gia tăng sự ấn tượng đối với nhà tuyển dụng. Dưới đây là hướng dẫn trả lời 10 câu hỏi phỏng vấn nâng cao thường gặp ở vị trí lập trình viên Java.

Câu 11:  Sự khác biệt giữa ‘method overloading’ và ‘method overriding’?

Với phương thức nạp chồng Method Overloading, các phương thức trong một lớp sẽ có cùng tên nhưng khác biệt về tham số. Còn với phương thức ghi đè Method Overriding, các lớp con sẽ có cùng cả tên và tham số. 

Câu 12: “Inheritance” là gì?

Khi một đối tượng có được các thuộc tính của một đối tượng thuộc lớp khác thì đó chính là Inheritance - Tính kế thừa. Có 5 loại kế thừa, tuy nhiên Java chỉ hỗ trợ 4 loại (trừ tính đa kế thừa). Nguyên nhân chủ yếu là để đơn giản hóa các chương trình. Đây là mục đích chính khi tạo lập ra ngôn ngữ lập trình Java.

Câu 13: “Super” là gì?

Super được sử dụng như một biến tham chiếu dùng để tham chiếu trực tiếp tới đối tượng của một lớp cha liền kề. Bất cứ một Instance của một lớp con cũng có một Instance tương ứng của lớp ta ngầm định, tức là được tham chiếu bởi biến Super.

Câu 14: “Object Cloning” là gì?

Object Cloning là nhân bản đối tượng, lệnh này được sử dụng để tạo các bản sao giống hệt với đối tượng gốc. Bạn thực hiện lệnh này bằng cách sử dụng phương thức Clone().

Câu 15: “Association’ trong Java là gì?

Đây là câu hỏi phỏng vấn lập trình viên Java khá thông dụng nên nhiều người sẽ không nghĩ đây là một câu hỏi nâng cao. Tuy nhiên vì association là khởi nguồn của các thuật ngữ phức tạp như aggregation (tập hợp) và composition (thành phần). Vì vậy việc hiểu và nắm rõ thuật ngữ này rất quan trọng.

Cụ thể, Association (sự liên kết) hình thành khi tất cả các đối tượng có vòng đời và không được sở hữu bởi bất cứ chủ thế nào.

Câu 16: Sự khác biệt giữa Jar và WAR là gì?

Đây là câu hỏi phỏng vấn lập trình viên Java khá độc đáo và hiếm gặp. Bạn có thể tham khảo câu trả lời như sau:

JAR gần giống như là cái hũ bao gồm:

  • Bản đầy đủ của các file Java
  • Nhiều file Java được lưu trữ trong một JAR
  • JAR dùng để lưu trữ Library.
  • Còn về WAR:
  • Bản đầy đủ của WAR là Web Archive Files
  • WAR chứa nhiều thứ: XML, Java Servlet page,..
  • Dùng cho các ứng dụng web.

Câu 17: Từ khóa Volatile là gì? Tại sao cần sử dụng từ khóa này?

Nếu câu hỏi phỏng vấn lập trình viên Java này được đặt ra, nghĩa là bạn đã đạt tới cấp độ Senior. Với câu hỏi này, bạn cần hiểu từ khóa Volatile sẽ được sử dụng trong trường hợp nào.

Trong Java, mỗi Thread sẽ có các Stack riêng chứa bản sao của các biến. Khi khởi tạo Thread, tất cả các biến được cấp quyền truy cập vào luồng này sẽ được sao chép. Lúc này sẽ cần sử dụng tới từ khóa Volatile. Từ khóa này sẽ đảm bảo rằng giá trị của biến được cập nhật mới nhất và là global ở mỗi lần đọc và ghi biến.

Câu 18: Method reference là gì? Sự tiện lợi của nó?

Đây là câu hỏi phỏng vấn lập trình viên Java khá hay sau khi phiên bản Java 8 được phát hành. Có thể tính năng này đã được nhiều người sử dụng nhưng nếu chưa chắc bạn đã trả lời được câu hỏi này. 

Tính năng method reference cho phép người dùng khởi tạo Constructors và các Methods. Điều đặc biệt là chúng có thể được sử dụng như là lambdas.

Câu 19: Kể tên Superclass dành cho tất cả các lớp trong Java

Câu hỏi phỏng vấn lập trình viên Java thoạt nhìn khá dễ nhưng bạn cần hiểu về cốt lõi của ngôn ngữ lập trình này. Superclass trong Java chính là lớp đối tượng (Object Class).

Câu 20: Các câu hỏi về một chương trình cụ thể

Dạng câu hỏi phỏng vấn lập trình viên Java này bạn sẽ phải ứng biến linh hoạt theo yêu cầu đề bài. Các dạng câu hỏi thường gặp sẽ là tìm đầu ra, tìm lỗi trong chương trình hoặc thậm chí là một bài test. Để trả lời suôn sẻ các câu hỏi này không có cách nào khác ngoài việc bạn phải lập trình nhiều bằng ngôn ngữ Java để quen thuộc với nó.

Tìm việc làm Lập trình viên Java tại TopCV:

>> Có thể bạn quan tâm: Tìm hiểu về lập trình Java – Cơ hội việc làm lập trình viên Java

Trên đây là 20 câu hỏi phỏng vấn lập trình viên Java từ cơ bản tới nâng cao mà bạn nên tham khảo nếu muốn ứng tuyển vào vị trí này. Hiện nay vị trí lập trình viên Java trên TopCV đang được nhiều doanh nghiệp tuyển chọn và săn đón. Đừng quên sử dụng tính năng tạo CV có sẵn trên nền tảng để nhanh chóng ứng tuyển vào các vị trí nghề nghiệp hấp dẫn ngay trên TopCV.

Nguồn ảnh: Sưu tầm

Bản quyền nội dung thuộc về TopCV.vn, được bảo vệ bởi Luật bảo vệ bản quyền tác giả DMCA.
Vui lòng không trích dẫn nội dung trang web khi chưa được sự cho phép của TopCV.

Mục lục

Không có trí tuệ rằng Java là một trong những lựa chọn lập trình hàng đầu để đóng gói một công việc sinh lợi.Rốt cuộc, ngôn ngữ lập trình hướng đối tượng dựa trên lớp học, có mục đích chung là một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất trên thế giới.

Với rất nhiều tính năng tuyệt vời, ngôn ngữ lập trình được ưa thích không chỉ bởi các chuyên gia dày dạn mà còn được theo đuổi bởi những người mới tham gia thế giới lập trình.Dưới đây là các câu hỏi và câu trả lời phỏng vấn Java hàng đầu sẽ giúp bạn đóng gói một công việc Java hoặc, ít nhất, nâng cao việc học của bạn. & NBSP;

Các câu hỏi phỏng vấn Java này được khuyến nghị cho cả người mới bắt đầu và chuyên gia cũng như cho các nhà phát triển phần mềm và nhà phát triển ứng dụng Android. & NBSP;

Câu hỏi và câu trả lời phỏng vấn Java hàng đầu

Chúng tôi cũng khuyên bạn nên xem các kỹ năng Java của bạn với bảng gian lận Java này trước khi bắt đầu chuẩn bị phỏng vấn Java. & NBSP;

Chúng tôi đã chia những câu hỏi phỏng vấn này thành một số phần, bao gồm một câu hỏi để lập trình các câu hỏi phỏng vấn Java.

Câu hỏi phỏng vấn Java cơ bản

1. Java là gì?

Java là một ngôn ngữ lập trình đa năng, hướng đến đối tượng, cấp cao, ban đầu được thiết kế bởi James Gosling và được phát triển thêm bởi Tập đoàn Oracle.Đây là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới. & NBSP;

Tìm hiểu thêm về Java tại đây. & NBSP;

2. Máy ảo Java là gì? & NBSP;

Top 100 câu hỏi phỏng vấn về java năm 2022

JVM là một chương trình diễn giải mã byte Java trung gian và tạo ra đầu ra mong muốn.Chính vì mã byte và JVM mà các chương trình được viết bằng Java có tính di động cao. & NBSP;

3. Các tính năng của Java là gì?

Sau đây là các tính năng khác nhau của ngôn ngữ lập trình Java:

  • Hiệu suất cao: Sử dụng trình biên dịch JIT (chỉ trong thời gian) cho phép hiệu suất cao trong Java.Trình biên dịch JIT chuyển đổi mã byte Java thành mã ngôn ngữ máy, sau đó được thực thi bởi JVM. Using a JIT (Just-In-Time) compiler allows high performance in Java. The JIT compiler converts the Java bytecode into machine language code, which then gets executed by the JVM.
  • Đa luồng: Một chủ đề là một luồng thực thi.JVM tạo ra một luồng được gọi là luồng chính.Java cho phép tạo một số luồng bằng cách sử dụng mở rộng lớp luồng hoặc triển khai giao diện Runnable. A thread is a flow of execution. The JVM creates a thread which is called the main thread. Java allows the creation of several threads using either extending the thread class or implementing the Runnable interface.
  • Các khái niệm OOPS: Java tuân theo các khái niệm OOPS khác nhau, cụ thể là trừu tượng, đóng gói, kế thừa, hướng đối tượng và đa hình Java follows various OOPs concepts, namely abstraction, encapsulation, inheritance, object-oriented, and polymorphism
  • Độc lập nền tảng: Java sử dụng máy ảo Java hoặc JVM, cho phép một chương trình Java duy nhất hoạt động trên nhiều nền tảng mà không có bất kỳ sửa đổi nào. Java makes use of the Java Virtual Machine or JVM, which allows a single Java program to operate on multiple platforms without any modifications.

Bạn có thể muốn xem giải thích chi tiết về các tính năng Java ở đây. & NBSP;

4. Java cho phép hiệu suất cao như thế nào?

Trong tổng hợp đúng lúc, mã cần thiết được thực thi tại thời điểm chạy.Thông thường, nó liên quan đến việc dịch mã byte thành mã máy và sau đó thực hiện trực tiếp.Nó cho phép hiệu suất cao.Trình biên dịch JIT được bật theo mặc định trong Java và được kích hoạt ngay khi một phương thức được gọi. & NBSP;

Sau đó, nó biên dịch mã byte của phương thức Java vào mã máy gốc. & NBSP;

Sau đó, JVM gọi mã được biên dịch trực tiếp thay vì diễn giải nó.

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

Parameters 

JVM

JRE

JDK

Full-Form

Máy ảo Java

Môi trường thời gian chạy Java

Bộ phát triển Java

Mục đích

Nó cung cấp một môi trường thời gian chạy để thực hiện mã byte Java. & NBSP;

Đây là một tập hợp các công cụ phần mềm được sử dụng để phát triển các ứng dụng Java. & NBSP;

Đây là một môi trường phát triển phần mềm được sử dụng để phát triển các ứng dụng Java. & NBSP;

Existence 

Đó là một thể hiện thời gian chạy được tạo khi chúng ta chạy một lớp Java. & NBSP;

Nó tồn tại về thể chất.

Nó tồn tại về thể chất.

Thực hiện

Việc thực hiện nó được gọi là JRE & NBSP;

Đó là việc thực hiện JVM & NBSP;

Đây là một triển khai của bất kỳ một trong những nền tảng Java được đưa ra dưới đây được phát hành bởi Oracle Corporation:

Nền tảng Java phiên bản tiêu chuẩn

Nền tảng Java phiên bản doanh nghiệp

Nền tảng Java Micro Edition

6. Trình biên dịch JIT là gì?

Trình biên dịch JIT chạy sau khi chương trình được thực thi và biên dịch mã thành một biểu mẫu nhanh hơn, lưu trữ bộ hướng dẫn gốc của CPU.JIT có thể truy cập thông tin thời gian chạy động, trong khi một trình biên dịch tiêu chuẩn không và có thể thực hiện các tối ưu hóa tốt hơn như các hàm nội tuyến được sử dụng thường xuyên. & NBSP;

7. IDE Java là gì?

Java IDE là một phần mềm cho phép các nhà phát triển Java dễ dàng viết cũng như gỡ lỗi các chương trình Java.Về cơ bản, nó là một tập hợp các công cụ lập trình khác nhau, có thể truy cập thông qua một giao diện duy nhất và một số tính năng hữu ích, chẳng hạn như hoàn thành mã và làm nổi bật cú pháp. & NBSP;

Codenvy, Eclipse và Netbeans là một số IDE Java phổ biến nhất.

8. Java là một ngôn ngữ độc lập với nền tảng.Tại sao?

Java không phụ thuộc vào bất kỳ phần cứng hoặc phần mềm cụ thể nào vì nó được biên dịch bởi trình biên dịch và sau đó được chuyển đổi thành mã byte.Mã byte độc lập với nền tảng và có thể chạy trên nhiều hệ thống.Yêu cầu duy nhất là Java cần môi trường thời gian chạy, tức là, JRE, là một bộ công cụ được sử dụng để phát triển các ứng dụng Java.

9. Giải thích typecasting.

Khái niệm gán một biến của một loại dữ liệu cho một biến của loại dữ liệu khác.Điều này là không thể cho kiểu dữ liệu Boolean.Có hai loại: ẩn và rõ ràng.

10. Các loại đánh máy khác nhau là gì?

Top 100 câu hỏi phỏng vấn về java năm 2022

Các loại khác nhau của việc đánh máy là:

  • Ngược lại: Lưu trữ các giá trị từ một loại dữ liệu nhỏ hơn đến kiểu dữ liệu lớn hơn.Nó được tự động thực hiện bởi trình biên dịch. Storing values from a smaller data type to the larger data type. It is automatically done by the compiler.
  • Rõ ràng: Lưu trữ giá trị của một loại dữ liệu lớn hơn vào một loại dữ liệu nhỏ hơn.Điều này dẫn đến mất thông tin: Storing the value of a larger data type into a smaller data type. This results in information loss:
  • Cắt ngắn: Trong khi chuyển đổi một giá trị từ một loại dữ liệu lớn hơn sang kiểu dữ liệu nhỏ hơn, dữ liệu bổ sung sẽ bị cắt ngắn.Ví dụ mã này giải thích nó: & nbsp;While converting a value from a larger data type to a smaller data type, the extra data will be truncated. This code example explains it : 
float f = 3.14f;

int i = (int) f; 

Sau khi thực hiện, biến tôi sẽ chỉ chứa 3 và không phải là phần thập phân. & Nbsp;

  • Ngoài phạm vi: Typecasting không cho phép gán giá trị nhiều hơn phạm vi của nó;Nếu điều đó xảy ra thì dữ liệu bị mất trong những trường hợp như vậy.Ví dụ mã này giải thích nó: & nbsp;Typecasting does not allow assigning value more than its range; if that happens then the data is lost in such cases. This code example explains it: 

dài l = 123456789; l = 123456789;

byte b = (byte) l;// byte không có cùng phạm vi dài vì vậy sẽ mất dữ liệu. b = (byte) l; // byte is of not the same range as long so there will be loss of data.

11. Giải thích các sửa đổi truy cập trong Java.

Trình sửa đổi truy cập là các từ khóa được xác định trước trong Java được sử dụng để hạn chế truy cập của một lớp, phương thức, hàm tạo và thành viên dữ liệu trong một lớp khác.Java hỗ trợ bốn công cụ sửa đổi truy cập:

  • Mặc định
  • Riêng tư
  • Được bảo vệ
  • Công cộng

bổ nghĩa

Mặc định

Riêng tư

Được bảo vệ

Công cộng

bổ nghĩa

Cùng lớp

Cùng lớp

Cùng lớp

Cùng lớp

Vâng

Cùng lớp

Vâng

Cùng lớp

Cùng lớp

Vâng

Cùng lớp

Vâng

Cùng lớp

Cùng lớp

Vâng

Vâng

Vâng

Cùng lớp

Cùng lớp

Vâng

Vâng

Vâng

Vâng

Cùng lớp

Vâng

Cùng một lớp con

không

Cùng một gói không phải là lớp

Lớp con gói khác nhau

Gói khác nhau không phải là lớp

12. Các giá trị mặc định cho các biến cục bộ là gì?

Các biến cục bộ không được khởi tạo cho bất kỳ giá trị mặc định nào, cả nguyên thủy và tham chiếu đối tượng.

  • Oops câu hỏi phỏng vấn java Representing essential features without the need to give out background details. The technique is used for creating a new suitable data type for some specific application.
  • 13. Lập trình hướng đối tượng là gì? & NBSP; All objects have their separate lifecycle, but ownership is present. No child object can belong to some other object except for the parent object.
  • OOPS là một mô hình lập trình tập trung xung quanh các đối tượng thay vì các chức năng.Nó không phải là một công cụ hay ngôn ngữ lập trình, nó là một mô hình được thiết kế để khắc phục các sai sót của lập trình thủ tục. & NBSP; The relationship between two objects, where each object has its separate lifecycle. There is no ownership.
  • Có nhiều ngôn ngữ theo các khái niệm OOPS - một số ngôn ngữ phổ biến là Java, Python và Ruby.Một số khung cũng tuân theo các khái niệm OOPS, chẳng hạn như Angular. A group of similar entities.
  • 14. Giải thích các khái niệm OOPS. Also called the death relationship, it is a specialized form of aggregation. Child objects don't have a lifecycle. As such, they automatically get deleted if the associated parent object is deleted.
  • Sau đây là các khái niệm OOPS khác nhau:Refers to the wrapping up of data and code into a single entity. This allows the variables of a class to be only accessible by the parent class and no other classes.
  • Trừu tượng: Đại diện cho các tính năng thiết yếu mà không cần đưa ra chi tiết nền.Kỹ thuật này được sử dụng để tạo một loại dữ liệu phù hợp mới cho một số ứng dụng cụ thể. When an object acquires the properties of some other object, it is called inheritance. It results in the formation of a parent-child relationship amongst classes involved. This offers a robust and natural mechanism of organizing and structuring software.
  • Tổng hợp: Tất cả các đối tượng có vòng đời riêng biệt, nhưng quyền sở hữu có mặt.Không đối tượng con nào có thể thuộc về một số đối tượng khác ngoại trừ đối tượng cha. Denotes an instance of a class. Any class can have multiple instances. An object contains the data as well as the method that will operate on the data
  • Liên kết: Mối quan hệ giữa hai đối tượng, trong đó mỗi đối tượng có vòng đời riêng biệt.Không có quyền sở hữu. Refers to the ability of a method, object, or variable to assume several forms.

Lớp: Một nhóm các thực thể tương tự.

Thành phần: còn được gọi là mối quan hệ tử vong, nó là một hình thức tổng hợp chuyên biệt.Đối tượng con không có vòng đời.Do đó, họ tự động bị xóa nếu đối tượng cha mẹ liên quan bị xóa.

Đóng gói: Đề cập đến việc gói dữ liệu và mã thành một thực thể duy nhất.Điều này cho phép các biến của một lớp chỉ có thể truy cập được bởi lớp cha và không có lớp nào khác.

Kế thừa: Khi một đối tượng thu được các thuộc tính của một số đối tượng khác, nó được gọi là kế thừa.Nó dẫn đến việc hình thành mối quan hệ cha mẹ và con cái giữa các lớp liên quan.Điều này cung cấp một cơ chế mạnh mẽ và tự nhiên của việc tổ chức và cấu trúc phần mềm.

Đối tượng: biểu thị một thể hiện của một lớp.Bất kỳ lớp nào cũng có thể có nhiều trường hợp.Một đối tượng chứa dữ liệu cũng như phương thức sẽ hoạt động trên dữ liệu

Đa hình: đề cập đến khả năng của một phương pháp, đối tượng hoặc biến để giả định một số hình thức.

Ra quyết định Câu hỏi phỏng vấn Java

15. Phân biệt giữa phá vỡ và tiếp tục.

Phá vỡ

Tiếp tục

Được sử dụng với cả câu lệnh Loop và Switch.

Chỉ được sử dụng với các câu lệnh Loop.

Nó kết thúc khối vòng hoặc khối chuyển đổi.

Nó không chấm dứt mà bỏ qua lần lặp tiếp theo.

classSample{

membervariables

methods()

}

Các lớp học, đối tượng và phương pháp Câu hỏi phỏng vấn Java

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}

16. Đối tượng là gì?

Một thể hiện của một lớp Java được gọi là một đối tượng.Hai thuộc tính quan trọng của một đối tượng Java là hành vi và trạng thái.Một đối tượng được tạo ngay khi JVM đi qua từ khóa mới.

Các biến và phương thức có thể được tạo ra phổ biến cho tất cả các đối tượng và được truy cập mà không sử dụng một đối tượng cụ thể bằng cách khai báo chúng tĩnh.Các thành viên tĩnh cũng có sẵn để được sử dụng bởi các lớp và phương pháp khác. & NBSP;

19. Ý bạn là gì khi xây dựng?

Một hàm tạo là một phương pháp có cùng tên với của lớp mà nó thuộc về.Ngay khi một đối tượng mới được tạo, một hàm tạo tương ứng với lớp sẽ được gọi.Mặc dù người dùng có thể tạo ra một hàm tạo rõ ràng, nhưng nó được tạo ra ngay khi một lớp được tạo.Điều này được gọi là hàm tạo mặc định.Các hàm tạo có thể bị quá tải.

Nếu một hàm tạo được tạo rõ ràng có tham số, thì cần phải tạo một hàm tạo khác mà không có tham số.

20. Các biến và biến thể hiện cục bộ là gì?

Các biến chỉ có thể truy cập vào phương thức hoặc khối mã trong đó chúng được khai báo được gọi là các biến cục bộ.Mặt khác, các biến thể hiện có thể truy cập được vào tất cả các phương thức trong một lớp. & NBSP;

Mặc dù các biến cục bộ được khai báo bên trong một phương thức hoặc khối mã, các biến thể hiện được khai báo bên trong một lớp nhưng bên ngoài một phương thức.Ngay cả khi không được gán, các biến thể hiện có một giá trị có thể là null, 0, 0,0 hoặc sai.Đây không phải là trường hợp với các biến cục bộ cần được gán một giá trị, trong đó không gán giá trị sẽ mang lại lỗi.Các biến cục bộ được tự động tạo khi một phương thức được gọi và phá hủy ngay khi phương thức thoát ra.Để tạo các biến thể hiện, từ khóa mới phải được sử dụng.

21. Phương pháp ghi đè là gì?

Top 100 câu hỏi phỏng vấn về java năm 2022

Phương pháp ghi đè trong Java cho phép một lớp con cung cấp một triển khai cụ thể của một phương thức đã được cung cấp bởi cha mẹ hoặc siêu lớp của nó.Phương thức ghi đè xảy ra nếu phương thức lớp con và phương thức siêu lớp có:

  • Cùng tên
  • Cùng một lập luận
  • Cùng loại trả về

22. Quá tải là gì?

Quá tải là hiện tượng khi hai hoặc nhiều phương thức khác nhau (quá tải phương thức) hoặc toán tử (quá tải toán tử) có cùng một biểu diễn.Ví dụ: toán tử + thêm hai giá trị số nguyên nhưng kết hợp hai chuỗi.Tương tự, một hàm quá tải được gọi là ADD có thể được sử dụng cho hai mục đích

  1. Để thêm hai số nguyên
  2. Để kết hợp hai chuỗi

Không giống như quá trình ghi đè phương thức, quá tải phương thức yêu cầu hai phương thức quá tải phải có cùng tên nhưng các đối số khác nhau.Các chức năng quá tải có thể có hoặc không có các loại trả về khác nhau.

23. Từ khóa cuối cùng đóng vai trò gì trong Java?Nó có tác động gì đến một biến, phương pháp và lớp?

Từ khóa cuối cùng trong Java là một công cụ sửa đổi không truy cập chỉ áp dụng cho một lớp, phương thức hoặc biến.Nó phục vụ một mục đích khác nhau dựa trên bối cảnh mà nó được sử dụng.

  • Với một lớp: Khi một lớp được khai báo là cuối cùng, thì nó sẽ bị vô hiệu hóa khỏi các lớp con, tức là không có lớp nào có thể mở rộng lớp cuối cùng.When a class is declared as final, then it is disabled from being subclassed i.e., no class can extend the final class.
  • Với một phương thức: Bất kỳ phương thức nào đi kèm với từ khóa cuối cùng đều bị hạn chế bị ghi đè bởi lớp con.Any method accompanying the final keyword is restricted from being overridden by the subclass.
  • Với một biến: Một biến theo sau là từ khóa cuối cùng không thể thay đổi giá trị mà nó giữ trong quá trình thực hiện chương trình.Vì vậy, nó hoạt động như một hằng số.A variable followed by the final keyword is not able to change the value that it holds during the program execution. So, it behaves like a constant.

Mảng, chuỗi và vectơ câu hỏi phỏng vấn java

24. Vẽ so sánh giữa Array và ArrayList.

Một mảng cần phải nêu kích thước trong thời gian khai báo, trong khi một danh sách mảng không nhất thiết yêu cầu kích thước vì nó thay đổi kích thước linh hoạt.Để đặt một đối tượng vào một mảng, cần phải chỉ định chỉ mục.Tuy nhiên, không có yêu cầu như vậy được áp dụng cho một danh sách mảng.Trong khi một danh sách mảng được tham số hóa, một mảng không được tham số hóa.

25. Sự khác biệt giữa String, StringBuilder và StringBuffer là gì?

Các biến chuỗi được lưu trữ trong một nhóm chuỗi không đổi.Với sự thay đổi trong tham chiếu chuỗi, không thể xóa giá trị cũ.Ví dụ: nếu một chuỗi đã lưu trữ một giá trị "cũ", thì việc thêm giá trị mới "mới" sẽ không xóa giá trị cũ.Nó vẫn sẽ ở đó, tuy nhiên, trong một trạng thái không hoạt động.Trong một stringbuffer, các giá trị được lưu trữ trong một ngăn xếp.Với sự thay đổi trong tham chiếu chuỗi, giá trị mới thay thế giá trị cũ hơn.StringBuffer được đồng bộ hóa (và do đó, an toàn cho luồng) và cung cấp hiệu suất chậm hơn so với StringBuilder, cũng là một chuỗibuffer nhưng không được đồng bộ hóa.Do đó, hiệu suất nhanh hơn trong StringBuilder so với StringBuffer.

26. Nhóm chuỗi là gì?

Nhóm chuỗi là một tập hợp các chuỗi được lưu trữ trong bộ nhớ heap đề cập đến.Bất cứ khi nào một đối tượng mới được tạo, nó được kiểm tra nếu nó đã có trong nhóm chuỗi.Nếu nó đã có mặt, thì cùng một tham chiếu được trả về biến, nếu không một đối tượng mới được tạo trong nhóm chuỗi và tham chiếu tương ứng được trả về.

Câu hỏi phỏng vấn Java nâng caoJava Interview Questions

Giao diện và các lớp trừu tượng Câu hỏi phỏng vấn Java

27. Bạn biết gì về giao diện?

Giao diện Java là một mẫu chỉ có khai báo phương thức và không thực hiện phương thức.Đó là một cách giải quyết để đạt được nhiều kế thừa trong Java.Một số đáng nhớ các điểm quan trọng liên quan đến giao diện Java là:

  • Một lớp thực hiện giao diện phải cung cấp một triển khai cho tất cả các phương thức được khai báo trong giao diện.
  • Tất cả các phương pháp trong một giao diện là khoảng trống trừu tượng công khai nội bộ.
  • Tất cả các biến trong một giao diện là chung kết tĩnh công khai nội bộ.
  • Các lớp không mở rộng nhưng thực hiện giao diện.

28. Một lớp trừu tượng khác với giao diện như thế nào?

Có một số khác biệt giữa một lớp trừu tượng và giao diện trong Java, được tóm tắt như sau:

  • Thành phần: Một lớp trừu tượng chứa các biến thể hiện, trong khi giao diện chỉ có thể chứa các hằng số. An abstract class contains instance variables, whereas an interface can contain only constants.
  • Hàm tạo và khởi tạo: Mặc dù giao diện không có hàm tạo cũng như nó có thể được khởi tạo, một lớp trừu tượng có thể có một hàm tạo mặc định được gọi bất cứ khi nào lớp con bê tông được khởi tạo. While an interface has neither a constructor nor it can be instantiated, an abstract class can have a default constructor that is called whenever the concrete subclass is instantiated.
  • Việc thực hiện các phương thức - Tất cả các lớp thực hiện giao diện cần cung cấp triển khai cho tất cả các phương thức có trong đó.Tuy nhiên, một lớp mở rộng lớp trừu tượng không yêu cầu thực hiện tất cả các phương thức có trong đó.Chỉ các phương pháp trừu tượng cần được thực hiện trong lớp con bê tông. All classes that implement the interface need to provide an implementation for all the methods contained by it. A class that extends the abstract class, however, doesn't require implementing all the methods contained in it. Only abstract methods need to be implemented in the concrete subclass.
  • Loại phương pháp: Bất kỳ lớp trừu tượng nào cũng có cả các phương pháp trừu tượng cũng như không phải.Mặt khác, giao diện chỉ có một phương thức trừu tượng duy nhất. Any abstract class has both abstract as well as non-abstract methods. Interface, on the other hand, has only a single abstract method.

29. Vui lòng giải thích lớp trừu tượng và phương pháp trừu tượng.

Một lớp trừu tượng trong Java là một lớp không thể khởi tạo.Một lớp như vậy thường được sử dụng để cung cấp một cơ sở cho các lớp con để mở rộng cũng như thực hiện các phương thức trừu tượng và ghi đè hoặc sử dụng các phương thức được triển khai được xác định trong lớp trừu tượng. & NBSP;

Để tạo ra một lớp trừu tượng, nó cần được theo sau bởi từ khóa trừu tượng.Bất kỳ lớp trừu tượng nào cũng có thể có cả các phương pháp trừu tượng cũng như không Abstract.Một phương pháp trong Java chỉ có tuyên bố và không thực hiện được gọi là một phương pháp trừu tượng.Ngoài ra, một tên phương thức trừu tượng được theo sau bởi từ khóa trừu tượng.Bất kỳ lớp con cụ thể nào mở rộng lớp trừu tượng phải cung cấp một triển khai cho các phương thức trừu tượng.

30. Nhiều kế thừa là gì?Java có hỗ trợ nhiều kế thừa không?Nếu không, làm thế nào nó có thể đạt được?

Nếu một lớp con hoặc lớp con có hai lớp cha, điều đó có nghĩa là nó kế thừa các thuộc tính từ hai lớp cơ sở;Nó có nhiều kế thừa.Java không có nhiều kế thừa vì trong trường hợp các lớp cha có cùng tên phương thức.Sau đó, vào thời gian chạy, nó trở nên mơ hồ và trình biên dịch không thể quyết định phương pháp nào để thực hiện từ lớp con.

Gói câu hỏi phỏng vấn java

31. Gói trong Java là gì?Nêu một số lợi thế.

Top 100 câu hỏi phỏng vấn về java năm 2022

Các gói là cách của Java để nhóm nhiều lớp và/hoặc giao diện của Java với nhau.Chức năng của các đối tượng quyết định cách chúng được nhóm.Packagers hoạt động như "container" cho các lớp học.

Nhập ngũ dưới đây là những lợi thế của các gói:

  1. Các lớp của các chương trình khác có thể được tái sử dụng.
  2. Hai lớp có cùng có thể tồn tại trong hai gói khác nhau.
  3. Các gói có thể ẩn các lớp, do đó từ chối quyền truy cập vào một số chương trình và lớp học chỉ dành cho sử dụng nội bộ.
  4. Họ cũng tách biệt thiết kế khỏi mã hóa.

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

32. Làm thế nào để bạn tạo một chủ đề trong Java?Cho ví dụ.

Để tạo một chủ đề trong Java, có hai tùy chọn:

  • Mở rộng lớp luồng: Chủ đề có sẵn trong lớp java.lang.thread.Để tạo một luồng, bạn cần mở rộng một lớp luồng và ghi đè phương thức chạy.Ví dụ,: The thread is available in the java.lang.Thread class. To make a thread, you need to extend a thread class and override the run method. For example,
publicclassAdditionextendsThread {

publicvoidrun() {

}

}

Một nhược điểm của việc sử dụng lớp luồng là không thể mở rộng bất kỳ lớp nào khác.

Tuy nhiên, có thể làm quá tải phương thức Run () trong lớp

  • Triển khai giao diện Runnable: Một cách khác để tạo một luồng trong Java là bằng cách triển khai giao diện có thể chạy được.Để làm như vậy, cần phải cung cấp phương thức thực hiện cho phương thức Run () được xác định như sau: Another way of making a thread in Java is by implementing a runnable interface. For doing so, there is the need to provide the implementation for the run() method that is defined as follows:
interface. Forexample,

publicclassAdditionimplementsRunnable {

publicvoidrun() {

}

}

33. Tại sao chúng ta sử dụng phương thức sản lượng ()?

Phương thức sản lượng () thuộc về lớp luồng.Nó chuyển luồng hiện đang chạy sang trạng thái Runnable và cũng cho phép các luồng khác thực thi.Nói cách khác, nó mang lại cho các chủ đề ưu tiên như nhau cơ hội để chạy.Vì sản lượng () là một phương thức tĩnh, nó không giải phóng bất kỳ khóa nào.

34. Giải thích vòng đời chủ đề trong Java.

Top 100 câu hỏi phỏng vấn về java năm 2022

Vòng đời chủ đề có các trạng thái sau và tuân theo thứ tự sau:

  • Mới: Trong trạng thái đầu tiên của vòng đời luồng, phiên bản luồng được tạo và phương thức start () vẫn chưa được gọi.Các chủ đề được coi là sống ngay bây giờ.In the very first state of the thread lifecycle, the thread instance is created, and the start() method is yet to be invoked. The thread is considered alive now.
  • Runnable: Sau khi gọi phương thức start (), nhưng trước khi gọi phương thức chạy (), một luồng ở trạng thái có thể chạy được.Một chủ đề cũng có thể trở lại trạng thái có thể chờ đợi hoặc ngủ. After invoking the start() method, but before invoking the run() method, a thread is in the runnable state. A thread can also return to the runnable state from waiting or sleeping.
  • Chạy: Chủ đề nhập trạng thái chạy sau phương thức Run () được gọi.Đây là khi chủ đề bắt đầu thực thi. The thread enters the running state after the run() method is invoked. This is when the thread begins execution.
  • Không chạy: Mặc dù chủ đề còn sống, nhưng nó không thể chạy.Thông thường, nó trở lại trạng thái Runnable sau một thời gian. Although the thread is alive, it is not able to run. Typically, it returns to the runnable state after some time.
  • Đã chấm dứt: Chủ đề nhập trạng thái chấm dứt sau khi phương thức Run () hoàn thành việc thực thi.Nó không còn sống bây giờ. The thread enters the terminated state once the run() method completes its execution. It is not alive now.

35. Khi nào giao diện Runnable được ưu tiên hơn lớp luồng và ngược lại?

Trong Java, chỉ có thể mở rộng một lớp.Do đó, lớp luồng chỉ được mở rộng khi không có lớp nào khác cần được mở rộng.Nếu một lớp được yêu cầu mở rộng một số lớp khác ngoài lớp luồng, thì chúng ta cần sử dụng giao diện Runnable.

36. Vẽ so sánh giữa các phương thức Thông báo () và thông báo ().

Phương thức thông báo () được sử dụng để gửi tín hiệu để đánh thức một luồng duy nhất trong nhóm chờ.Ngược lại, phương thức notifyall () được sử dụng để gửi tín hiệu để đánh thức tất cả các luồng trong nhóm chờ.

37. Làm thế nào bạn sẽ phân biệt các quy trình với các chủ đề?

Có một số khác biệt cơ bản giữa một quy trình và một luồng, được nêu như sau:

  • Định nghĩa: Một quy trình là một thể hiện thực thi của một chương trình trong khi, một luồng là một tập hợp con của một quy trình.A process is an executing instance of a program whereas, a thread is a subset of a process.
  • Thay đổi: Một thay đổi được thực hiện đối với quy trình cha mẹ không ảnh hưởng đến quá trình con.Tuy nhiên, một thay đổi trong luồng chính có thể mang lại những thay đổi trong hành vi của các luồng khác của cùng một quy trình.A change made to the parent process doesn't affect child processes. However, a change in the main thread can yield changes in the behavior of other threads of the same process.
  • Truyền thông-Trong khi các quy trình yêu cầu giao tiếp giữa các quá trình để giao tiếp với các quy trình anh chị em, các luồng có thể giao tiếp trực tiếp với các chủ đề khác thuộc cùng một quy trình. While processes require inter-process communication for communicating with sibling processes, threads can directly communicate with other threads belonging to the same process.
  • Kiểm soát: Các quy trình được kiểm soát bởi hệ điều hành và chỉ có thể kiểm soát các quy trình trẻ em.Ngược lại, các luồng được lập trình viên kiểm soát và có khả năng thực hiện kiểm soát các luồng của cùng một quy trình mà chúng thuộc về. Processes are controlled by the operating system and can control only child processes. On the contrary, threads are controlled by the programmer and are capable of exercising control over threads of the same process to which they belong.
  • Sự phụ thuộc: Các quy trình là các thực thể độc lập trong khi các chủ đề là các thực thể phụ thuộc Processes are independent entities while threads are dependent entities
  • Bộ nhớ: Chủ đề chạy trong không gian bộ nhớ được chia sẻ, nhưng các quá trình chạy trong các không gian bộ nhớ riêng biệt. Threads run in shared memory spaces, but processes run in separate memory spaces.

38. Phương thức tham gia () là gì?Cho một ví dụ.

Chúng tôi sử dụng phương thức tham gia () để tham gia một luồng với phần cuối của luồng hiện đang chạy.Nó là một phương pháp không tĩnh và có phiên bản quá tải.Xem xét ví dụ dưới đây:

publicstaticvoidmain (String[] args) {

Thread t = new Thread();

t.start();

t.join();

}

Chủ đề chính bắt đầu thực thi trong ví dụ được đề cập ở trên.Ngay khi thực thi đạt đến mã t.start (), thì luồng t bắt đầu ngăn xếp của nó để thực thi.JVM chuyển đổi giữa luồng chính và luồng ở đó.Khi việc thực thi đạt đến t.join (), thì chỉ riêng luồng t được thực thi và được phép hoàn thành nhiệm vụ của mình.Sau đó, luồng chính tiếp tục thực thi.

39. Làm thế nào để bạn thực hiện một chủ đề dừng trong java?

Có ba phương thức trong Java để ngăn chặn việc thực hiện một luồng:

  • Chặn: Phương pháp này được sử dụng để đặt luồng ở trạng thái bị chặn.Việc thực hiện tiếp tục ngay khi điều kiện chặn được đáp ứng.Chẳng hạn, serversocket.accept () là một phương thức chặn lắng nghe các kết nối ổ cắm đến và tiếp tục luồng bị chặn chỉ khi kết nối được thực hiện. This method is used to put the thread in a blocked state. The execution resumes as soon as the condition of the blocking is met. For instance, the ServerSocket.accept() is a blocking method that listens for incoming socket connections and resumes the blocked thread only when a connection is made.
  • Ngủ: Phương pháp này được sử dụng để trì hoãn việc thực hiện luồng trong một thời gian.Một chủ đề mà phương thức ngủ () được sử dụng được cho là vào trạng thái ngủ.Nó đi vào trạng thái Runnable ngay khi thức dậy, tức là, trạng thái ngủ đã kết thúc.Thời gian mà chủ đề cần vào trạng thái giấc ngủ được đề cập bên trong niềng răng của phương pháp Sleep ().Nó là một phương pháp tĩnh. This method is used for delaying the execution of the thread for some time. A thread upon which the sleep() method is used is said to enter the sleep state. It enters the runnable state as soon as it wakes up i.e., the sleep state is finished. The time for which the thread needs to enter the sleep state is mentioned inside the braces of the sleep() method. It is a static method.
  • Chờ đợi: Mặc dù nó có thể được gọi trên bất kỳ đối tượng Java nào, phương thức chờ () chỉ có thể được gọi từ một khối đồng bộ. Although it can be called on any Java object, the wait() method can only be called from a synchronized block.

Ngoại lệ xử lý các câu hỏi phỏng vấn Java

40. Các loại ngoại lệ khác nhau là gì?Làm thế nào để bạn xử lý chúng?

Java có quy định cho hai loại ngoại lệ:

  • Các ngoại lệ đã kiểm tra: Các lớp mở rộng lớp có thể ném, ngoại trừ ngoại lệ và lỗi thời gian chạy, được gọi là ngoại lệ đã kiểm tra.Các ngoại lệ như vậy được kiểm tra bởi trình biên dịch trong thời gian biên dịch.Các loại ngoại lệ này phải có các khối thử/bắt thích hợp hoặc được khai báo bằng cách sử dụng từ khóa ném.ClassNotFoundException là một ngoại lệ được kiểm tra. Classes that extend the Throwable class, except Runtime exception and Error, are called checked exceptions. Such exceptions are checked by the compiler during the compile time. These types of exceptions must either have appropriate try/catch blocks or be declared using the throws keyword. ClassNotFoundException is a checked exception.
  • Các ngoại lệ không được kiểm soát: Các ngoại lệ như vậy không được trình biên dịch kiểm tra trong thời gian biên dịch.Như vậy, trình biên dịch không cần phải xử lý các ngoại lệ không được kiểm soát.Ngoại lệ số học và arrayIndexoutOfBound ngoại lệ là ngoại lệ không được kiểm soát. Such exceptions aren't checked by the compiler during the compile time. As such, the compiler doesn't necessitate handling unchecked exceptions. Arithmetic Exception and ArrayIndexOutOfBounds Exception are unchecked exceptions.

Các trường hợp ngoại lệ trong Java được xử lý theo hai cách:

Khai báo từ khóa ném: Chúng tôi có thể khai báo ngoại lệ bằng cách sử dụng từ khóa ném ở cuối phương thức.Ví dụ: We can declare the exception using throws keyword at the end of the method. For example:

classExceptionCheck{

publicstaticvoidmain(String[] args){

add();

}

publicvoidadd() throws Exception{

addition();

}

}

Sử dụng thử/bắt: Bất kỳ phân đoạn mã nào dự kiến sẽ mang lại một ngoại lệ được bao quanh bởi khối thử.Khi xảy ra ngoại lệ, nó bị bắt bởi khối bắt theo khối thử.Ví dụ: Any code segment that is expected to yield an exception is surrounded by the try block. Upon the occurrence of the exception, it is caught by the catch block that follows the try block. For example:

classExceptionCheck{

publicstaticvoidmain (String[] args) {

add();

}

publicvoidadd(){

try{

addition();

}

catch(Exception e)

{

e.printStacktrace();

}

}

}

41. Vẽ hệ thống phân cấp ngoại lệ Java.

Top 100 câu hỏi phỏng vấn về java năm 2022

42. Có thể viết nhiều khối bắt trong một khối thử không?

Có, có thể viết một số khối bắt trong một khối thử duy nhất.Tuy nhiên, cách tiếp cận cần phải từ cụ thể đến chung.Ví dụ sau đây cho thấy nó:

publicclassExample {

publicstaticvoidmain(String args[]) {

try {

int a[]= newint[10];

a[10]= 10/0;

}

catch(ArithmeticException e)

{

System.out.println("Arithmetic exception in first catch block");

}

catch(ArrayIndexOutOfBoundsException e)

{

System.out.println("Array index out of bounds in second catch block");

}

catch(Exception e)

{

System.out.println("Any exception in third catch block");

}

}

43. Từ khóa ném khác với từ khóa ném như thế nào?

Mặc dù từ khóa ném cho phép khai báo một ngoại lệ, từ khóa ném được sử dụng để ném rõ ràng một ngoại lệ. & NBSP;

Các trường hợp ngoại lệ đã kiểm tra không thể được truyền chỉ bằng cú ném, nhưng ném cho phép làm như vậy mà không cần bất cứ điều gì khác. & NBSP;

Từ khóa ném được theo sau bởi một lớp, trong khi từ khóa ném được theo sau bởi một ví dụ.Từ khóa ném được sử dụng trong phương thức, nhưng từ khóa ném được sử dụng với chữ ký phương thức. & NBSP;

Hơn nữa, không thể ném nhiều ngoại lệ, nhưng có thể khai báo nhiều trường hợp ngoại lệ.

44. Giải thích các trường hợp ngoại lệ khác nhau Xử lý các từ khóa trong Java.

Có hai từ khóa xử lý ngoại lệ quan trọng trong Java, tiếp theo là từ khóa thứ ba, có thể hoặc không thể được sử dụng sau khi xử lý các ngoại lệ.

try:

Nếu và khi một phân đoạn mã có khả năng có một bất thường hoặc lỗi, nó sẽ được đặt trong một khối thử.Khi ngoại lệ được nâng lên, nó được xử lý và bắt bởi khối bắt.

Khối thử phải có bắt () hoặc cuối cùng () hoặc cả hai khối sau nó.

catch:

Khi một ngoại lệ được nâng lên trong khối thử, nó được xử lý trong khối bắt.

final:

Khối này được thực hiện bất kể ngoại lệ.Nó có thể được đặt sau khi thử {} hoặc bắt {}.

45. Giải thích sự lan truyền ngoại lệ.

Phương pháp ở đầu ngăn xếp ném một ngoại lệ nếu nó không bị bắt.Nó chuyển sang phương pháp tiếp theo và tiếp tục cho đến khi bị bắt.

Example:

public class Sum()

{

publicstaticvoidmain(String args[])

{

addition()

}

publicvoidaddition()

{

add();

}

}

Ngăn xếp của mã trên là:

classSample{

membervariables

methods()

}
0

Nếu một ngoại lệ xảy ra trong phương thức add () không bị bắt, thì nó sẽ chuyển sang bổ sung phương thức ().Sau đó, nó được chuyển sang phương thức chính (), trong đó luồng thực thi dừng lại.Nó được gọi là nhân giống ngoại lệ.

Tệp xử lý các câu hỏi phỏng vấn Java

46. Có phải một tên tệp trống với phần mở rộng .java một tên tệp hợp lệ không?

Có, Java cho phép chúng tôi lưu tệp Java của chúng tôi chỉ bằng .Java.Nó được biên soạn bởi Javac và được điều hành bởi tên lớp Java.Đây là một ví dụ:

classSample{

membervariables

methods()

}
1

Để biên dịch: javac.java

Để chạy: java bất kỳ

Bộ sưu tập câu hỏi phỏng vấn java

47. Bộ sưu tập là gì?Thành phần của họ là gì?

Một nhóm các đối tượng trong Java được gọi là bộ sưu tập.Gói java.util chứa, cùng với các cơ sở ngày và thời gian, quốc tế hóa, các lớp thu thập kế thừa, v.v., các lớp và giao diện khác nhau để thu thập.Ngoài ra, các bộ sưu tập có thể được coi là một khung được thiết kế để lưu trữ các đối tượng và điều khiển thiết kế trong đó các đối tượng được lưu trữ.Bạn có thể sử dụng các bộ sưu tập để thực hiện các hoạt động sau trên các đối tượng:

  • Xóa
  • Chèn
  • Thao tác
  • Đang tìm kiếm
  • Sắp xếp

Sau đây là các thành phần khác nhau của khung bộ sưu tập:

  • Các lớp: Danh sách mảng, danh sách, danh sách và vector được liên kết Array List, Linked List, Lists, and Vector
  • Giao diện: Bộ sưu tập, Danh sách, Bản đồ, Hàng đợi, Bộ, Bản đồ được sắp xếp và Bộ sắp xếp Collection, List, Map, Queue, Set, Sorted Map, and Sorted Set
  • Bản đồ: Hashmap, Hashtable, LinkedHashMap và Treemap HashMap, HashTable, LinkedHashMap, and TreeMap
  • Hàng đợi: Hàng đợi ưu tiên Priority Queue
  • Bộ: Bộ băm, bộ băm liên kết và bộ cây Hash Set, Linked Hash Set, and Tree Set

48. Làm thế nào để bạn phân biệt Hashmap và Hashtable?

Hashmap trong Java là một lớp thu thập dựa trên bản đồ, được sử dụng để lưu trữ các cặp khóa & giá trị.Nó được ký hiệu là Hashmap hoặc Hashmap Hashtable là một mảng của một danh sách, trong đó mỗi danh sách được gọi là một cái xô. & NBSP;

Các giá trị có trong một hashtable là duy nhất và phụ thuộc vào khóa.Các phương pháp không được đồng bộ hóa trong hashmap, trong khi các phương pháp chính được đồng bộ hóa trong Hashtable. & NBSP;

Tuy nhiên, Hashmap không có an toàn chủ đề, trong khi Hashtable có như nhau. & NBSP;

Đối với các giá trị lặp, HashMap sử dụng trình lặp và Hashtable sử dụng một bảng điều khiển.Hashtable không cho phép bất cứ thứ gì là null, trong khi HashMap cho phép một khóa null và một số giá trị null. & NBSP;

Về hiệu suất, Hashtable là chậm.So sánh, Hashmap nhanh hơn.

49. Bản đồ là gì và các loại là gì?

Bản đồ Java là một đối tượng ánh xạ các phím đến các giá trị.Nó không thể chứa các khóa trùng lặp và mỗi khóa chỉ có thể ánh xạ tới một giá trị.Để xác định xem hai khóa có giống nhau hay khác biệt hay không, bản đồ sử dụng phương thức Equals ().Có 4 loại bản đồ trong Java, được mô tả như sau:

  • Hashmap: Đây là một bản đồ chưa được đặt hàng và chưa được phân loại và do đó, là một lựa chọn tốt khi không có sự nhấn mạnh vào thứ tự.Hashmap cho phép một khóa null và nhiều giá trị null và không duy trì bất kỳ thứ tự chèn nào.It is an unordered and unsorted map and hence, is a good choice when there is no emphasis on the order. A HashMap allows one null key and multiple null values and doesn't maintain any insertion order.
  • Hashtable: Không cho phép bất cứ điều gì NULL và có các phương thức được đồng bộ hóa.Vì nó cho phép an toàn chủ đề, hiệu suất là chậm.Doesn't allow anything null and has methods that are synchronized. As it allows for thread safety, the performance is slow.
  • LinkedHashMap: chậm hơn so với hashmap nhưng duy trì thứ tự chèn và có một lần lặp nhanh hơn. Slower than a HashMap but maintains insertion order and has a faster iteration.
  • Treemap: Một bản đồ được sắp xếp cung cấp hỗ trợ để xây dựng một thứ tự sắp xếp bằng cách sử dụng hàm tạo. A sorted Map providing support for constructing a sort order using a constructor.

50. Hàng đợi ưu tiên là gì?

Một hàng đợi ưu tiên, giống như một hàng đợi thông thường, là một loại dữ liệu trừu tượng, nhưng nó có mức độ ưu tiên liên quan đến từng yếu tố chứa nó. & NBSP;

Phần tử có ưu tiên cao được phục vụ trước phần tử có mức độ ưu tiên thấp trong hàng đợi ưu tiên.Các yếu tố trong hàng đợi ưu tiên được đặt hàng theo bộ so sánh hoặc tự nhiên.Thứ tự của các yếu tố trong một hàng đợi ưu tiên thể hiện ưu tiên tương đối của chúng.

51. Bộ là gì?Giải thích các loại trong bộ sưu tập Java.

Trong Java, một bộ là một tập hợp các đối tượng độc đáo.Nó sử dụng phương thức Equals () để xác định xem hai đối tượng có giống nhau hay không.Các loại tập hợp khác nhau trong các bộ sưu tập Java là:

  1. Đặt Hash: Một tập hợp không được đặt hàng và chưa được phân loại sử dụng mã băm của đối tượng để thêm các giá trị.Được sử dụng khi thứ tự của bộ sưu tập không quan trọng An unordered and unsorted set that uses the hash code of the object for adding values. Used when the order of the collection isn't important
  2. Linked Hash Set: Đây là phiên bản đặt hàng của bộ băm duy trì danh sách liên kết gấp đôi của tất cả các yếu tố.Được sử dụng khi thứ tự lặp là bắt buộc.Thứ tự chèn giống như cách của các phần tử được thêm vào tập hợp. This is an ordered version of the hash set that maintains a doubly-linked list of all the elements. Used when iteration order is mandatory. Insertion order is the same as that of how elements are added to the Set.
  3. Cây Set: Một trong hai bộ sưu tập được sắp xếp trong Java, nó sử dụng cấu trúc cây màu đen và đảm bảo rằng các yếu tố có mặt theo thứ tự tăng dần.One of the two sorted collections in Java, it uses Read-Black tree structure and ensures that the elements are present in the ascending order.

52. Điều gì được đặt hàng và sắp xếp khi nói đến các bộ sưu tập?

  • Được đặt hàng: Các giá trị được lưu trữ trong một bộ sưu tập theo một thứ tự cụ thể, nhưng thứ tự độc lập với giá trị.Ví dụ: Danh sáchValues are stored in a collection in a specific order, but the order is independent of the value. Example: List
  • Sắp xếp: Bộ sưu tập có một thứ tự phụ thuộc vào giá trị của một phần tử.Ví dụ: Sắp xếpThe collection has an order which is dependent on the value of an element. Example: SortedSet

Câu hỏi phỏng vấn Java linh tinh & NBSP;

53. Các loại người thu gom rác khác nhau trong Java là gì?

Ngôn ngữ lập trình Java có bốn loại người thu gom rác:

  1. Trình thu gom rác nối tiếp: Chỉ sử dụng một luồng duy nhất để thu gom rác, bộ thu rác nối tiếp hoạt động bằng cách giữ tất cả các luồng ứng dụng.Nó được thiết kế đặc biệt cho môi trường đơn luồng.Bởi vì bộ thu rác nối tiếp đóng băng tất cả các luồng ứng dụng trong khi thực hiện thu thập rác, nên nó chỉ phù hợp nhất cho các chương trình dòng lệnh.Để sử dụng bộ thu rác nối tiếp, người ta cần bật đối số -XX:+useerialgc JVM. Using only a single thread for garbage collection, the serial garbage collector works by holding all the application threads. It is designed especially for single-threaded environments. Because serial garbage collector freezes all application threads while performing garbage collection, it is most suitable for command-line programs only. For using the serial garbage collector, one needs to turn on the -XX:+UseSerialGC JVM argument.
  2. Trình thu gom rác song song: Còn được gọi là bộ thu thông lượng, bộ thu gom rác song song là bộ thu rác mặc định của JVM.Nó sử dụng nhiều luồng để thu gom rác, và giống như bộ sưu tập rác nối tiếp đóng băng tất cả các luồng ứng dụng trong quá trình thu gom rác. Also known as the throughput collector, the parallel garbage collector is the default garbage collector of the JVM. It uses multiple threads for garbage collection, and like a serial garbage collector freezes all application threads during garbage collection.
  3. Trình thu gom rác CMS: viết tắt của quét nhãn hiệu đồng thời, Bộ thu gom rác CMS sử dụng nhiều luồng để quét bộ nhớ heap để đánh dấu các trường hợp để trục xuất, sau đó là quét các trường hợp được đánh dấu.Chỉ có hai kịch bản khi Trình thu gom rác CMS giữ tất cả các luồng ứng dụng: Short for Concurrent Mark Sweep, CMS garbage collector uses multiple threads for scanning the heap memory for marking instances for eviction, followed by sweeping the marked instances. There are only two scenarios when the CMS garbage collector holds all the application threads:
    • Khi đánh dấu các đối tượng được tham chiếu trong không gian thế hệ được thuê.
    • Nếu có sự thay đổi trong bộ nhớ heap trong khi thực hiện bộ sưu tập rác, CMS Garbage Collector đảm bảo thông lượng ứng dụng tốt hơn so với các bộ thu rác song song bằng cách sử dụng nhiều tài nguyên CPU hơn.Để sử dụng Trình thu thập rác CMS, đối số JVM XX:+useParnewGC cần được bật.
  4. G1 Garbage Collector: Được sử dụng cho các khu vực bộ nhớ đống lớn, bộ thu rác G1 hoạt động bằng cách tách bộ nhớ heap thành nhiều vùng và sau đó thực hiện bộ sưu tập rác trong chúng song song.Không giống như bộ thu rác CMS nén bộ nhớ trên các tình huống STW (Stop the World), bộ thu rác G1 nén không gian đống miễn phí ngay sau khi đòi lại bộ nhớ.Ngoài ra, người thu gom rác G1 ưu tiên khu vực có nhiều rác nhất.Bật đối số JVM JVM Used for large heap memory areas, G1 garbage collector works by separating the heap memory into multiple regions and then executing garbage collection in them in parallel. Unlike the CMS garbage collector that compacts the memory on STW (Stop The World) situations, G1 garbage collector compacts the free heap space right after reclaiming the memory. Also, the G1 garbage collector prioritizes the region with the most garbage. Turning on the –XX:+UseG1GC JVM argument is required for using the G1 garbage collector.

54. Bạn hiểu gì khi đồng bộ hóa?Nhược điểm quan trọng nhất của nó là gì?

Nếu một số chủ đề cố gắng truy cập một khối mã duy nhất, thì có khả năng tạo ra kết quả không chính xác.Đồng bộ hóa được sử dụng để ngăn chặn điều này.Sử dụng từ khóa đồng bộ hóa làm cho một luồng cần một khóa để truy cập mã được đồng bộ hóa.Đơn giản, đồng bộ hóa chỉ cho phép một luồng truy cập một khối mã tại một thời điểm.Mỗi đối tượng Java có khóa và mỗi khóa chỉ có một khóa.Một luồng chỉ có thể truy cập một phương thức được đồng bộ hóa nếu nó có thể lấy chìa khóa vào khóa của đối tượng.Ví dụ sau đây cho thấy đồng bộ hóa:

classSample{

membervariables

methods()

}
2

Lưu ý: Nên tránh thực hiện đồng bộ hóa cho tất cả các phương pháp.Điều này là do khi chỉ có một luồng có thể truy cập mã được đồng bộ hóa, luồng tiếp theo cần phải chờ.Do đó, nó dẫn đến hiệu suất chậm hơn của chương trình.: It is recommended to avoid implementing synchronization for all methods. This is because when only one thread can access the synchronized code, the next thread needs to wait. Consequently, it results in slower performance of the program.

55. Sự khác biệt giữa Execute (), ExecuteQuery () và ExecuteUpdate () là gì?

  • EXECUTE (): Được sử dụng để thực hiện truy vấn SQL.Nó trả về true nếu kết quả là một kết quả, như chạy các truy vấn chọn và sai nếu kết quả không phải là kết quả, chẳng hạn như chạy chèn hoặc truy vấn cập nhật.Used for executing an SQL query. It returns TRUE if the result is a ResultSet, like running Select queries, and FALSE if the result is not a ResultSet, such as running an Insert or an Update query.
  • ExecuteQuery (): Được sử dụng để thực thi các truy vấn chọn.Nó trả về kết quả, không phải là null, ngay cả khi không có bản ghi nào khớp với truy vấn.Phương thức ExecuteQuery () phải được sử dụng khi thực thi các truy vấn chọn để nó ném java.sql.sqlexception với phương thức 'ExecuteQuery không thể được sử dụng để cập nhật thông báo khi ai đó cố gắng thực thi câu lệnh chèn hoặc cập nhật. Used for executing Select queries. It returns the ResultSet, which is not null, even if no records are matching the query. The executeQuery() method must be used when executing select queries so that it throws the java.sql.SQLException with the 'executeQuery method cannot be used for update' message when someone tries to execute an Insert or Update statement.
  • ExecuteUpdate (): Được sử dụng để thực thi các câu lệnh Xóa/Chèn/Cập nhật hoặc các câu lệnh DDL không trả về.Đầu ra khác nhau tùy thuộc vào việc báo cáo là câu lệnh thao tác dữ liệu (DML) hay câu lệnh Ngôn ngữ định nghĩa dữ liệu (DDL).Đầu ra là một số nguyên và bằng tổng số hàng cho trường hợp trước và 0 cho trường hợp sau. Used for executing Delete/Insert/Update statements or DDL statements that return nothing. The output varies depending on whether the statements are Data Manipulation Language (DML) statements or Data Definition Language (DDL) statements. The output is an integer and equals the total row count for the former case, and 0 for the latter case.

Lưu ý: Phương thức EXECUTE () chỉ cần được sử dụng trong một kịch bản khi không có gì chắc chắn về loại câu lệnh.Trong tất cả các trường hợp khác, hoặc sử dụng phương thức ExecuteQuery () hoặc ExecuteUpdate ().: The execute() method needs to be used only in a scenario when there is no certainty about the type of statement. In all other cases, either use executeQuery() or executeUpdate() method.

56. Cung cấp một ví dụ về kiến trúc ngủ đông.

Top 100 câu hỏi phỏng vấn về java năm 2022

57. Bạn có thể trình bày cách xóa cookie trong JSP bằng ví dụ mã không?

Mã sau đây cho thấy việc xóa cookie trong JSP:

classSample{

membervariables

methods()

}
3

58. Viết các ví dụ mã phù hợp để chứng minh việc sử dụng cuối cùng, cuối cùng và hoàn thiện.

Cuối cùng: & nbsp; Từ khóa cuối cùng được sử dụng để hạn chế một lớp, phương thức và biến.Một lớp cuối cùng không thể được kế thừa, một phương pháp cuối cùng bị vô hiệu hóa quá mức và một biến cuối cùng trở thành một hằng số, giá trị của nó không thể thay đổi. The final keyword is used for restricting a class, method, and variable. A final class can't be inherited, a final method is disabled from overriding, and a final variable becomes a constant i.e., its value can't be changed.

classSample{

membervariables

methods()

}
4

Cuối cùng: Bất kỳ mã nào bên trong khối cuối cùng sẽ được thực thi, bất kể ngoại lệ có được xử lý hay không.Any code inside the final block will be executed, irrespective of whether an exception is handled or not.

classSample{

membervariables

methods()

}
5

Hoàn thiện: Phương pháp hoàn thiện thực hiện làm sạch ngay trước khi đối tượng được thu thập rác. The finalize method performs the clean up just before the object is garbage collected.

classSample{

membervariables

methods()

}
6

59. Biến dễ bay hơi phục vụ mục đích gì?

Giá trị được lưu trữ trong một biến dễ bay hơi không được đọc từ bộ nhớ bộ nhớ cache của luồng mà từ bộ nhớ chính.Các biến dễ bay hơi được sử dụng chủ yếu trong quá trình đồng bộ hóa.

60. Vui lòng so sánh tuần tự hóa và giải phóng.

Tuần tự hóa là quá trình mà các đối tượng Java được chuyển đổi thành luồng byte. & Nbsp;

Hủy bỏ là quá trình tuần tự hóa hoàn toàn ngược lại trong đó các đối tượng Java được lấy từ luồng byte.

& nbsp; một đối tượng Java được tuần tự hóa bằng cách viết nó vào một objectOutputStream và bị thu hẹp bằng cách đọc nó từ một objectInputStream.

61. OutofMemoryError là gì?

Thông thường, ngoại lệ outofmemoryError được ném khi JVM không thể phân bổ một đối tượng do hết bộ nhớ.Trong tình huống như vậy, không có bộ nhớ nào có thể được thu thập lại bởi người thu gom rác. & Nbsp;

Có thể có một số lý do dẫn đến ngoại lệ outofmemoryError, trong đó những lý do đáng chú ý nhất là:

  • Giữ các vật thể quá lâu
  • Cố gắng xử lý quá nhiều dữ liệu cùng một lúc
  • Sử dụng thư viện của bên thứ ba lưu trữ chuỗi
  • Sử dụng máy chủ ứng dụng không thực hiện việc dọn dẹp bộ nhớ, việc triển khai
  • Khi một phân bổ bản địa không thể được thỏa mãn

62. Giải thích khoảng trống tĩnh công khai chính (chuỗi args []) trong java

Chương trình Java thực thi bắt đầu với VOID tĩnh công khai (String args []), còn được gọi là phương thức main ().

  • Công khai: Đây là một trình sửa đổi truy cập xác định khả năng truy cập của lớp hoặc phương thức.Bất kỳ lớp nào cũng có thể truy cập phương thức chính () được xác định công khai trong chương trình. It is an access modifier defining the accessibility of the class or method. Any class can access the main() method defined public in the program.
  • Tĩnh: Từ khóa chỉ ra biến hoặc phương thức là phương thức lớp.Phương thức main () được thực hiện tĩnh để có thể truy cập mà không cần tạo phiên bản của lớp.Khi phương thức chính () không được thực hiện tĩnh, trình biên dịch đã đưa ra lỗi vì chính () được gọi bởi JVM trước khi bất kỳ đối tượng nào được thực hiện và chỉ các phương thức tĩnh có thể được gọi trực tiếp qua lớp. The keyword indicates the variable, or the method is a class method. The method main() is made static so that it can be accessed without creating the instance of the class. When the method main() is not made static, the compiler throws an error because the main() is called by the JVM before any objects are made, and only static methods can be directly invoked via the class.
  • Void: Đó là loại trả về của phương thức.Void xác định phương thức không trả về bất kỳ loại giá trị nào. It is the return type of the method. Void defines the method that does not return any type of value.
  • Main: JVM tìm kiếm phương pháp này khi bắt đầu thực hiện bất kỳ chương trình nào, chỉ với chữ ký cụ thể. JVM searches this method when starting the execution of any program, with the particular signature only.
  • Chuỗi args []: Tham số được chuyển đến phương thức chính. The parameter passed to the main method.

63. Các lớp trình bao bọc trong Java là gì?

Các lớp trình bao bọc chịu trách nhiệm chuyển đổi các nguyên thủy Java thành các loại tham chiếu (đối tượng).Một lớp được dành riêng cho mọi loại dữ liệu nguyên thủy.Chúng được gọi là các lớp trình bao bọc vì chúng bọc kiểu dữ liệu nguyên thủy thành một đối tượng của lớp đó.Nó có mặt trong gói java.lang.Bảng dưới đây hiển thị các loại nguyên thủy và lớp trình bao bọc khác nhau.

Loại đơn giản

Lớp bao bọc

boolean

Boolean

char

Tính cách

double

Kép

float

Trôi nổi

int

Số nguyên

long

Dài

64. Giải thích khái niệm về quyền anh, Unboxing, Autoboxing và Auto Unboxing.

  • Quyền anh: Khái niệm đặt một giá trị nguyên thủy bên trong một đối tượng được gọi là quyền anh. The concept of putting a primitive value inside an object is called boxing.
  • Unboxing: Nhận giá trị nguyên thủy từ đối tượng. Getting the primitive value from the object.
  • Autoboxing: Gán một giá trị trực tiếp cho một đối tượng số nguyên. Assigning a value directly to an integer object.
  • Auto Unboxing: Nhận giá trị nguyên thủy trực tiếp vào đối tượng số nguyên. Getting the primitive value directly into the integer object.
classSample{

membervariables

methods()

}
7

65. Xác định lớp Singleton.Làm thế nào một lớp học có thể được thực hiện đơn lẻ?

Một lớp Singleton chỉ cho phép một trường hợp của lớp được tạo.Một lớp học có thể được thực hiện singleton với các bước sau:

  1. Tạo một thể hiện tĩnh của lớp với lớp.
  2. Bằng cách không cho phép người dùng tạo một thể hiện với hàm tạo mặc định bằng cách xác định hàm tạo riêng.
  3. Tạo một phương thức tĩnh để trả về đối tượng của một thể hiện của A.
classSample{

membervariables

methods()

}
8

66. Điều gì sẽ xảy ra nếu khoảng trống tĩnh công khai được thay thế bằng khoảng trống công khai tĩnh, chương trình có còn chạy không?

Có, chương trình sẽ biên dịch và chạy mà không có bất kỳ lỗi nào vì thứ tự của các nhà xác định không quan trọng.

67. Sự khác biệt giữa == và bằng () là gì?

Equals()

==

Nó là một phương pháp của lớp chuỗi

Nó là một nhà điều hành

So sánh nội dung

So sánh địa chỉ

classSample{

membervariables

methods()

}
9
classSample{

membervariables

methods()

}
9

68. Tại sao chúng ta không sử dụng con trỏ trong Java?

Con trỏ được coi là không an toàn và tăng sự phức tạp của chương trình, việc thêm khái niệm về con trỏ có thể mâu thuẫn.Ngoài ra, JVM chịu trách nhiệm phân bổ bộ nhớ ngầm;Do đó, để tránh truy cập trực tiếp vào bộ nhớ của người dùng, các con trỏ không được khuyến khích trong Java.

69. Sự khác biệt giữa điều này () và Super () là gì?

this()

super()

Đại diện cho thể hiện hiện tại của lớp

Đại diện cho thể hiện hiện tại của lớp cha/cơ sở

Nó được sử dụng để gọi hàm tạo mặc định của cùng một lớp

Nó được sử dụng để gọi hàm xây dựng mặc định của lớp cha/cơ sở.

Truy cập phương thức của lớp hiện tại

Truy cập phương thức của lớp cơ sở

Điểm hiện tại Lớp học hiện tại

Chỉ vào trường hợp siêu lớp.

Phải là dòng đầu tiên của khối

Nó phải là dòng đầu tiên của khối.

Câu hỏi phỏng vấn mã hóa Java & NBSP;

Ngoài việc có kiến thức tốt về các khái niệm về lập trình Java, bạn cũng được kiểm tra các kỹ năng của mình trong việc mã hóa ngôn ngữ lập trình Java.Sau đây là các câu hỏi phỏng vấn mã hóa Java có liên quan đến các sinh viên năm mới và khá phổ biến trong các cuộc phỏng vấn lập trình Java.

70. Hãy xem hai đoạn mã bên dưới.Sự khác biệt quan trọng giữa hai là gì?

i.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
1

ii.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
2

Mã mã i.là một ví dụ về quá tải phương thức trong khi đoạn mã II.Thể hiện phương thức ghi đè.i. is an example of method overloading while the code snippet ii. demonstrates method overriding.

71. Viết một chương trình để đảo ngược chuỗi mà không sử dụng hàm sẵn.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
3

72. Viết một chương trình để xóa các bản sao từ một mảng.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
4

73. Viết một chương trình để đảo ngược một số.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
5

74. Viết một chương trình thực hiện tìm kiếm nhị phân.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
6

75. Viết một chương trình để kiểm tra xem một số là chính.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
7

76. Viết một chương trình để in loạt Fibonacci.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
8

77. Viết một chương trình để kiểm tra xem chuỗi đã cho là một palindrom.

publicclassShape

{

String Shape name;

voidarea()

{

}

voidvolume ()

{

}

voidnum_sides()

{

}

}
9

78. Viết một chương trình để in mẫu sau.

*

* *

* * *

* * * *

* * * * *

Answer:

publicclassAdditionextendsThread {

publicvoidrun() {

}

}
0

79. Viết một chương trình để trao đổi hai số.

publicclassAdditionextendsThread {

publicvoidrun() {

}

}
1

80. Viết một chương trình để kiểm tra xem số đã cho là số Armstrong.

publicclassAdditionextendsThread {

publicvoidrun() {

}

}
2

Bản tóm tắt

Những câu hỏi phỏng vấn Java cốt lõi và các câu hỏi phỏng vấn lập trình Java là một cách tuyệt vời để chuẩn bị cho bạn cho cuộc phỏng vấn. & NBSP;

Chúng tôi cũng đã cung cấp một tệp PDF cho sự chuẩn bị của bạn để bạn có thể tải xuống và tìm hiểu và chuẩn bị khi di chuyển: & nbsp;

Tải xuống câu hỏi phỏng vấn java pdf

Bạn cũng có thể xem khóa học này để đọc và chuẩn bị thêm cho một cuộc phỏng vấn dựa trên Java: Hướng dẫn phỏng vấn Java: 200+ Câu hỏi và trả lời phỏng vấn

Chúng tôi khuyên bạn nên giúp bạn thành công trong các cuộc phỏng vấn Java trong tương lai: Các yếu tố của các cuộc phỏng vấn lập trình trong Java: The Insider Guid

Các câu hỏi thường gặp

1. Các câu hỏi Java cơ bản được hỏi trong một cuộc phỏng vấn là gì?

Có một số câu hỏi phỏng vấn Java cơ bản có thể xuất hiện trong một cuộc phỏng vấn.Nhìn vào những cái mà chúng tôi đã liệt kê ở trên để hiểu về chúng.

2. Tôi nên chuẩn bị cho một cuộc phỏng vấn Java như thế nào?

Bạn nên chuẩn bị cho một cuộc phỏng vấn Java bằng cách học cả lý thuyết và thực hành mã hóa.Có một số câu hỏi liên quan ở trên.

3. Các câu hỏi phỏng vấn Java nâng cao là gì?

Các câu hỏi phỏng vấn Java nâng cao có thể là nhiều loại, bao gồm cả các câu hỏi dựa trên lý thuyết và mã hóa.Kiểm tra danh sách trên các câu hỏi lập trình Java ở trên để xem chúng giống như thế nào.

Mọi người cũng đang đọc:

  • Các khóa học Java tốt nhất
  • Top 10 chứng chỉ Java
  • Sách Java hay nhất
  • Các dự án Java tốt nhất
  • Lập trình câu hỏi phỏng vấn
  • Core Java Cheatsheet - Giới thiệu về lập trình trong Java
  • Sự khác biệt giữa Java vs JavaScript
  • Top 10 khung Java
  • Cách tốt nhất để học Java
  • Hàm tạo trong java & nbsp;
  • Chương trình số nguyên tố trong Java

Các câu hỏi phỏng vấn Java phổ biến nhất 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ì ?.

50 câu hỏi và câu trả lời phỏng vấn phổ biến là gì?

Hơn 50 câu hỏi phỏng vấn công việc phổ biến nhất..
Cho tôi biết về bản thân của bạn..
Dẫn tôi qua sơ yếu lý lịch của bạn ..
Làm thế nào bạn biết đến vị trí này?.
Tại sao bạn muốn làm việc tại công ty này?.
Tại sao bạn muốn công việc này?.
Tại sao chúng tôi nên tuyển dụng bạn?.
Bạn có thể mang theo gì cho công ty?.
Điểm mạnh lớn nhất của bạn là gì?.

Trang web nào tốt nhất cho các câu hỏi phỏng vấn Java?

10 trang web và địa điểm để thực hành các vấn đề mã hóa cho các cuộc phỏng vấn vào năm 2022..
LeetCode.Leetcode là một trang web tuyệt vời và tương đối mới với một số lượng lớn các câu hỏi.....
Geekforgeeks.....
Hackerrank.....
Javarevisited.....
Sự quan tâm.....
Mã nghề nghiệp Blog.....
Java67.....

Làm cách nào để chuẩn bị cho cuộc phỏng vấn Java trong 10 năm?

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..