100+ câu hỏi phỏng vấn viết mã java hàng đầu năm 2022

  • 1. Bạn nhận được gì trong tệp tải xuống Java? Chúng khác nhau như thế nào?
  • 2. ClassLoader là gì?
  • 3. Phân bổ bộ nhớ có sẵn trong JavaJava là gì?
  • 4. Chương trình sẽ chạy nếu chúng ta viết static void main?
  • 5. Giá trị mặc định được lưu trữ trong Biến cục bộ là gì?
  • 6. Giải thích kết quả mong đợi của đoạn mã sau?
  • 7. Association là gì?
  • 8. Định nghĩa Copy Constructor trong Java
  • 9. Giao diện Marker là gì?
  • 10. Nhân bản đối tượng là gì?
  • 11. Tại sao Java không hoàn toàn là hướng đối tượng?
  • 12. Định nghĩa các lớp Wrapper trong Java.
  • 13. Định nghĩa các lớp Singleton trong Java.
  • 14. Định nghĩa gói trong Java.
  • 15. Bạn có thể triển khai con trỏ trong Chương trình Java không?
  • 16. Phân biệt giữa biến instance và local.
  • 17. Giải thích Java String Pool.
  • 18. Ngoại lệ là gì?
  • 19. Từ khóa cuối cùng trong Java là gì?
  • 20. Điều gì xảy ra khi hàm main () không được khai báo là static?
  • Câu hỏi phỏng vấn Java khó vừa
  • 21. JDK là gì? Đề cập đến các biến thể của JDK?
  • 22. Các chỉ định truy cập ngắn gọn và các loại chỉ định truy cập là gì?
  • 23. Một phương thức khởi tạo có thể trả về một giá trị không?
  • 24. Giải thích từ khóa ‘this’ trong Java.
  • 25. Giải thích từ khóa ‘super’ trong Java.
  • 26. Giải thích quá tải phương thức trong Java.
  • 27. Chúng ta có thể nạp chồng một phương thức tĩnh không?
  • 28. Định nghĩa Ràng buộc muộn.
  • 29. Định nghĩa Công văn Phương pháp Động.
  • 30. Tại sao hàm xóa trong danh sách liên kết nhanh hơn một mảng?
  • 31. Trình bày tóm tắt về vòng đời của một luồng.
  • 32. Giải thích sự khác biệt giữa toán tử >> và >>>.
  • 33. Tóm tắt vòng đời của một applet.
  • 34. Tại sao các generic được sử dụng trong Lập trình Java?
  • 35. Giải thích giao diện có thể ngoại hóa.
  • 36. Daemon Thread là gì?
  • 37. Giải thích thuật ngữ liệt kê trong Java.
  • 38. Tại sao Java là Động?
  • 39. Bạn có thể chạy một đoạn mã trước khi thực thi phương thức chính không?
  • 40. Phương thức finalize được gọi bao nhiêu lần?
  • 41. Từ khóa “this” và “super” có thể được sử dụng cùng nhau không?
  • 42. Trang JSP là gì?
  • 43. JDBC là gì?
  • 44. Giải thích các chỉ thị khác nhau trong JSP.
  • 45. Thế nào là lớp quan sát viên và lớp quan sát viên?
  • 46. ​​Quản lý phiên trong Java là gì?
  • 47. Giải thích ngắn gọn thuật ngữ Spring Framework.
  • 48. JCA trong Java là gì?
  • 49. Giải thích JPA trong Java.
  • 50. Giải thích các xác thực khác nhau trong Java Servlet.
  • 51. Giải thích trình lặp FailFast và trình lặp FailSafe cùng với các ví dụ cho từng loại.
  • 52. Làm thế nào để chúng ta đảo ngược một chuỗi?
  • 53. Viết chương trình tìm căn bậc hai của một số.
  • 54. Viết chương trình phát hiện các ký tự trùng lặp trong một chuỗi.
  • 55. Viết chương trình xóa các bản sao trong ArrayList.
  • 56. Tìm số từ trong một chuỗi bằng HashMap Collection.
  • 57. Viết chương trình tìm số cao thứ hai trong ArrayList
  • 58. Sự khác biệt giữa System.out, System.err và System.in là gì?
  • 59. Bạn có thể cung cấp một số cách triển khai của Từ điển có số lượng từ lớn không?
  • 60. Bạn sẽ giải quyết nó như thế nào nếu gặp phải các chương trình mẫu trong Java?
  • Bước tiếp theo

