100 câu hỏi phỏng vấn java hàng đầu 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:
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:
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:
Câu 8: Sự khác nhau giữa Path và Classpath VariablesPath 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:
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:
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 JavaCâ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. Bạn có những gì cần thiết để phỏng vấn Java không? Chúng tôi ở đây để giúp bạn củng cố kiến thức và khái niệm của bạn trong Java. Trước khi chúng ta bắt đầu, chúng ta hãy hiểu Java là gì.Java. Before we begin, let's understand what Java is all about. Java là gì? & NBSP;Java là ngôn ngữ lập trình cấp cao được phát triển bởi James Gosling vào năm 1982. Nó dựa trên các nguyên tắc của lập trình hướng đối tượng và có thể được sử dụng để phát triển các ứng dụng quy mô lớn. Tìm hiểu thêm.Learn More. Bài viết sau đây sẽ bao gồm tất cả các câu hỏi phỏng vấn Java cốt lõi phổ biến, Câu hỏi phỏng vấn xử lý chuỗi, Câu hỏi phỏng vấn Java 8, Câu hỏi phỏng vấn nhiều luồng Java, Câu hỏi phỏng vấn Java OOPS, Java ngoại lệ xử lý các câu hỏi phỏng vấn, câu hỏi phỏng vấn bộ sưu tập và một số câu hỏi thường gặp câu hỏi. Đi qua tất cả các câu hỏi để tăng cường cơ hội thực hiện tốt trong các cuộc phỏng vấn. Các câu hỏi sẽ xoay quanh các nguyên tắc cơ bản cơ bản, cốt lõi và tiên tiến của Java. Vì vậy, hãy để Lặn đi sâu vào rất nhiều câu hỏi và câu trả lời phỏng vấn Java hữu ích cho các ứng cử viên mới và kinh nghiệm theo chiều sâu.Java Interview questions and answers for freshers and experienced candidates in depth. Ngôn ngữ Java được phát triển theo cách mà nó không phụ thuộc vào bất kỳ phần cứng hoặc phần mềm nào do thực tế là trình biên dịch biên dịch mã và sau đó chuyển đổi nó thành mã byte độc lập với nền tảng có thể chạy trên nhiều hệ thống. was developed in such a
way that it does not depend on any hardware or software due to the fact that the compiler compiles the code and then converts it to platform-independent byte code which can be run on multiple systems. Java hỗ trợ các loại dữ liệu nguyên thủy - byte, boolean, char, short, int, float, dài và gấp đôi và do đó nó không phải là ngôn ngữ định hướng đối tượng thuần túy.object oriented language. Bộ nhớ ngăn xếp là một phần của bộ nhớ được gán cho mọi chương trình riêng lẻ. Và nó đã được sửa. Mặt khác, bộ nhớ Heap là phần không được phân bổ cho chương trình Java nhưng nó sẽ có sẵn để sử dụng chương trình Java khi cần thiết, chủ yếu là trong thời gian chạy của chương trình. Java sử dụng bộ nhớ này là -& nbsp; Ví dụ- Xem xét chương trình Java dưới đây:Consider the below java program: Đối với chương trình Java này. Bộ nhớ ngăn xếp và heap chiếm bởi Java là - Main và PrintArray là phương pháp sẽ có sẵn trong khu vực ngăn xếp và cũng như các biến được tuyên bố cũng sẽ nằm trong khu vực ngăn xếp. & NBSP; Và đối tượng (mảng số nguyên có kích thước 10) mà chúng tôi đã tạo, sẽ có sẵn trong khu vực Heap vì không gian đó sẽ được phân bổ cho chương trình trong thời gian chạy. & NBSP; Sẽ không sai nếu chúng ta tuyên bố rằng Java là ngôn ngữ lập trình hướng đối tượng hoàn chỉnh. Bởi vì mọi thứ trong Java đều thuộc các lớp học. Và chúng ta có thể truy cập điều đó bằng cách tạo các đối tượng. Nhưng nếu chúng ta nói rằng Java không phải là ngôn ngữ lập trình hoàn toàn theo định hướng đối tượng vì nó có sự hỗ trợ của các loại dữ liệu nguyên thủy như Int, Float, Char, Boolean, Double, v.v. Bây giờ cho câu hỏi: Java có phải là ngôn ngữ lập trình hoàn toàn đối tượng không? Chúng ta có thể nói rằng - Java không phải là ngôn ngữ lập trình hướng đối tượng thuần túy, bởi vì nó có quyền truy cập trực tiếp vào các loại dữ liệu nguyên thủy. Và các loại dữ liệu nguyên thủy này không trực tiếp thuộc về các lớp số nguyên.Is java a completely object-oriented programming language? We can say that - Java is not a pure object-oriented programming language, because it has direct access to primitive data types. And these primitive data types don't directly belong to the Integer classes. Con trỏ khá phức tạp và không an toàn để sử dụng bởi các lập trình viên mới bắt đầu. Java tập trung vào sự đơn giản của mã và việc sử dụng các con trỏ có thể khiến nó trở nên khó khăn. Việc sử dụng con trỏ cũng có thể gây ra lỗi tiềm năng. Hơn nữa, bảo mật cũng bị xâm phạm nếu con trỏ được sử dụng vì người dùng có thể truy cập trực tiếp bộ nhớ với sự trợ giúp của con trỏ. Do đó, một mức độ trừu tượng nhất định được cung cấp bởi không bao gồm các con trỏ trong Java. Hơn nữa, việc sử dụng các con trỏ có thể làm cho thủ tục thu gom rác khá chậm và sai. Java sử dụng các tài liệu tham khảo vì những điều này không thể bị thao túng, không giống như con trỏ. 7. Bạn hiểu gì bởi một biến thể hiện và một biến cục bộ?Các biến thể hiện là các biến có thể truy cập bằng tất cả các phương thức trong lớp. Chúng được tuyên bố bên ngoài các phương pháp và bên trong lớp. Các biến này mô tả các thuộc tính của một đối tượng và vẫn bị ràng buộc với nó bằng bất cứ giá nào. are those variables that are accessible by all the methods in the class. They are declared outside the methods and inside the class. These variables describe the properties of an object and remain bound to it at any cost. Tất cả các đối tượng của lớp sẽ có bản sao của các biến để sử dụng. Nếu bất kỳ sửa đổi nào được thực hiện trên các biến này, thì chỉ có trường hợp đó sẽ bị ảnh hưởng bởi nó và tất cả các trường hợp lớp khác tiếp tục không bị ảnh hưởng. Example:
Các biến cục bộ là các biến có trong một khối, hàm hoặc hàm tạo và chỉ có thể được truy cập bên trong chúng. Việc sử dụng biến được giới hạn trong phạm vi khối. Bất cứ khi nào một biến cục bộ được khai báo bên trong một phương thức, các phương thức lớp khác không có bất kỳ kiến thức nào về biến cục bộ. are those variables present within a block, function, or constructor and can be accessed only inside them. The utilization of the variable is restricted to the block scope. Whenever a local variable is declared inside a method, the other class methods don’t have any knowledge about the local variable. Example:
8. Các giá trị mặc định được gán cho các biến và phiên bản trong Java là gì?
9. Ý bạn là gì khi đóng gói dữ liệu?
10. Hãy cho chúng tôi biết điều gì đó về trình biên dịch JIT.
11. Bạn có thể cho biết sự khác biệt giữa phương thức bằng () và toán tử bình đẳng (==) trong java không?Chúng tôi đã nhận thức được toán tử (==) bằng. Rằng chúng tôi đã sử dụng điều này để so sánh sự bình đẳng của các giá trị. Nhưng khi chúng ta nói về các điều khoản của lập trình hướng đối tượng, chúng ta đối phó với các giá trị dưới dạng các đối tượng. Và đối tượng này có thể chứa nhiều loại dữ liệu. Vì vậy, sử dụng toán tử (==) không hoạt động với trường hợp này. Vì vậy, chúng ta cần phải đi với phương thức .equals ().(==) equals operator. That we have used this to compare the equality of the values. But when we talk about the terms of object-oriented programming, we deal with the values in the form of objects. And this object may contain multiple types of data. So using the (==) operator does not work with this case. So we need to go with the .equals() method. Cả hai chức năng chính [(==) và .euqals ()] là so sánh các giá trị, nhưng chức năng thứ cấp là khác nhau. & NBSP;[(==) and .euqals()] primary functionalities are to compare the values, but the secondary functionality is different. Vì vậy, để hiểu điều này tốt hơn, hãy để xem xét điều này với ví dụ -
Mã này sẽ in đúng. Chúng tôi biết rằng cả hai chuỗi đều bằng nên nó sẽ in đúng. Nhưng ở đây (==) Các toán tử don lồng so sánh từng nhân vật trong trường hợp này. Nó so sánh vị trí bộ nhớ. Và vì chuỗi sử dụng nhóm không đổi để lưu trữ các giá trị trong bộ nhớ, cả STR1 và STR2 đều được lưu trữ tại cùng một vị trí bộ nhớ. Xem giải thích chi tiết trong câu hỏi số 73: Liên kết.(==) Operators don’t compare each character in this case. It compares the memory location. And because the string uses the constant pool for storing the values in the memory, both str1 and str2 are stored at the same memory location. See the detailed Explanation in Question no 73: Link. Bây giờ, nếu chúng ta sửa đổi chương trình một chút với - trong trường hợp này, nó sẽ in sai. Bởi vì ở đây không còn các khái niệm nhóm liên tục được sử dụng. Ở đây, bộ nhớ mới được phân bổ. Vì vậy, ở đây địa chỉ bộ nhớ là khác nhau, do đó (==) toán tử trả về sai. Nhưng xoắn là các giá trị giống nhau trong cả hai chuỗi. Vậy làm thế nào để so sánh các giá trị? Ở đây phương thức .equals () được sử dụng.Then in this case, it will print false. Because here no longer the constant pool concepts are used. Here, new memory is allocated. So here the memory address is different, therefore ( == ) Operator returns false. But the twist is that the values are the same in both strings. So how to compare the values? Here the .equals() method is used. Phương thức .equals () so sánh các giá trị và trả về kết quả tương ứng. & nbsp; nếu chúng tôi sửa đổi mã trên với -& nbsp; method compares the values and returns the result accordingly. If we modify the above code with -
Sau đó, nó trả về đúng.
Note:
12. Làm thế nào một vòng lặp vô hạn được tuyên bố trong Java?Vòng lặp vô hạn là những vòng lặp chạy vô hạn mà không có bất kỳ điều kiện phá vỡ nào. Một số ví dụ về việc tuyên bố một cách có ý thức Vòng lặp vô hạn là:
13. Giải thích ngắn gọn về khái niệm quá tải hàm tạoQuá tải hàm tạo là quá trình tạo nhiều hàm tạo trong lớp bao gồm cùng tên với sự khác biệt trong các tham số hàm tạo. Tùy thuộc vào số lượng tham số và các loại tương ứng của chúng, phân biệt các loại cấu trúc khác nhau được thực hiện bởi trình biên dịch. Các hàm tạo three được xác định ở đây nhưng chúng khác nhau trên cơ sở loại tham số và số của chúng.Three constructors are defined here but they differ on the basis of parameter type and their numbers. 14. Xác định hàm tạo bản sao trong Java.Sao chép Constructor là hàm tạo được sử dụng khi chúng ta muốn khởi tạo giá trị thành đối tượng mới từ đối tượng cũ của cùng một lớp. & NBSP; 0Ở đây chúng tôi đang khởi tạo giá trị đối tượng mới từ giá trị đối tượng cũ trong hàm tạo. Mặc dù, điều này cũng có thể đạt được với sự trợ giúp của nhân bản đối tượng. 15. Phương pháp chính có thể bị quá tải không?Có, có thể làm quá tải phương pháp chính. Chúng ta có thể tạo ra nhiều phương pháp chính quá tải mà chúng ta muốn. Tuy nhiên, JVM có một phương thức gọi được xác định trước mà JVM sẽ chỉ gọi phương thức chính với định nghĩa của -& nbsp; 1Hãy xem xét các đoạn mã dưới đây: & nbsp; 216. Nhận xét về quá tải phương pháp và ghi đè bằng cách trích dẫn các ví dụ có liên quan.Trong Java, quá tải phương thức được thực hiện bằng cách giới thiệu các phương thức khác nhau trong cùng một lớp bao gồm cùng một tên. Tuy nhiên, tất cả các hàm khác nhau về số lượng hoặc loại tham số. Nó diễn ra bên trong một lớp và tăng cường khả năng đọc chương trình.method overloading is made possible by introducing different methods in the same class consisting of the same name. Still, all the functions differ in the number or type of parameters. It takes place inside a class and enhances program readability. Sự khác biệt duy nhất trong loại trả về của phương thức không thúc đẩy quá tải phương thức. Ví dụ sau đây sẽ cung cấp cho bạn một bức tranh rõ ràng về nó. 3Both Các chức năng có cùng tên nhưng khác nhau về số lượng đối số. Phương pháp đầu tiên tính toán diện tích của hình chữ nhật, trong khi phương pháp thứ hai tính toán diện tích của một hình khối.Both the functions have the same name but differ in the number of arguments. The first method calculates the area of the rectangle, whereas the second method calculates the area of a cuboid. Ghi đè phương thức là khái niệm trong đó hai phương pháp có cùng một chữ ký phương thức có mặt trong hai lớp khác nhau trong đó có mối quan hệ thừa kế. Một triển khai phương thức cụ thể (đã có trong lớp cơ sở) có thể cho lớp dẫn xuất bằng cách sử dụng phương thức ghi đè. Hãy xem xét ví dụ này: is the concept in which two methods having the same method signature are present in two different classes in which an inheritance relationship is present. A particular method implementation (already present in the base class) is possible for the derived class by using method overriding. 4Both có tên đi bộ và cùng tham số, khoảng cách và thời gian. Nếu phương thức lớp dẫn xuất được gọi, thì phương thức cơ sở đi bộ được ghi đè bởi phương pháp của lớp dẫn xuất.Both class methods have the name walk and the same parameters, distance, and time. If the derived class method is called, then the base class method walk gets overridden by that of the derived class. 17. Một khối thử duy nhất và nhiều khối bắt có thể cùng tồn tại trong chương trình Java. Giải thích.Có, nhiều khối bắt có thể tồn tại nhưng các cách tiếp cận cụ thể sẽ đến trước cách tiếp cận chung vì chỉ khối bắt đầu tiên thỏa mãn điều kiện bắt được thực hiện. Mã đã cho minh họa giống nhau: 5Ở đây, khối đánh bắt thứ hai sẽ được thực thi vì phân chia 0 (i / x). Trong trường hợp X lớn hơn 0 thì khối đánh bắt đầu tiên sẽ thực thi vì đối với các vòng chạy cho đến khi I = N và chỉ số mảng cho đến N-1. 18. Giải thích việc sử dụng từ khóa cuối cùng trong biến, phương thức và lớp.Trong Java, từ khóa cuối cùng được sử dụng như xác định một cái gì đó là hằng số /cuối cùng và đại diện cho công cụ sửa đổi không truy cập.
19. Làm cuối cùng, cuối cùng và hoàn thiện các từ khóa có cùng chức năng?Tất cả ba từ khóa đều có tiện ích riêng trong khi lập trình. Cuối cùng: Nếu có bất kỳ hạn chế nào được yêu cầu cho các lớp, biến hoặc phương thức, từ khóa cuối cùng có ích. Kế thừa của một lớp cuối cùng và ghi đè một phương pháp cuối cùng bị hạn chế bởi việc sử dụng từ khóa cuối cùng. Giá trị biến trở nên cố định sau khi kết hợp từ khóa cuối cùng. Thí dụ: If any restriction is required for classes, variables, or methods, the final keyword comes in handy. Inheritance of a final class and overriding of a final method is restricted by the use of the final keyword. The variable value becomes fixed after incorporating the final keyword. Example: 6Tuyên bố thứ hai sẽ ném lỗi. Cuối cùng: Đó là khối có mặt trong một chương trình trong đó tất cả các mã được viết bên trong, nó được thực thi không phân biệt việc xử lý các ngoại lệ. Thí dụ: It is the block present in a program where all the codes written inside it get executed irrespective of handling of exceptions. Example: 7Hoàn thiện: Trước khi thu thập rác của một đối tượng, phương pháp hoàn thiện được gọi là để hoạt động dọn dẹp được thực hiện. Thí dụ: Prior to the garbage collection of an object, the finalize method is called so that the clean-up activity is implemented. Example: 820. Có thể là khối ‘cuối cùng sẽ không được thực thi? Nếu có thì hãy liệt kê trường hợp.& nbsp; vâng. Có thể là khối ‘cuối cùng sẽ không được thực thi. Các trường hợp là-
21. Xác định đầu ra của chương trình Java và nêu lý do. 9Mã trên sẽ tạo ra lỗi thời gian biên dịch tại dòng 7 nói - [Lỗi: Biến tôi có thể đã được khởi tạo]. Đó là bởi vì biến ’i, là biến cuối cùng. Và các biến cuối cùng chỉ được phép khởi tạo một lần và điều đó đã được thực hiện trên dòng số 5.[error: variable i might already have been initialized]. It is because variable ‘i’ is the final variable. And final variables are allowed to be initialized only once, and that was already done on line no 5. 22. Khi nào bạn có thể sử dụng Super Keyword?
023. Các phương pháp tĩnh có thể bị quá tải không?Đúng! Có thể có hai hoặc nhiều phương thức tĩnh trong một lớp có cùng tên nhưng các tham số đầu vào khác nhau. 24. Tại sao phương pháp chính là tĩnh trong java?Phương pháp chính luôn là tĩnh vì các thành viên tĩnh là những phương pháp thuộc về các lớp, không phải đối với một đối tượng riêng lẻ. Vì vậy, nếu phương pháp chính sẽ không tĩnh thì đối với mọi đối tượng, nó có sẵn. Và điều đó không được JVM chấp nhận. JVM gọi phương thức chính dựa trên chính tên lớp. Không phải bằng cách tạo đối tượng. Bởi vì chỉ phải có 1 phương pháp chính trong chương trình Java khi việc thực hiện bắt đầu từ phương thức chính. Vì vậy, vì lý do này, phương pháp chính là tĩnh. & Nbsp; 25. Các phương thức tĩnh có thể được ghi đè không?
26. Sự khác biệt giữa các phương pháp tĩnh, các biến tĩnh và các lớp tĩnh trong Java.
27. Mục tiêu chính của bộ sưu tập rác là gì?Mục tiêu chính của quá trình này là giải phóng không gian bộ nhớ bị chiếm bởi các đối tượng không cần thiết và không thể truy cập trong quá trình thực hiện chương trình Java bằng cách xóa các đối tượng không thể truy cập đó.
28. Trình tải lớp là gì?
29. Phần nào của bộ nhớ - Stack hoặc Heap - được làm sạch trong quy trình thu gom rác?Heap. 30. Bản sao nông và bản sao sâu trong Java là gì?Để sao chép dữ liệu của đối tượng, chúng tôi có một số phương thức như bản sao sâu và bản sao nông. & NBSP; Ví dụ -& nbsp; 1Đối tượng cho lớp hình chữ nhật này - hình chữ nhật obj1 = hình chữ nhật mới ();Rectangle obj1 = new Rectangle();
2Bây giờ bằng cách này, những gì sẽ xảy ra là tài liệu tham khảo mới được tạo với tên OBJ2 và điều đó sẽ chỉ vào cùng một vị trí bộ nhớ.
3Cả hai đối tượng này sẽ trỏ đến vị trí bộ nhớ như đã nêu dưới đây - Bây giờ, nếu chúng ta thay đổi các giá trị trong bản sao nông thì chúng cũng ảnh hưởng đến tài liệu tham khảo khác. Hãy xem với sự trợ giúp của một ví dụ -& nbsp; 4Đầu ra - 5Chúng ta có thể thấy rằng trong mã trên, nếu chúng ta thay đổi các giá trị của Object1, thì các giá trị Object2 cũng bị thay đổi. Đó là vì tài liệu tham khảo. Bây giờ, nếu chúng ta thay đổi mã thành bản sao sâu, thì sẽ không có ảnh hưởng đến Object2 nếu nó thuộc loại Deep Sao chép. Hãy xem xét một số đoạn trích được thêm vào trong mã trên. 6Đoạn trích trên sẽ không ảnh hưởng đến các giá trị đối tượng2. Nó có các giá trị riêng biệt của nó. Đầu ra sẽ là 7Bây giờ chúng ta thấy rằng chúng ta cần viết số lượng mã cho bản sao sâu này. Vì vậy, để giảm điều này, trong Java, có một phương thức gọi là clone (). & Nbsp;clone(). Bản sao () sẽ thực hiện bản sao sâu này trong nội bộ và trả về một đối tượng mới. Và để làm điều này, chúng ta chỉ cần viết 1 dòng mã. Đó là - hình chữ nhật obj2 = obj1.clone ();clone() will do this deep copy internally and return a new object. And to do this we need to write only 1 line of code. That is - Rectangle obj2 = obj1.clone(); Câu hỏi phỏng vấn nâng cao Java70. Mặc dù kế thừa là một khái niệm OOPS phổ biến, nhưng nó ít thuận lợi hơn so với thành phần. Giải thích.Kế thừa tụt lại phía sau thành phần trong các kịch bản sau:
Hãy lấy một ví dụ: 8Trong ví dụ trên, kế thừa được tuân theo. Bây giờ, một số sửa đổi được thực hiện cho lớp hàng đầu như thế này: 9Nếu việc triển khai mới của lớp hàng đầu được tuân thủ, một lỗi thời gian biên dịch sẽ xảy ra trong lớp dưới cùng. Loại trả về không tương thích là có chức năng Top.Stop (). Các thay đổi phải được thực hiện cho lớp trên cùng hoặc lớp dưới cùng để đảm bảo khả năng tương thích. Tuy nhiên, kỹ thuật thành phần có thể được sử dụng để giải quyết vấn đề đã cho: 071. Sự khác biệt giữa các nhà khai thác ‘>> và‘ >>> trong Java là gì?2 này là các toán tử thay đổi bên phải bitwise. Mặc dù cả hai nhà khai thác trông giống nhau. Nhưng có một sự khác biệt tối thiểu giữa hai toán tử thay đổi bên phải này.
Ví dụ- num1 = 8, num2 = -8. Num1 = 8, Num2 = -8. Vì vậy, dạng nhị phân của các số này là -& nbsp; Num1 = 00000000 00000000 00000000 00001000 & nbsp; num2 = 11111111 11111111 11111111 & nbsp; 11111000 ‘>> toán tử của người khác: 8 >> 1 (dịch chuyển theo một bit): & nbsp; : 8 >> 1 (Shift by one bit) : Num1 = 00000000 00000000 00000000 00000100Num2 = 111111 11111111 11111111 & NBSP; 11111100 ’: 8 >>> 1 (Shift by one bit) = Num1 = 00000000 00000000 00000000 00000100Num2 = 01111111 11111111 111111 1111111100 72. Thành phần và tập hợp là gì? Nêu sự khác biệt.Thành phần và tập hợp giúp xây dựng (có - mối quan hệ) giữa các lớp và đối tượng. Nhưng cả hai không giống nhau cuối cùng. Hãy cùng hiểu với sự trợ giúp của một ví dụ. & NBSP;Let’s understand with the help of an example.
73. Làm thế nào là tạo ra một chuỗi sử dụng mới () khác với một chuỗi theo nghĩa đen?Khi một chuỗi được hình thành như một nghĩa đen với sự hỗ trợ của toán tử gán, nó sẽ đi vào nhóm không đổi chuỗi để có thể thực hiện chuỗi chuỗi. Cùng một đối tượng trong heap sẽ được tham chiếu bởi một chuỗi khác nếu nội dung giống nhau cho cả hai. 1Hàm séc () sẽ trả về true vì cùng một nội dung được tham chiếu bởi cả hai biến. Ngược lại, khi một sự hình thành chuỗi diễn ra với sự trợ giúp của toán tử mới (), việc thực tập không diễn ra. Đối tượng được tạo trong bộ nhớ heap ngay cả khi cùng một đối tượng nội dung có mặt. 2Hàm kiểm tra () sẽ trả về sai vì cùng một nội dung không được tham chiếu bởi cả hai biến. 74. Toán tử ’mới khác với toán tử‘ newinstance () trong Java?Cả hai toán tử ’mới và‘ newinstance () đều được sử dụng để tạo các đối tượng. Sự khác biệt là- rằng khi chúng ta đã biết tên lớp mà chúng ta phải tạo đối tượng thì chúng ta sử dụng toán tử mới. Nhưng giả sử chúng tôi không biết tên lớp mà chúng tôi cần tạo đối tượng hoặc chúng tôi lấy tên lớp từ đối số dòng lệnh hoặc cơ sở dữ liệu hoặc tệp. Sau đó, trong trường hợp đó, chúng tôi sử dụng toán tử ‘newinstance ().new’ and ‘newInstance()’ operators are used to creating objects. The difference is- that when we already know the class name for which we have to create the object then we use a new operator. But suppose we don’t know the class name for which we need to create the object, Or we get the class name from the command line argument, or the database, or the file. Then in that case we use the ‘newInstance()’ operator. Từ khóa ‘newinstance () ném một ngoại lệ mà chúng ta cần xử lý. Đó là bởi vì có nhiều khả năng định nghĩa lớp không tồn tại và chúng tôi nhận được tên lớp từ thời gian chạy. Vì vậy, nó sẽ ném một ngoại lệ.newInstance()’ keyword throws an exception that we need to handle. It is because there are chances that the class definition doesn’t exist, and we get the class name from runtime. So it will throw an exception. 75. Có vượt quá giới hạn bộ nhớ có thể trong một chương trình mặc dù có bộ thu gom rác không?Có, chương trình có thể thoát khỏi bộ nhớ bất chấp sự hiện diện của một người thu gom rác. Bộ sưu tập rác hỗ trợ nhận ra và loại bỏ những đối tượng không cần thiết trong chương trình nữa, để giải phóng các tài nguyên được sử dụng bởi chúng. Trong một chương trình, nếu một đối tượng không thể truy cập được, thì việc thực hiện bộ sưu tập rác diễn ra đối với đối tượng đó. Nếu lượng bộ nhớ cần thiết để tạo một đối tượng mới là không đủ, thì bộ nhớ sẽ được giải phóng cho các đối tượng không còn trong phạm vi với sự trợ giúp của bộ thu gom rác. Giới hạn bộ nhớ vượt quá cho chương trình khi bộ nhớ được phát hành là không đủ để tạo các đối tượng mới. Hơn nữa, sự kiệt sức của bộ nhớ heap diễn ra nếu các đối tượng được tạo theo cách mà chúng vẫn ở trong phạm vi và tiêu thụ bộ nhớ. Nhà phát triển nên đảm bảo bỏ đi đối tượng sau khi công việc của nó được hoàn thành. Mặc dù người thu gom rác đã nỗ lực tốt nhất để lấy lại bộ nhớ càng nhiều càng tốt, giới hạn bộ nhớ vẫn có thể được vượt quá. Hãy cùng xem ví dụ sau: 376. Tại sao đồng bộ hóa cần thiết? Giải thích với sự trợ giúp của một ví dụ có liên quan.Thực hiện đồng thời các quá trình khác nhau được thực hiện bằng cách đồng bộ hóa. Khi một tài nguyên cụ thể được chia sẻ giữa nhiều luồng, các tình huống có thể phát sinh trong đó nhiều luồng yêu cầu cùng một tài nguyên được chia sẻ. Đồng bộ hóa hỗ trợ giải quyết vấn đề và tài nguyên được chia sẻ bởi một luồng tại một thời điểm. Hãy để một ví dụ để hiểu rõ hơn. Ví dụ: bạn có một URL và bạn phải tìm ra số lượng yêu cầu thực hiện cho nó. Hai yêu cầu đồng thời có thể làm cho số lượng thất thường. Không đồng bộ hóa: 4if một luồng luồng1 xem số lượng là 10, nó sẽ được tăng từ 1 đến 11. Đồng thời, nếu một luồng khác 2 xem số lượng là 10, nó sẽ được tăng lên 1 đến 11. Do đó, sự không nhất quán trong các giá trị đếm diễn ra vì Giá trị cuối cùng dự kiến là 12 nhưng giá trị cuối cùng thực tế chúng tôi nhận được sẽ là 11.If a thread Thread1 views the count as 10, it will be increased by 1 to 11. Simultaneously, if another thread Thread2 views the count as 10, it will be increased by 1 to 11. Thus, inconsistency in count values takes place because the expected final value is 12 but the actual final value we get will be 11. Bây giờ, chức năng tăng () được thực hiện đồng bộ để không thể truy cập đồng thời. Với đồng bộ hóa: 5 nếu một luồng1 xem số đếm là 10, nó sẽ được tăng lên 1 đến 11, sau đó luồng2 sẽ xem số lượng là 11, nó sẽ được tăng lên 1 đến 12. Do đó, tính nhất quán trong các giá trị đếm diễn ra.If a thread Thread1 views the count as 10, it will be increased by 1 to 11, then the thread Thread2 will view the count as 11, it will be increased by 1 to 12. Thus, consistency in count values takes place. 77. Trong mã đã cho dưới đây, tầm quan trọng của ...? 6
778. Điều gì sẽ là đầu ra của chương trình Java dưới đây và xác định các bước thực hiện chương trình Java với sự trợ giúp của mã dưới đây? 8Đầu ra chúng tôi nhận được bằng cách thực hiện chương trình này sẽ Khối tĩnh 1. Giá trị của J = 0 Phương thức Đây là một câu hỏi phỏng vấn khó khăn của Java thường gặp trong các cuộc phỏng vấn của Java cho kinh nghiệm. Đầu ra sẽ như thế này bởi vì, khi chương trình Java được biên dịch và được thực thi, thì có nhiều bước khác nhau để thực hiện. Và các bước là -& nbsp;
Trong các bước trên từ 4 đến 6, sẽ được thực hiện cho mọi tạo đối tượng. Nếu chúng ta tạo nhiều đối tượng thì cho mọi đối tượng, các bước này sẽ được thực hiện. Bây giờ từ mã trên, việc thực thi sẽ xảy ra như thế này -& nbsp; 1. Trong bước xác định của các thành viên tĩnh. Nó được tìm thấy rằng -
Trong quá trình nhận dạng, JVM sẽ gán giá trị mặc định trong biến int j tĩnh. Sau đó, nó hiện đang ở trong tình trạng đọc và viết gián tiếp. Bởi vì giá trị ban đầu không được gán. 2. Trong bước tiếp theo, nó sẽ thực thi khối tĩnh và gán giá trị trong các biến tĩnh.
3. Bây giờ nó sẽ thực hiện phương pháp chính. Trong đó nó sẽ tạo ra một đối tượng cho cuộc phỏng vấn lớp. Và sau đó việc thực hiện các trường hợp sẽ xảy ra. 4. Xác định các biến thể hiện và các khối từ trên xuống dưới. & NBSP;
Giống như một biến tĩnh, biến thể hiện cũng đã được khởi tạo với giá trị mặc định 0 và sẽ ở trạng thái đọc và viết gián tiếp. 5. Nó sẽ thực thi các phương thức thể hiện và gán giá trị ban đầu cho biến thể hiện.
6. Và ở bước cuối cùng, hàm tạo sẽ được gọi và các dòng sẽ được thực thi trong hàm tạo. Đây là cách chương trình Java được thực hiện. 79. Xác định System.out.println ().System.out.println () được sử dụng để in tin nhắn trên bảng điều khiển. Hệ thống - Đây là một lớp có trong gói java.lang. Out là biến tĩnh của lớp PrintStream có trong lớp hệ thống. println () là phương thức có trong lớp PrintStream. is used to print the message on the console. System - It is a class present in java.lang package. Out is the static variable of type PrintStream class present in the System class. println() is the method present in the PrintStream class. Vì vậy, nếu chúng ta biện minh cho tuyên bố, thì chúng ta có thể nói rằng nếu chúng ta muốn in bất cứ thứ gì trên bảng điều khiển thì chúng ta cần gọi phương thức println () có mặt trong lớp PrintStream. Và chúng ta có thể gọi nó bằng cách sử dụng đối tượng đầu ra có trong lớp hệ thống.println() method that was present in PrintStream class. And we can call this using the output object that is present in the System class. 80. Bạn có thể giải thích vòng đời chủ đề Java không?Java Thread Life Vòng đời như sau:
Sơ đồ sau đây giải thích rõ ràng vòng đời của chủ đề trong Java. 81. Điều gì có thể là sự đánh đổi giữa việc sử dụng một mảng không có thứ tự so với việc sử dụng một mảng được đặt hàng?
82. Có thể nhập cùng một lớp hoặc gói hai lần trong Java và điều gì xảy ra với nó trong thời gian chạy?Tuy nhiên, có thể nhập một lớp hoặc gói nhiều lần, tuy nhiên, nó là dự phòng vì JVM chỉ tải gói hoặc lớp một lần. 83. Trong trường hợp gói có các gói phụ, liệu có đủ để nhập gói chính không? ví dụ. Nhập com.mymainpackage.* Cũng nhập com.mymainpackage.mysubpackage.*?Đây là một không lớn. Chúng ta cần hiểu rằng việc nhập các gói phụ của gói cần được thực hiện rõ ràng. Nhập gói cha mẹ chỉ dẫn đến việc nhập các lớp trong đó chứ không phải nội dung của các gói con/phụ của nó. 84. Khối cuối cùng sẽ được thực thi nếu hệ thống mã.exit (0) được viết ở cuối khối thử?KHÔNG. Việc kiểm soát bài chương trình 2 ngay lập tức biến mất và chương trình bị chấm dứt, đó là lý do tại sao khối cuối cùng không bao giờ được thực thi.85. Bạn hiểu gì về giao diện đánh dấu trong Java?Giao diện đánh dấu, còn được gọi là giao diện gắn thẻ là những giao diện không có phương thức và hằng số được xác định trong chúng. Họ ở đó để giúp trình biên dịch và JVM có được thông tin liên quan đến thời gian chạy liên quan đến các đối tượng. 86. Giải thích thuật ngữ khởi tạo gấp đôi gấp đôi trong Java?Đây là một phương tiện thuận tiện để khởi tạo bất kỳ bộ sưu tập nào trong Java. Hãy xem xét các ví dụ dưới đây. 9Trong ví dụ trên, chúng ta thấy rằng các chuỗi đã được khởi tạo bằng cách sử dụng niềng răng đôi.
Cần cẩn thận trong khi khởi tạo thông qua phương pháp này vì phương pháp liên quan đến việc tạo các lớp bên trong ẩn danh có thể gây ra vấn đề trong quá trình thu thập rác hoặc tuần tự hóa và cũng có thể dẫn đến rò rỉ bộ nhớ. 87. Tại sao người ta nói rằng phương thức độ dài () của lớp chuỗi không trả về kết quả chính xác?
Bây giờ nếu một chuỗi chứa các ký tự bổ sung, hàm độ dài sẽ được tính là 2 đơn vị và kết quả của hàm độ dài () sẽ không theo những gì được mong đợi. Nói cách khác, nếu có 1 ký tự bổ sung của 2 đơn vị, độ dài của ký tự đơn đó được coi là hai - để ý sự không chính xác ở đây? Theo tài liệu Java, nó được mong đợi, nhưng theo logic thực sự, nó không chính xác. 88. Đầu ra của mã dưới đây là gì và tại sao? 0Bit bit có thể là kết quả được in nếu các chữ cái được sử dụng trong các trình điều khiển kép (hoặc các chữ theo chuỗi). Nhưng câu hỏi có các chữ ký tự (trích dẫn đơn) đang được sử dụng, đó là lý do tại sao việc kết hợp sẽ không xảy ra. Các giá trị ASCII tương ứng của mỗi ký tự sẽ được thêm vào và kết quả của số tiền đó sẽ được in. Các giá trị ASCII của ‘B,‘ I, ’T, là:
3Do đó 319 sẽ được in. 89. Những cách có thể để làm cho đối tượng đủ điều kiện cho Bộ sưu tập rác (GC) trong Java là gì?Cách tiếp cận đầu tiên: Đặt các tham chiếu đối tượng cho NULL sau khi mục đích tạo đối tượng được phục vụ. Set the object references to null once the object creation purpose is served. 1Cách tiếp cận thứ hai: Chỉ biến tham chiếu đến một đối tượng khác. Làm điều này, đối tượng mà biến tham chiếu đã tham chiếu trước khi đủ điều kiện cho GC. Point the reference variable to another object. Doing this, the object which the reference variable was referencing before becomes eligible for GC. 2Cách tiếp cận thứ ba: Phương pháp cách ly đảo cách ly: Khi 2 biến tham chiếu chỉ vào các trường hợp của cùng một lớp và các biến này chỉ đề cập đến nhau và các đối tượng được chỉ ra bởi 2 biến này không có bất kỳ tài liệu tham khảo nào khác, thì nó được cho là có Được thành lập một hòn đảo cô lập của người Hồi giáo và 2 đối tượng này đủ điều kiện cho GC.Island of Isolation Approach: When 2 reference variables pointing to instances of the same class, and these variables refer to only each other and the objects pointed by these 2 variables don't have any other references, then it is said to have formed an “Island of Isolation” and these 2 objects are eligible for GC. 390. Trong chương trình Java dưới đây, có bao nhiêu đối tượng đủ điều kiện để thu gom rác? 4Trong chương trình trên, tổng cộng 7 đối tượng sẽ đủ điều kiện để thu gom rác. Hãy để trực quan hiểu những gì đang xảy ra trong mã. Trong hình trên trên dòng 3, chúng ta có thể thấy rằng trên mỗi chỉ mục mảng, chúng ta đang khai báo một mảng mới để tham chiếu sẽ là của mảng mới trên tất cả 3 chỉ mục. Vì vậy, mảng cũ sẽ được chỉ ra bởi không có. Vì vậy, ba người này đủ điều kiện để thu gom rác. Và trên dòng 4, chúng tôi đang tạo một đối tượng mảng mới trên tham chiếu cũ hơn. Vì vậy, điều đó sẽ chỉ ra một mảng mới và các đối tượng đa chiều cũ sẽ trở thành đủ điều kiện để thu gom rác. 91. Cách tốt nhất để tiêm phụ thuộc là gì? Ngoài ra, nêu lý do.Không có giới hạn cho việc sử dụng một lần tiêm phụ thuộc cụ thể. Nhưng phương pháp được đề xuất là -& nbsp; Các setters chủ yếu được khuyến nghị cho các phụ thuộc tùy chọn tiêm, và các đối số của hàm tạo được khuyến nghị cho các đối số bắt buộc. Điều này là do việc tiêm nhà xây dựng cho phép tiêm các giá trị vào các trường bất biến và cho phép đọc chúng dễ dàng hơn. 92. Làm thế nào chúng ta có thể đặt phạm vi đậu lò xo. Và nó có phạm vi hỗ trợ nào?Một phạm vi có thể được đặt bằng một chú thích như chú thích @scope hoặc thuộc tính "phạm vi" trong tệp cấu hình XML. Spring Bean hỗ trợ năm phạm vi sau:
93. Các loại khác nhau của các mẫu thiết kế Java là gì?Các mẫu thiết kế Java được phân loại thành các loại khác nhau sau. Và đó cũng được phân loại thêm là & nbsp; Mô hình cấu trúc:
Mẫu hành vi:
Các mẫu J2EE:
Các mẫu sáng tạo:
94. Rò rỉ bộ nhớ là gì? Thảo luận về một số nguyên nhân phổ biến của nó.Trình thu gom rác Java (GC) thường loại bỏ các đối tượng không sử dụng khi chúng không còn cần thiết, nhưng khi chúng vẫn được tham chiếu, các đối tượng không sử dụng không thể được gỡ bỏ. Vì vậy, điều này gây ra vấn đề rò rỉ bộ nhớ. Ví dụ - xem xét một danh sách được liên kết như cấu trúc bên dưới -Example - Consider a linked list like the structure below - Trong hình trên, có những đối tượng không sử dụng không được tham chiếu. Nhưng sau đó cũng thu gom rác sẽ không giải phóng nó. Bởi vì nó đang tham khảo một số đối tượng được tham chiếu hiện có. Vì vậy, đây có thể là tình huống rò rỉ bộ nhớ. Một số nguyên nhân phổ biến của rò rỉ bộ nhớ là -& nbsp; -
95. Giả sử một luồng có khóa trên nó, gọi phương thức Sleep () trên chủ đề đó sẽ giải phóng khóa?Một chủ đề có khóa sẽ không được phát hành ngay cả sau khi nó gọi Sleep (). Mặc dù chủ đề ngủ trong một khoảng thời gian xác định, khóa sẽ không được giải phóng. Câu hỏi phỏng vấn lập trình Java96. Kiểm tra xem một chuỗi nhất định là palindrom bằng cách sử dụng đệ quy. 597. Viết một chương trình Java để in loạt Fibonacci bằng cách sử dụng đệ quy. 6Trong mã trên, chúng tôi đang in các giá trị cơ sở 2 Fibonacci 0 và 1. và sau đó dựa trên độ dài của fibonacci sẽ được in, chúng tôi đang sử dụng hàm trợ giúp để in đó. 98. Viết một chương trình Java để kiểm tra xem hai chuỗi có phải là đảo chữ không.Ý tưởng chính là xác nhận độ dài của chuỗi và sau đó nếu được tìm thấy bằng nhau, hãy chuyển đổi chuỗi thành mảng char và sau đó sắp xếp các mảng và kiểm tra xem cả hai đều bằng nhau. 799. Viết một chương trình Java để tìm giai thừa của một số nhất định. 8100.Ý tưởng là tìm tổng n số tự nhiên bằng cách sử dụng công thức và sau đó tìm tổng số số trong mảng đã cho. Trừ hai khoản tiền này dẫn đến số đó là số còn thiếu thực tế. Điều này dẫn đến độ phức tạp thời gian O (n) và độ phức tạp không gian O (1). 9101. Viết chương trình Java để kiểm tra xem có số có số ma thuật hay không. Một số được cho là một số ma thuật nếu sau khi thực hiện tổng số chữ số trong mỗi bước và inturn thực hiện tổng số các chữ số đó, kết quả cuối cùng (khi chỉ còn lại một chữ số) là 1.Ví dụ, xem xét số:
0102. Viết chương trình Java để tạo và ném các ngoại lệ tùy chỉnh. 1Chúng tôi đã tạo lớp ngoại lệ được đặt tên với CustomException và được gọi là hàm tạo ngoại lệ cơ sở với thông báo lỗi mà chúng tôi muốn in. Và để tránh xử lý các ngoại lệ trong phương thức chính, chúng tôi đã sử dụng từ khóa ném trong khai báo phương thức. 103. Viết một chương trình Java để đảo ngược một chuỗi. 2Trong mã trên, chúng tôi đang lưu trữ ký tự cuối cùng từ chuỗi đến giá trị đầu tiên và giá trị đầu tiên đến cuối cùng trong mảng ký tự đầu ra. Và làm điều tương tự trong vòng lặp cho các ký tự 2 đến N-1 còn lại. Đây là cách chuỗi sẽ được đảo ngược. 104. Viết chương trình Java để xoay mảng 90 độ theo chiều kim đồng hồ bằng cách lấy ma trận từ đầu vào của người dùng. 3Trong mã trên, để xoay ma trận sang & nbsp; 90 độ, trước tiên chúng ta chuyển ma trận để hàng trở thành cột. Và sau đó, chúng tôi đang đảo ngược từng hàng trong ma trận. Vì vậy, đây là cách ma trận được xoay. 105. Viết chương trình Java để kiểm tra xem có số nào được đưa ra dưới dạng đầu vào không phải là tổng của 2 số nguyên tố.Thí dụ : Đầu vào - 18 Đầu ra -& nbsp; 18 = 13 + 518 = 11 + 7 4Trong mã trên, đối với bất kỳ số N nào, chúng tôi tìm thấy tất cả 2 cặp số được thêm vào với nhau dẫn đến n. Và mỗi số kiểm tra nếu nó là Prime. Nếu đó là Prime thì chúng ta đang in nó. n, we find all the 2 pairs of numbers that are added together resulting in n. And each checking number if it is prime. If it is prime then we are printing that. 106. Viết một chương trình Java để giải quyết vấn đề Tháp Hà Nội. 5Trong mã trên, trước tiên chúng tôi di chuyển đĩa N-1 từ tháp A sang tháp B, sau đó di chuyển đĩa thứ n đó từ tháp A sang tháp C, và cuối cùng, đĩa N-1 còn lại từ tháp B sang tháp C. và chúng tôi đang làm điều này một cách đệ quy cho đĩa N-1.n-1 disk from Tower A to Tower B, then moving that nth disk from Tower A to Tower C, and finally, the remaining n-1 disk from Tower B to Tower C. And we are doing this recursively for the n-1 disk. 107. Thực hiện tìm kiếm nhị phân trong Java bằng cách sử dụng đệ quy. 6Trong mã trên, chúng tôi đang tìm phần tử giữa mỗi lần và kiểm tra xem phần tử ở giữa hay không. Nếu không, thì chúng tôi kiểm tra phía nào từ giữa nó tồn tại. Và tìm kiếm đệ quy trên Subarray cụ thể. Vì vậy, bằng cách này, chúng tôi đang giảm 2 không gian tìm kiếm mỗi lần. Vì vậy, thời gian tìm kiếm rất thấp. Java MCQNgười phiên dịch không là gì ngoài trình biên dịch JIT. Nó hoạt động như trung bình giữa JVM và JIT. Nó thực hiện chuyển đổi mã byte thành mã máy. Nó đọc mã cấp cao và thực thi chúng. Sự kết hợp Tập hợp Thành phần Đóng gói Phương pháp int-float Phương pháp float-int Dịch lỗi Lỗi runtime 0 1 Dịch lỗi Lỗi runtime Lỗi runtime Bộ sưu tập rác không xảy ra trong quá trình thực hiện chủ đề. Chủ đề tạm dừng trong khi quá trình thu gom rác chạy. Cả hai quá trình diễn ra đồng thời và không can thiệp vào việc thực hiện của nó. Không có gì xảy ra, chủ đề tiến hành thực thi. sai sai đúng rồi đúng sai sai đúng Nó gọi các hàm tạo. Nó có cùng chức năng của toán tử mới. Nó tạo đối tượng nếu lớp không có hàm tạo được xác định. 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ì ?. Tôi nên chuẩn bị gì cho cuộc phỏng vấn Java?Những chủ đề nào để chuẩn bị cho các cuộc phỏng vấn Java ?.. Nguyên tắc cơ bản của Java .. Cấu trúc dữ liệu và thuật toán .. Các khái niệm hướng đối tượng .. MultiThreading, đồng thời và cơ bản chủ đề .. Khung bộ sưu tập Java .. Chuyển đổi loại ngày và các nguyên tắc cơ bản .. Array.. Thu gom rác thải.. 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..... |