Show

1. Bạn nhận được gì trong tệp tải xuống Java? Chúng khác nhau như thế nào?

Chúng tôi nhận được hai điều chính cùng với tệp Tải xuống Java.

JDK – Bộ phát triển Java

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

JDK JRE
Viết tắt của JavaDevelopment Kit Viết tắt của Java Runtime Environment
JDK là một bộ công cụ chuyên dụng để phát triển phần mềm duy nhất JRE là một bộ phần mềm và thư viện được thiết kế để thực thi các Chương trình Java
Không giống như JVM, JDK phụ thuộc vào nền tảng Không giống như JVM, JRE cũng phụ thuộc vào nền tảng
Gói JDK là một bộ công cụ để gỡ lỗi và phát triển Gói JRE là gói chỉ hỗ trợ tệp và thư viện cho môi trường thời gian chạy
Gói JDK sẽ được cung cấp một tệp trình cài đặt Gói JRE không có trình cài đặt mà chỉ có môi trường thời gian chạy

2. ClassLoader là gì?

Bộ nạp lớp trong Java là một hệ thống con của Máy ảo Java, dành riêng để tải các tệp lớp khi một chương trình được thực thi; ClassLoader là người đầu tiên tải tệp thực thi.

Java có Bootstrap, Extension và Application classloaders.

3. Phân bổ bộ nhớ có sẵn trong JavaJava là gì?

Java có năm kiểu cấp phát bộ nhớ quan trọng.

  • Bộ nhớ lớp
  • Bộ nhớ đống
  • Bộ nhớ ngăn xếp
  • Bộ nhớ bộ đếm chương trình
  • Bộ nhớ ngăn xếp phương pháp gốc

4. Chương trình sẽ chạy nếu chúng ta viết static void main?

Có, chương trình sẽ thực thi thành công nếu được viết như vậy. Bởi vì, trong Java, không có quy tắc cụ thể nào cho thứ tự của các từ chỉ định

5. Giá trị mặc định được lưu trữ trong Biến cục bộ là gì?

Cả Biến cục bộ cũng như bất kỳ tham chiếu gốc và đối tượng nào đều không có bất kỳ giá trị mặc định nào được lưu trữ trong chúng.

6. Giải thích kết quả mong đợi của đoạn mã sau?

public class Simplilearn   
{  
    public static void main (String args[])   
    {  
        System.out.println(100 + 100 +"Simplilearn");   
        System.out.println("E-Learning Company" + 100 + 100);  
    }  
}

Câu trả lời cho hai câu lệnh in như sau.

  • 200Simplilearn
  • E-Learning Company100100

7. Association là gì?

Association có thể được định nghĩa là một mối quan hệ không có quyền sở hữu đối với mối quan hệ khác. Ví dụ: một người có thể được liên kết với nhiều ngân hàng và một ngân hàng có thể liên quan đến nhiều người, nhưng không ai có thể sở hữu người kia.

Các bài viết liên quan:

8. Định nghĩa Copy Constructor trong Java

Copy Constructor trong Java là một phương thức khởi tạo khởi tạo một đối tượng thông qua một đối tượng khác của cùng một lớp.

9. Giao diện Marker là gì?

Giao diện trống trong JavaJava được gọi là giao diện Marker. Serializable và Cloneable là một số ví dụ nổi tiếng về Giao diện Marker.

10. Nhân bản đối tượng là gì?

Khả năng tạo lại một đối tượng hoàn toàn tương tự với một đối tượng hiện có được gọi là Nhân bản đối tượng trong Java. Java cung cấp một phương thức clone () để sao chép một đối tượng hiện tại cung cấp chức năng tương tự như đối tượng gốc.

11. Tại sao Java không hoàn toàn là hướng đối tượng?

Java không được coi là ngôn ngữ lập trình hướng đối tượng 100% vì nó vẫn sử dụng tám kiểu dữ liệu nguyên thủy trở lên như int, float double, v.v.

12. Định nghĩa các lớp Wrapper trong Java.

Trong Java, khi bạn khai báo các kiểu dữ liệu nguyên thủy, thì các lớp Wrapper có nhiệm vụ chuyển đổi chúng thành các đối tượng (Kiểu tham chiếu).

13. Định nghĩa các lớp Singleton trong Java.

Trong Java, khi bạn đặt hàm khởi tạo của một lớp là riêng tư, lớp cụ thể đó chỉ có thể tạo ra một đối tượng. Loại lớp này thường được gọi là Lớp Singleton.

14. Định nghĩa gói trong Java.

Gói này là một gói tập hợp các lớp và giao diện cũng như các thư viện và tệp JAR cần thiết. Việc sử dụng các gói giúp cho khả năng tái sử dụng mã.

15. Bạn có thể triển khai con trỏ trong Chương trình Java không?

Máy ảo Java đảm nhiệm việc quản lý bộ nhớ một cách ngầm định. Phương châm chính của Java là giữ cho việc lập trình trở nên đơn giản. Vì vậy, truy cập bộ nhớ trực tiếp thông qua con trỏ không phải là một hành động được khuyến khích. Do đó, con trỏ bị loại bỏ trong Java.

16. Phân biệt giữa biến instance và local.

Ví dụ, các biến được khai báo bên trong một lớp và phạm vi được giới hạn ở chỉ một đối tượng cụ thể.

Một biến cục bộ có thể ở bất kỳ đâu bên trong một phương thức hoặc một khối mã cụ thể. Ngoài ra, phạm vi được giới hạn trong đoạn mã nơi biến được khai báo.

17. Giải thích Java String Pool.

Tập hợp các chuỗi trong bộ nhớ Heap của Java được gọi là Java String Pool. Trong trường hợp bạn cố gắng tạo một đối tượng chuỗi mới, JVM trước tiên sẽ kiểm tra sự hiện diện của đối tượng trong nhóm. Nếu có sẵn, cùng một tham chiếu đối tượng được chia sẻ với biến, nếu không một đối tượng mới sẽ được tạo.

18. Ngoại lệ là gì?

Một ngoại lệ trong Java được coi là một sự kiện bất ngờ có thể làm gián đoạn dòng chảy bình thường của chương trình. Những sự kiện này có thể được khắc phục thông qua quá trình Xử lý Ngoại lệ.

19. Từ khóa cuối cùng trong Java là gì?

Thuật ngữ final là một từ được xác định trước trong Java được sử dụng trong khi khai báo giá trị cho các biến. Khi một giá trị được khai báo bằng cách sử dụng từ khóa final, thì giá trị của biến sẽ không đổi trong suốt quá trình thực thi của chương trình.

20. Điều gì xảy ra khi hàm main () không được khai báo là static?

Khi phương thức chính không được khai báo là tĩnh, thì chương trình có thể được biên dịch chính xác nhưng kết thúc với sự mơ hồ nghiêm trọng và gây ra lỗi thời gian chạy có nội dung “NoSuchMethodError.”

Câu hỏi phỏng vấn Java khó vừa

21. JDK là gì? Đề cập đến các biến thể của JDK?

JDK là tên viết tắt của Java Development Kit. Nó là một Gói kết hợp của JRE và các công cụ dành cho Nhà phát triển được sử dụng để thiết kế Ứng dụng Java và Applet. Oracle có các biến thể sau.

  • Phiên bản tiêu chuẩn JDK
  • Phiên bản doanh nghiệp JDK
  • JDK Micro Edition

22. Các chỉ định truy cập ngắn gọn và các loại chỉ định truy cập là gì?

Access Specifier là các từ khóa được xác định trước được sử dụng để giúp JVM hiểu phạm vi của một biến, phương thức và lớp. Chúng tôi có bốn chỉ định truy cập.

  • Công cụ xác định quyền truy cập công khai
  • Bộ định danh quyền truy cập riêng tư
  • Bộ chỉ định quyền truy cập được bảo vệ
  • Bộ chỉ định quyền truy cập mặc định

23. Một phương thức khởi tạo có thể trả về một giá trị không?

Có, một phương thức khởi tạo có thể trả về một giá trị. Nó thay thế hoàn toàn cá thể hiện tại của lớp; bạn không thể làm cho một hàm tạo trả về một giá trị một cách rõ ràng.

24. Giải thích từ khóa ‘this’ trong Java.

Thuật ngữ “cái này” là một từ khóa cụ thể được chỉ định làm từ khóa tham chiếu. Từ khóa “this” được sử dụng để tham chiếu đến các thuộc tính của lớp hiện tại như phương thức, thể hiện, biến và hàm tạo.

25. Giải thích từ khóa ‘super’ trong Java.

Thuật ngữ “‘super” là một từ khóa cụ thể được chỉ định làm từ khóa tham chiếu. Từ khóa “super” đề cập đến đối tượng lớp cha ngay lập tức.

26. Giải thích quá tải phương thức trong Java.

Quá trình tạo nhiều chữ ký phương thức sử dụng một tên phương thức được gọi là Nạp chồng phương thức trong Java. Hai cách để đạt được quá tải phương thức là:

  • Thay đổi số lượng đối số
  • Thay đổi kiểu trả về của Phương thức

27. Chúng ta có thể nạp chồng một phương thức tĩnh không?

Không, Java không hỗ trợ Nạp chồng phương thức tĩnh. Quá trình sẽ xuất hiện một lỗi đọc “không thể tham chiếu phương thức tĩnh”.

28. Định nghĩa Ràng buộc muộn.

Ràng buộc là một quá trình thống nhất lời gọi phương thức với đoạn mã của phương thức. Liên kết muộn xảy ra khi đoạn mã của phương thức không xác định cho đến khi nó được gọi trong thời gian chạy.

29. Định nghĩa Công văn Phương pháp Động.

Điều phối phương thức động là một quá trình mà lệnh gọi phương thức được thực hiện trong thời gian chạy. Một biến tham chiếu được sử dụng để gọi siêu lớp. Quá trình này còn được gọi là Đa hình thời gian chạy.

30. Tại sao hàm xóa trong danh sách liên kết nhanh hơn một mảng?

Chức năng Xóa nhanh hơn trong danh sách được liên kết vì người dùng cần thực hiện một cập nhật nhỏ đối với giá trị con trỏ để nút có thể trỏ đến người kế nhiệm tiếp theo trong danh sách

31. Trình bày tóm tắt về vòng đời của một luồng.

Vòng đời của một luồng bao gồm năm giai đoạn, như được đề cập bên dưới.

  1. Trạng thái mới sinh
  2. Trạng thái có thể chạy được
  3. Trạng thái đang chạy
  4. Trạng thái bị chặn
  5. Trạng thái chết

32. Giải thích sự khác biệt giữa toán tử >> và >>>.

Mặc dù chúng trông giống nhau, nhưng có một sự khác biệt lớn giữa cả hai.

  • >> toán tử thực hiện công việc dịch chuyển sang phải các bit dấu
  • >>> toán tử được sử dụng để chuyển ra các bit không điền

33. Tóm tắt vòng đời của một applet.

Vòng đời của một applet bao gồm những điều sau đây.

  1. Khởi tạo
  2. Bắt đầu
  3. Ngừng lại
  4. Hủy hoại
  5. Sơn

34. Tại sao các generic được sử dụng trong Lập trình Java?

An toàn kiểu thời gian biên dịch được cung cấp bằng cách sử dụng generic. An toàn kiểu thời gian biên dịch cho phép người dùng bắt các kiểu không hợp lệ không cần thiết tại thời điểm biên dịch. Các phương thức và lớp chung giúp người lập trình chỉ định một khai báo phương thức duy nhất, một tập hợp các phương thức liên quan hoặc các kiểu liên quan với một khai báo lớp có sẵn.

35. Giải thích giao diện có thể ngoại hóa.

Giao diện có thể ngoại hóa giúp kiểm soát quá trình tuần tự hóa. Giao diện “externalisable” kết hợp các phương thức readExternal và writeExternal.

36. Daemon Thread là gì?

Luồng Daemon có thể được định nghĩa là một luồng có mức độ ưu tiên thấp nhất. Luồng Daemon này được thiết kế để chạy ở chế độ nền trong Bộ sưu tập rác trong Java.

Phương thức setDaemon () tạo một luồng Daemon trong Java.

37. Giải thích thuật ngữ liệt kê trong Java.

Enumeration hay enum là một giao diện trong Java. Enum cho phép truy cập tuần tự các phần tử được lưu trữ trong một tập hợp trong Java.

38. Tại sao Java là Động?

Java được thiết kế để thích ứng với môi trường đang phát triển. Các chương trình Java bao gồm một lượng lớn thông tin thời gian chạy được sử dụng để giải quyết quyền truy cập vào các đối tượng trong thời gian thực.

39. Bạn có thể chạy một đoạn mã trước khi thực thi phương thức chính không?

Có, chúng tôi có thể thực thi bất kỳ mã nào, ngay cả trước phương thức chính. Chúng ta sẽ sử dụng một khối mã tĩnh khi tạo các đối tượng tại thời điểm tải của lớp. Bất kỳ câu lệnh nào trong khối mã tĩnh này sẽ được thực thi cùng một lúc khi tải lớp, thậm chí trước khi tạo các đối tượng trong phương thức chính.

40. Phương thức finalize được gọi bao nhiêu lần?

Phương thức cuối cùng được gọi là bộ thu gom rác. Đối với mọi đối tượng, Bộ thu gom rác chỉ gọi phương thức finalize () cho một lần.

Câu hỏi phỏng vấn Java nâng cao

41. Từ khóa “this” và “super” có thể được sử dụng cùng nhau không?

Không, các từ khóa “this” và “super” nên được sử dụng trong câu lệnh đầu tiên trong hàm tạo lớp. Đoạn mã sau cung cấp cho bạn một ý tưởng ngắn gọn.

public class baseClass {  

     baseClass() {  

         super();   

         this();  

         System.out.println(" baseClass object is created");  

     }  

     public static void main(String []args){  

         baseClass bclass = new baseClass();  

     }  

}

42. Trang JSP là gì?

JSP là tên viết tắt của Java Servlet Page. Trang JSP bao gồm hai loại văn bản.

  • Dữ liệu tĩnh
  • Các phần tử JSP

43. JDBC là gì?

JDBC là tên viết tắt của Java Database Connector.

JDBC là một lớp trừu tượng được sử dụng để thiết lập kết nối giữa cơ sở dữ liệu hiện có và ứng dụng Java

44. Giải thích các chỉ thị khác nhau trong JSP.

Các chỉ thị là các hướng dẫn được xử lý bởi JSP Engine. Sau khi trang JSP được biên dịch thành Servlet, Directives đặt hướng dẫn cấp trang, chèn tệp bên ngoài và xác định thư viện thẻ tùy chỉnh. Các chỉ thị được xác định bằng cách sử dụng các ký hiệu dưới đây:

bắt đầu bằng “<% @” và sau đó kết thúc bằng “%>”

Các loại lệnh khác nhau được hiển thị bên dưới:

  • Bao gồm chỉ thị

Nó bao gồm một tệp và kết hợp nội dung của toàn bộ tệp với các trang hiện đang hoạt động.

  • Chỉ thị trang

Chỉ thị Trang xác định các thuộc tính cụ thể trong trang JSP, như bộ đệm và trang lỗi.

  • Taglib

Taglib khai báo thư viện thẻ tùy chỉnh, được sử dụng trên trang.

45. Thế nào là lớp quan sát viên và lớp quan sát viên?

Các đối tượng kế thừa “lớp có thể quan sát” sẽ quản lý danh sách các “đối tượng quan sát”.

Khi một đối tượng có thể quan sát được nâng cấp, nó sẽ gọi phương thức update () của từng đối tượng quan sát của nó.

Sau đó, nó thông báo cho tất cả những người quan sát rằng có sự thay đổi trạng thái.

Giao diện Observer được thực hiện bởi các đối tượng quan sát các đối tượng có thể quan sát được.

46. ​​Quản lý phiên trong Java là gì?

Một phiên về cơ bản được định nghĩa là trạng thái động của cuộc trò chuyện ngẫu nhiên giữa máy khách và máy chủ. Kênh giao tiếp ảo bao gồm một chuỗi các phản hồi và yêu cầu từ cả hai phía. Cách phổ biến để triển khai quản lý phiên là thiết lập ID phiên trong diễn ngôn giao tiếp của khách hàng và máy chủ.

47. Giải thích ngắn gọn thuật ngữ Spring Framework.

Spring về cơ bản được định nghĩa là một khuôn khổ ứng dụng và đảo ngược các vùng chứa điều khiển cho Java. Spring framework tạo ra các ứng dụng doanh nghiệp bằng Java. Đặc biệt hữu ích khi lưu ý rằng các tính năng trung tâm của Spring framework về cơ bản có lợi cho bất kỳ ứng dụng Java nào.

48. JCA trong Java là gì?

Java Cryptography Architecture cung cấp một nền tảng và cung cấp kiến ​​trúc và giao diện lập trình ứng dụng cho phép giải mã và mã hóa.

Các nhà phát triển sử dụng Java Cryptography Architecture để kết hợp ứng dụng này với các ứng dụng bảo mật. Java Cryptography Architecture giúp thực hiện các quy tắc và quy định bảo mật của bên thứ ba.

Kiến trúc mã hóa Java sử dụng bảng băm, thông báo mã hóa, v.v. để triển khai bảo mật.

49. Giải thích JPA trong Java.

Java Persistence API cho phép chúng tôi tạo lớp bền vững cho các ứng dụng web và máy tính để bàn. Java Persistence đề cập đến những điều sau:

  1. Java Persistence API
  2. Ngôn ngữ truy vấn
  3. API tiêu chí bền vững của Java
  4. Siêu dữ liệu ánh xạ đối tượng

50. Giải thích các xác thực khác nhau trong Java Servlet.

Các tùy chọn xác thực có sẵn trong Servlet: Có bốn tùy chọn khác nhau để xác thực trong servlet:

  • Xác thực cơ bản:

Tên người dùng và mật khẩu được cung cấp bởi máy khách để xác thực người dùng.

  • Xác thực dựa trên biểu mẫu:

Trong đó, biểu mẫu đăng nhập được lập trình viên thực hiện bằng cách sử dụng HTML.

  • Xác thực thông báo:

Nó tương tự như xác thực cơ bản, nhưng mật khẩu được mã hóa bằng công thức Hash. Công thức băm giúp thông báo an toàn hơn.

  • Xác thực chứng chỉ ứng dụng khách:

Nó yêu cầu mỗi máy khách truy cập tài nguyên phải có một chứng chỉ mà nó gửi để xác thực chính nó. Xác thực máy khách yêu cầu giao thức SSL.

51. Giải thích trình lặp FailFast và trình lặp FailSafe cùng với các ví dụ cho từng loại.

Trình vòng lặp FailFast và Trình vòng lặp FailSafe được sử dụng trong Bộ sưu tập Java.

Các trình vòng lặp FailFast không cho phép thay đổi hoặc sửa đổi Bộ sưu tập Java, có nghĩa là chúng không thành công khi phần tử mới nhất được thêm vào bộ sưu tập hoặc một phần tử hiện có bị xóa khỏi bộ sưu tập. Các trình lặp FailFast có xu hướng bị lỗi và ném ra một ngoại lệ được gọi là ConcurrentModificationException.

Ví dụ: ArrayList, HashMap

Mặt khác, các trình vòng lặp FailSafe cho phép thực hiện các thay đổi hoặc sửa đổi trên Bộ sưu tập Java. Có thể xảy ra, vì các trình lặp FailSafe thường hoạt động trên bản sao nhân bản của bộ sưu tập. Do đó, họ không ném bất kỳ ngoại lệ cụ thể nào.

Ví dụ: CopyOnWriteArrayList

52. Làm thế nào để chúng ta đảo ngược một chuỗi?

Chuỗi có thể được đảo ngược bằng cách sử dụng chương trình sau.

package simplilearnJava;

public class StringReverse {

public static void main(String args[]) {

String str = "Simplilearn";

String reverse = new StringBuffer(str).reverse().toString();

System.out.printf("Actual Word: %s, Word after reversing %s", str, reverse);

}

public static String reverse(String source) {

if (source == null || source.isEmpty()) {

return source;

}

String reverse = "";

for (int i = source.length() - 1; i >= 0; i--) {

reverse = reverse + source.charAt(i);

}

return reverse;

}

}

Đầu ra mong đợi:

Từ thực tế: Simplilearn, Word sau khi đảo ngược nraelilpmiS

53. Viết chương trình tìm căn bậc hai của một số.

Căn bậc hai của một số có thể được tìm thấy bằng cách sử dụng chương trình sau.

package simplilearnJava;

import java.util.Scanner;

public class SRoot {

public static void main(String args[]) {

try (Scanner sc = new Scanner(System.in)) {

System.out.println("Input a number to find square root: ");

double square = sc.nextDouble();

double squareRoot = Math.sqrt(square);

System.out.printf("The square root is: %f \n", squareRoot);

}

}

}

Đầu ra mong đợi:

Nhập một số để tìm căn bậc hai:

25

Căn bậc hai là: 5

54. Viết chương trình phát hiện các ký tự trùng lặp trong một chuỗi.

Chương trình tìm các phần tử trùng lặp trong một chuỗi được viết dưới đây:

package simplilearnJava;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

public class FindDuplicate {

public static void main(String args[]) {

printDuplicateCharacters("Simplilearn");

}

public static void printDuplicateCharacters(String word) {

char[] characters = word.toCharArray();

Map<Character, Integer> charMap = new HashMap<Character, Integer>();

for (Character ch : characters) {

if (charMap.containsKey(ch)) {

charMap.put(ch, charMap.get(ch) + 1);

} else {

charMap.put(ch, 1);

}

}

Set<Map.Entry<Character, Integer>> entrySet = charMap.entrySet();

System.out.printf("List of duplicate characters in String '%s' %n", word);

for (Map.Entry<Character, Integer> entry : entrySet) {

if (entry.getValue() > 1) {

System.out.printf("%s: %d %n", entry.getKey(), entry.getValue());

}

}

}

}

55. Viết chương trình xóa các bản sao trong ArrayList.

Chương trình sau có thể được triển khai để loại bỏ các phần tử trùng lặp trong ArrayList

package simplilearnJava;

import java.util.ArrayList;

import java.util.LinkedHashSet;

import java.util.List;

import java.util.Set;

public class ArrayDuplicate {

public static void main(String args[]) {

List<Integer> num = new ArrayList<Integer>();

num.add(1);

num.add(2);

num.add(3);

num.add(4);

num.add(5);

num.add(6);

num.add(3);

num.add(4);

num.add(5);

num.add(6);

System.out.println("Your list of elements in ArrayList : " + num);

Set<Integer> primesWithoutDuplicates = new LinkedHashSet<Integer>(num);

num.clear();

num.addAll(primesWithoutDuplicates);

System.out.println("list of original numbers without duplication: " + num);

}

}

Đầu ra mong đợi:

Your list of elements in ArrayList : [1, 2, 3, 4, 5, 6, 3, 4, 5, 6]

list of original numbers without duplication: [1, 2, 3, 4, 5, 6]

56. Tìm số từ trong một chuỗi bằng HashMap Collection.

Chương trình sau đây có thể được sử dụng để đếm từ.

package simplilearnJava;

import java.util.HashMap;

public class WordCount {

public static void main(String[] args) {

String str = "Hello World, Welcome to Simplilearn";

String[] split = str.split(" ");

HashMap<String, Integer> map = new HashMap<String, Integer>();

for (int i = 0; i < split.length; i++) {

if (map.containsKey(split[i])) {

int count = map.get(split[i]);

map.put(split[i], count + 1);

} else {

map.put(split[i], 1);

}

}

System.out.println(map);

}

}

Đầu ra mong đợi:

{Hello=1, Simplilearn=1, Welcome=1, to=1, World,=1}

57. Viết chương trình tìm số cao thứ hai trong ArrayList

Chương trình sau có thể được sử dụng để tìm số lớn thứ hai trong danh sách mảng.

package simplilearnJava;

public class NextHighest {

public static void main(String[] args)

    {

        int array[] = { 1, 2, 3, 4, 11, 12, 13, 14, 21, 22, 23, 24, 31, 32};

        int high = 0;

        int nextHigh = 0;

        System.out.println("The given array is:");

        for (int i = 0; i < array.length; i++)

        {

            System.out.print(array[i] + "\t");

        }

        for (int i = 0; i < array.length; i++)

        {

            if (array[i] > high)

            {

                nextHigh = high;

                high = array[i];

            }

            else if (array[i] > nextHigh)

            {

                nextHigh = array[i];

            }

        }

        System.out.println("\nSecond Highest is:" + nextHigh);

        System.out.println("Highest Number is: "  +high);

    }

}

Đầu ra mong đợi:

Mảng đã cho là:

1 2 3 4 11 12 13 14 21 22 23 24 31 32

Cao thứ hai là: 31

Con số cao nhất là: 32

58. Sự khác biệt giữa System.out, System.err và System.in là gì?

System.out và System.err đại diện cho màn hình theo mặc định và do đó có thể được sử dụng để gửi dữ liệu hoặc kết quả đến màn hình. System.out được sử dụng để hiển thị các thông báo và kết quả bình thường. System.eerr được sử dụng để hiển thị thông báo lỗi. System.in đại diện cho đối tượng InputStream theo mặc định đại diện cho thiết bị nhập chuẩn, tức là bàn phím.

59. Bạn có thể cung cấp một số cách triển khai của Từ điển có số lượng từ lớn không?

Cách triển khai đơn giản nhất có thể được đưa ra là một Danh sách trong đó người ta có thể đặt các từ có thứ tự và thực hiện tìm kiếm Nhị phân. Cách triển khai khác có hiệu suất tìm kiếm tốt hơn là HashMap trong đó khóa được sử dụng làm ký tự đầu tiên của từ và giá trị dưới dạng LinkedList.

Lên một cấp độ khác, có các HashMap như:

hashmap {

a (key) -> hashmap (key-aa , value (hashmap(key-aaa,value)

b (key) -> hashmap (key-ba , value (hashmap(key-baa,value)

z (key) -> hashmap (key-za , value (hashmap(key-zaa,value)

}

Lên đến n cấp trong đó n là kích thước trung bình của từ trong dictionary.

60. Bạn sẽ giải quyết nó như thế nào nếu gặp phải các chương trình mẫu trong Java?

Giải pháp – 25 chương trình mẫu thường gặp nhất trong Java

Với điều này, chúng ta đã đến phần cuối của bài viết Câu hỏi phỏng vấn Java này. Tiếp theo, chúng ta sẽ xem xét các bước quan trọng tiếp theo mà bạn có thể theo đuổi, để thành thạo Java.

Bước tiếp theo

Các câu hỏi phỏng vấn Java thực sự quan trọng cần phải trải qua trước khi tham gia một cuộc phỏng vấn. Nó giúp bạn đặt mình vào khía cạnh an toàn hơn bằng cách giúp bạn sẵn sàng trả lời các câu hỏi được đặt ra trong cuộc phỏng vấn. Bây giờ, bước tiếp theo là tìm hiểu Cách trở thành nhà phát triển phần mềm.

Nếu bạn đang tìm kiếm kiến thức chuyên sâu hơn về ngôn ngữ lập trình Java và thông tin về cách được chứng nhận là nhà phát triển chuyên nghiệp, hãy khám phá các chương trình đào tạo và cấp chứng chỉ Java của chúng tôi mà các chuyên gia trong ngành giàu kinh nghiệm của Simplilearn cung cấp trong thời gian thực. Đặc biệt, hãy xem Chương trình tổng thể về nhà phát triển Java Full Stack của chúng tôi ngay hôm nay!

Nếu bạn có bất kỳ thắc mắc nào về bài viết “Câu hỏi phỏng vấn Java” này, hãy để lại trong phần bình luận, các chuyên gia của chúng tôi sẽ giải đáp sớm nhất cho bạn!