100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

Mục lục

Show
  • 1 Tổng hợp 100 câu hỏi phỏng vấn
    • 1.1 Câu 1: Sự khác nhau giữa Inner class và Sub-class
    • 1.2 Câu 2: Phạm vi truy cập của các thành phần trong java hay access modifier là gì?
    • 1.3 Câu 3: Mục đích của Static method và Static variables là gì?
    • 1.4 Câu 4: Ý nghĩa của việc đóng gói dữ liệu?
    • 1.5 Câu 5: Lớp singleton là gì? Cho một ví dụ thực tế về cách sử dụng của nó.
    • 1.6 Câu 6. Vòng lặp trong Java là gì? kể tên các loại vòng lặp trong java?
    • 1.7 Câu 7: Vòng lặp vô hạn là gì? Vòng lặp vô hạn được khai báo như thế nào?
    • 1.8 Câu 8: Sự khác biệt giữa câu lệnh continue và break là gì?
    • 1.9 Câu 9: Sự khác biệt giữa biến double và biến float trong Java là gì?
    • 1.10 Câu 10: Từ Final trong Java là gì? Cho một ví dụ.
    • 1.11 Câu 11: Toán tử ternary là gì? Cho một ví dụ
    • 1.12 Câu 12: Làm cách nào bạn có thể tạo số ngẫu nhiên trong Java?
    • 1.13 Câu 13: Default case trong switch-case là gì? Đưa ra ví dụ.
    • 1.14 Câu 14: Lớp cơ sở trong Java mà tất cả các lớp được dẫn xuất từ ​​đó là gì?
    • 1.15 Câu 15: Phương thức main () trong Java có thể trả về bất kỳ dữ liệu nào không?
    • 1.16 Câu 16: Package trong Java là gì? Ý nghĩa của các package là gì?
    • 1.17 Câu 17: Chúng ta có thể khai báo một lớp là Abstract mà không có bất kỳ phương thức trừu tượng nào không?
    • 1.18 Câu 18: Sự khác biệt giữa Abstract Class và Interface trong Java là gì?
    • 1.19 Câu 19: Chúng ta có thể khai báo phương thức main() là private không?
    • 1.20 Câu 20: Chúng ta có thể truyền các đối số vào hàm theo dạng pass-by-reference thay vì pass-by-value không?
    • 1.21 Câu 21: Cách một đối tượng được tuần tự hóa trong java
    • 1.22 Câu 22: Khi nào chúng ta nên sử dụng tuần tự hóa
    • 1.23 Câu 23: Có bắt buộc Try Block phải được đi kèm Catch block trong Java để xử lý Ngoại lệ không?
    • 1.24 Câu 24 – Khi nào hàm khởi tạo của một lớp được gọi?
    • 1.25 Câu 25:  Một lớp có thể có nhiều hàm khởi tạo không?
    • 1.26 Câu 26: Chúng ta có thể ghi đè các phương thức tĩnh – static method của một lớp không?
    • 1.27 Câu 27: Trong ví dụ dưới đây, đầu ra sẽ là gì?
    • 1.28 Câu 28: Stribg có phải là một kiểu dữ liệu trong java không?
    • 1.29 Câu 29: Trong ví dụ dưới đây, có bao nhiêu Đối tượng chuỗi được tạo?
    • 1.30 Câu 30: Tại sao các String trong Java được gọi là Bất biến?
    • 1.31 Câu 31: Sự khác biệt giữa array và Vector là gì?
    • 1.32 Câu 32: Đa luồng là gì?
    • 1.33 Câu 33: Hai cách triển khai đa luồng trong Java là gì?
    • 1.34 Câu 34: Khi String có giá trị thay đổi liên tục, cái nào nên được ưu tiên sử dụng? String hay StringBuffer?
    • 1.35 Câu 35: Mục đích của việc sử dụng Break trong mỗi trường hợp của Switch Statement là gì?
    • 1.36 Câu 36: Thu gom rác được thực hiện như thế nào trong Java?
    • 1.37 Câu 37: Một lớp có thể đồng thời là supper-class và là sub-class không? Đưa ra ví dụ
    • 1.38 Câu 38: Làm thế nào các đối tượng của một lớp được tạo ra nếu không có hàm tạo nào được định nghĩa trong lớp?
    • 1.39 Câu 38: Trong đa luồng làm thế nào chúng ta có thể đảm bảo rằng một tài nguyên không được nhiều luồng sử dụng đồng thời?
    • 1.40 Câu 40: Chúng ta có thể gọi hàm tạo của một lớp nhiều hơn một lần cho một đối tượng không?
    • 1.41 Câu 41: Chúng ta có thể có hai phương thức trong một lớp có cùng tên không?
    • 1.42 Câu 42: Làm cách nào chúng ta có thể tạo bản sao của một đối tượng java?
    • 1.43 Câu 43: Lợi ích của việc sử dụng kế thừa là gì?
    • 1.44 Câu 44: Access modifier mặc định cho các biến và phương thức của một class là gì?
    • 1.45 Câu 45: Cho một ví dụ về việc sử dụng Con trỏ trong Java.
    • 1.46 Câu 46: Sự khác biệt giữa Stack và Queue là gì?
    • 1.47 Câu 47: Trong Java, làm thế nào để loại bỏ một biến trong tuần tự hoá
    • 1.48 Câu 48: Làm thế nào chúng ta có thể sử dụng các kiểu dữ liệu nguyên thủy làm đối tượng?
    • 1.49 Câu 49: Những loại ngoại lệ nào được bắt tại thời điểm biên dịch?
    • 1.50 Câu 50: Chúng ta có thể sử dụng hàm khởi tạo mặc định khi đã có ít nhất một hàm khởi tạo được định nghĩa.
    • 1.51 Câu 51: Chúng ta có thể ghi đè một phương thức bằng cách sử dụng cùng một tên phương thức và các đối số nhưng kiểu trả về khác nhau không?
    • 1.52 Câu 52: Đầu ra của đoạn mã sau là gì?
    • 1.53 Câu 53: Một người nói rằng anh ta đã biên dịch thành công một lớp java mà không cần có phương thức main trong đó? Có khả thi không?
    • 1.54 Câu 54: Chúng ta có thể gọi một phương thức không tĩnh từ bên trong một phương thức tĩnh không?
    • 1.55 Câu 55: Hai biến môi trường phải được đặt để chạy bất kỳ chương trình Java nào?
    • 1.56 Câu 63: Có thể định nghĩa một phương thức trong lớp Java nhưng cung cấp việc thực thi nó trong mã của một ngôn ngữ khác như C không?
    • 1.57 Câu 64: Các hàm hủy được định nghĩa như thế nào trong Java?
    • 1.58 Câu 65: Một biến có thể là cục bộ và tĩnh cùng một lúc không?
    • 1.59 Câu 66: Trong interface có thể chứa static method được không?
    • 1.60 Câu 67: Trong lập trình luồng Java, phương pháp nào là phải triển khai cho tất cả các luồng?
    • 1.61 Câu 68: Làm cách nào để lập trình viên có thể ném một ngoại lệ theo cách thủ công?
    • 1.62 Câu 69: Làm thế nào các đối tượng được lưu trữ trong Java?
    • 1.63 Câu 70: Điều gì xảy ra nếu một ngoại lệ không được xử lý trong một chương trình?
    • 1.64 Câu 71: Anonymous class nghĩa là gì?
    • 1.65 Câu 72: Local class là gì?
    • 1.66 Câu 73: Lớp cơ sở của tất cả các lớp ngoại lệ là gì?
    • 1.67 Câu 74: Thứ tự gọi các hàm tạo trong kế thừa là gì?
    • 1.68 Câu 75: Lớp nào sau đây sẽ được cấp phát nhiều bộ nhớ hơn?

Có lẽ Java là một ngôn ngữ lâu đời, mạnh mẽ, được nhiều nhà trường đưa vào giảng day. Vì thế nó có thể là một trong những điểm đến của việc làm cho các sinh viên vừa mới ra trường. 

Ở việt nam hiện tại rất nhiều công việc về Java với đãi ngộ tốt. Tuy nhiên theo quan điểm cá nhân mình nghĩ thì nếu chỉ học các kiến thức ở trong trường là chưa đủ để chinh phục nhà trường tuyển dụng. Các bạn sinh viên phải nỗ lực hơn để tìm tòi các vấn đề khác trong Java. 

Dưới đây là tổng hợp 100 câu hỏi để các bạn ôn luyện, nếu không trả lời được hoặc vẫn chưu hiểu rõ về nó thì hãy tìm hiểu thêm các bạn nhé. Và lưu ý rằng nhà tuyển dụng sẽ không hỏi các câu hỏi được liệt kê trong danh sách này, thông thường họ sẽ đưa ra vấn đề và nhiệm vụ của bạn là lật tung một đống câu hỏi đó để xem kiến thức nào là phù hợp để trả lời câu hỏi.

Và một điều nữa việc trả lời được 100 câu hỏi này vẫn là chưa đủ, vì thông thường ngoài các kiến thức này thì nhà tuyển dụng còn hỏi rất nhiều vấn đề khác như SQL, Cấu trúc dữ liệu và giải thuật, design pattern etc.

Tổng hợp 100 câu hỏi phỏng vấn

OK, cùng xem 100 câu nào. Lưu ý các phần bên dưới câu hỏi chỉ là gợi ý, các bạn có thể dựa vào đó để phân tích sâu hơn.

Câu 1: Sự khác nhau giữa Inner class và Sub-class

Inner class là một class được lồng trong 1 class khác. Inner class có thể truy cập các biến, hàm được định nghĩa bởi class bao bên ngoài nó.

Một sub-class là một class kế thừa từ một class khác (class này được gọi là supper-class). Sub-class có thể truy cập tất cả các biến, hàm được chỉ định public, protected access modifier. 

Câu 2: Phạm vi truy cập của các thành phần trong java hay access modifier là gì?

Trong Java, access modifier là các từ khóa được sử dụng trước tên class, biến, hàm, etc để xác định phạm vi truy cập. Các loại chỉ định truy cập cho các lớp là: 

  • Public: Class, hàm, thuộc tính có thể truy cập ở bất cứ đâu.
  • Protected: hàm, thuộc tính có thể được truy cập từ cùng một lớp mà chúng thuộc về hoặc từ các lớp con và từ lớp chung package.
  • Default: hàm, thuộc tính, class chỉ có thể được truy cập từ các class cùng package.
  • Private: hàm, thuộc tính, class chỉ có thể được truy cập trong cùng một class mà chúng thuộc về. Bên ngoài class này sẽ không thể truy cập được.

Câu 3: Mục đích của Static method và Static variables là gì?

Khi có yêu cầu chia sẻ các hàm hoặc biến giữa nhiều đối tượng của một lớp thay vì tạo các bản sao riêng biệt cho từng đối tượng, chúng ta sử dụng từ khóa static để tạo một phương thức hoặc biến được chia sẻ cho tất cả các đối tượng.

Câu 4: Ý nghĩa của việc đóng gói dữ liệu?

Đóng gói là một khái niệm trong Lập trình hướng đối tượng để kết hợp các thuộc tính và phương thức trong một đơn vị duy nhất.

Tính đóng gói giúp các lập trình viên tuân theo cách tiếp cận mô-đun để phát triển phần mềm vì mỗi đối tượng có một bộ phương thức và biến riêng và phục vụ các chức năng của nó độc lập với các đối tượng khác. Đóng gói cũng phục vụ mục đích ẩn dữ liệu.

Câu 5: Lớp singleton là gì? Cho một ví dụ thực tế về cách sử dụng của nó.

Một lớp singleton trong java chỉ có thể có một instance và do đó tất cả các phương thức và biến của nó chỉ thuộc về instance này.

Singleton class rất hữu ích cho các tình huống cần giới hạn số lượng đối tượng cho một lớp.

Ví dụ tốt nhất về kịch bản sử dụng singleton là khi có giới hạn chỉ có một kết nối với cơ sở dữ liệu do một số giới hạn của trình điều khiển hoặc do bất kỳ vấn đề cấp phép nào.

Câu 6. Vòng lặp trong Java là gì? kể tên các loại vòng lặp trong java?

Vòng lặp được sử dụng trong lập trình để thực thi một câu lệnh hoặc một khối câu lệnh lặp đi lặp lại. Có ba loại vòng lặp trong Java:

  • For Loops
  • While Loops
  • Do While Loops

Câu 7: Vòng lặp vô hạn là gì? Vòng lặp vô hạn được khai báo như thế nào?

Một vòng lặp vô hạn chạy mà không có bất kỳ điều kiện nào và chạy vô hạn. Một vòng lặp vô hạn có thể dừng khi dùng lệnh break dựa trên các điều kiện cụ thể.

for (;;)
{
    // block code
    // thêm các câu lệnh dừng khi thoả các điều kiện nhất định.
 }

Câu 8: Sự khác biệt giữa câu lệnh continue và break là gì?

break và continue là hai từ khóa quan trọng được sử dụng trong các vòng lặp. Khi một từ khóa break được sử dụng trong một vòng lặp, vòng lặp bị dừng ngay lập tức, trong khi từ khóa continue được sử dụng để chuyển đến lần lặp tiếp theo, các mã lệnh bên dưới continue sẽ bị bỏ qua.

Trong ví dụ dưới đây, Vòng lặp bị phá vỡ khi bộ đếm đạt đến 4.

for (counter = 0; counter & lt; 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    break;
}

}

Trong ví dụ dưới đây khi bộ đếm đạt đến 4, vòng lặp sẽ chuyển sang lần lặp tiếp theo và bất kỳ câu lệnh nào sau từ khóa continue sẽ bị bỏ qua cho lần lặp hiện tại

for (counter = 0; counter < 10; counter++)
    system.out.println(counter);

if (counter == 4) {

    continue;
}
system.out.println("This will not get printed when counter is 4");
}

Câu 9: Sự khác biệt giữa biến double và biến float trong Java là gì?

Trong java, float chiếm 4 byte trong bộ nhớ trong khi double chiếm 8 byte trong bộ nhớ. Float là số thập phân dấu phẩy động có độ chính xác đơn trong khi Double là số thập phân có độ chính xác kép.

Câu 10: Từ Final trong Java là gì? Cho một ví dụ.

Trong java, một hằng được khai báo bằng từ khóa final. Giá trị chỉ có thể được gán một lần và sau khi gán, không thể thay đổi giá trị của một hằng số.

Trong ví dụ dưới đây, một hằng số có tên const_val được khai báo và gán giá trị:

private final int const_val = 100

Khi một phương thức được khai báo là final, nó KHÔNG thể bị các lớp con ghi đè. Phương thức này nhanh hơn bất kỳ phương thức nào khác vì chúng được giải quyết tại thời điểm tuân thủ.

Khi một class được khai báo là final, nó không thể được phân lớp, tất là sẽ không có các sub-class của các final class.. Ví dụ như các wrapper class: Double class,  String class etc.

Câu 11: Toán tử ternary là gì? Cho một ví dụ

Toán tử ternary còn được gọi là toán tử điều kiện được sử dụng để quyết định giá trị nào sẽ gán cho một biến dựa trên đánh giá giá trị Boolean.

Ví dụ dưới đây nếu rank == 1 thì status là ‘DONE’ ngược lại thì ‘Pending’

public class conditionTest {
    public static void main(String args[]) {
        String status;
        int rank = 3;
        status = (rank == 1) ? "Done" : "Pending";
        System.out.println(status);
    }
}

Câu 12: Làm cách nào bạn có thể tạo số ngẫu nhiên trong Java?

ử dụng Math.random(), bạn có thể tạo các số ngẫu nhiên trong phạm vi lớn hơn hoặc bằng 0,1 và nhỏ hơn 1,0 Sử dụng lớp ngẫu nhiên trong gói java.util.

Câu 13: Default case trong switch-case là gì? Đưa ra ví dụ.

Trong câu lệnh switch-case, trường hợp mặc định được thực thi khi không có điều kiện switch nào khác phù hợp. Trường hợp mặc định là một trường hợp tùy chọn, có thể được khai báo hoặc không đều được

public class switchExample {
    int score = 4;
    public static void main(String args[]) {
        switch (score) {
            case 1:
                system.out.println("Score is 1");
                break;
            case 2:
                system.out.println("Score is 2");
                break;
            default:
                system.out.println("Default Case");
        }
    }
}

Câu 14: Lớp cơ sở trong Java mà tất cả các lớp được dẫn xuất từ ​​đó là gì?

 java.lang.object

Câu 15: Phương thức main () trong Java có thể trả về bất kỳ dữ liệu nào không?

Trong java, phương thức main () không thể trả về bất kỳ dữ liệu nào và do đó, nó luôn được khai báo với kiểu trả về void.

Câu 16: Package trong Java là gì? Ý nghĩa của các package là gì?

Trong Java, gói là một tập hợp các class và interface được gói lại với nhau vì chúng có liên quan với nhau. Việc sử dụng các gói giúp các nhà phát triển mô-đun hóa mã và nhóm mã để sử dụng lại thích hợp. 

Câu 17: Chúng ta có thể khai báo một lớp là Abstract mà không có bất kỳ phương thức trừu tượng nào không?

Có, chúng ta có thể tạo một lớp trừu tượng bằng cách sử dụng từ khóa abstract Trước tên class, ngay cả khi nó không có bất kỳ phương thức trừu tượng nào. Tuy nhiên, nếu một class có ít nhất một phương thức trừu tượng thì nó phải được khai báo là abstract, nếu không nó sẽ báo lỗi.

Câu 18: Sự khác biệt giữa Abstract Class và Interface trong Java là gì?

Sự khác biệt cơ bản giữa abstract class và interfce là một interface chỉ có thể khai báo các public static method mà không có triển khai cụ thể trong khi một abstract class có thể có các hàm, biến với bất kỳ chỉ định truy cập nào (publuc, private, v.v.) hoặc các abstract method không có các triển khai cụ thể.

Một điểm khác biệt chính trong việc sử dụng các abstract class và interfce là một ;as  triển khai một interface phải triển khai tất cả các phương thức của nó trong khi một lớp kế thừa từ một abstract class không phải thực hiện tất cả các phương thức của supper class.

Một lớp có thể triển khai nhiều interface nhưng nó chỉ có thể kế thừa từ một abstract class.

Câu 19: Chúng ta có thể khai báo phương thức main() là private không?

Trong java, phương thức main phải là public static để chạy bất kỳ ứng dụng nào một cách chính xác. Nếu phương thức main được khai báo là private, nhà phát triển sẽ không gặp bất kỳ lỗi biên dịch nào, tuy nhiên, nó sẽ không được thực thi và sẽ xuất hiện lỗi thời gian chạy.

Câu 20: Chúng ta có thể truyền các đối số vào hàm theo dạng pass-by-reference thay vì pass-by-value không?

Trong java, chúng ta có thể truyền đối số cho một hàm pass-by-value chứ không thể bằng pass-by-reference.

Câu 21: Cách một đối tượng được tuần tự hóa trong java

Trong java, để chuyển đổi một đối tượng thành byte stream bằng cách serialization, một interface với tên Serializable được thực hiện bởi lớp. Tất cả các class triển khai Serializable sẽ được tuần tự hoá và trạng thái của chúng sẽ được lưu trong byte stream.

Câu 22: Khi nào chúng ta nên sử dụng tuần tự hóa

Tuần tự hoá được sử dụng khi dữ liệu cần được truyền qua mạng. Sử dụng tuần tự hóa, trạng thái của đối tượng được lưu và chuyển đổi thành byte stream. Nó sẽ được chuyển qua mạng và sẽ được khôi phục lại khi đến nơi.

Câu 23: Có bắt buộc Try Block phải được đi kèm Catch block trong Java để xử lý Ngoại lệ không?

Khối Try cần được theo sau bởi khối Catch hoặc khối Finally hoặc cả hai. Bất kỳ ngoại lệ nào được ném ra từ khối try cần phải được bắt và xử lý trong khối catch. Cuối cùng nếu khối Finally được cung cấp thì nó sẽ luôn được thực thi bất kỳ tình huống nào.

Câu 24 – Khi nào hàm khởi tạo của một lớp được gọi?

Hàm khởi tạo của một lớp được gọi mỗi khi một đối tượng được tạo bằng từ khóa new.

Ví dụ, trong lớp sau, hai đối tượng được tạo bằng từ khóa new và do đó, hàm khởi tạo được gọi hai lần.

public class const_example {

    const_example() {

        system.out.println("Inside constructor");
    }
    public static void main(String args[]) {

        const_example c1 = new const_example();

        const_example c2 = new const_example();
    }
}

Câu 25:  Một lớp có thể có nhiều hàm khởi tạo không?

Có, một lớp có thể có nhiều hàm khởi tạo với các tham số khác nhau. Hàm tạo nào được sử dụng để tạo đối tượng phụ thuộc vào các đối số được truyền trong khi tạo đối tượng.

Câu 26: Chúng ta có thể ghi đè các phương thức tĩnh – static method của một lớp không?

Chúng ta không thể ghi đè các phương thức tĩnh. Các phương thức tĩnh thuộc về một lớp chứ không phải các đối tượng riêng lẻ và được xử lý tại thời điểm biên dịch (không phải trong thời gian chạy). Nếu chúng ta vẫn cố gắng đi đè phương thức tĩnh thì sẽ không có lỗi nào xảy ra tuy nhiên sẽ thể ảnh hưởng đến các mã bên trong phương thức tĩnh, và chúng sẽ được chạy bình thường. Mã code bạn ghi đè là vô nghĩa.

Câu 27: Trong ví dụ dưới đây, đầu ra sẽ là gì?

public class superclass {

    public void displayResult() {

        system.out.println("Printing from superclass");

    }

}

public class subclass extends superclass {

    public void displayResult() {

        system.out.println("Displaying from subClass");

        super.displayResult();

    }

    public static void main(String args[]) {

        subclass obj = new subclass();

        obj.displayResult();

    }

}

Output:

Displaying from subclass

Displaying from superclass

Câu 28: Stribg có phải là một kiểu dữ liệu trong java không?

Chuỗi không phải là một kiểu dữ liệu nguyên thủy trong java. Khi một string được tạo trong java, nó thực sự là một đối tượng của lớp Java.Lang.String được tạo.

Câu 29: Trong ví dụ dưới đây, có bao nhiêu Đối tượng chuỗi được tạo?

tring s1="I am Java Expert";

String s2="I am C Expert";

String s3="I am Java Expert";

Trong ví dụ trên, hai đối tượng của lớp Java.Lang.String được tạo. s1 và s3 là các tham chiếu đến cùng một đối tượng.

Câu 30: Tại sao các String trong Java được gọi là Bất biến?

Trong java, các đối tượng String được gọi là bất biến vì giá trị đã được gán cho một chuỗi, nó không thể thay đổi và nếu thay đổi, một đối tượng mới sẽ được tạo.

Trong ví dụ dưới đây, tham chiếu str đề cập đến một đối tượng chuỗi có giá trị “Giá trị một”.

String str="Value One";

Khi một giá trị mới được gán cho nó, một đối tượng String mới sẽ được tạo và tham chiếu được chuyển đến đối tượng mới.

str="New Value";

Câu 31: Sự khác biệt giữa array và Vector là gì?

Một mảng nhóm dữ liệu có cùng kiểu nguyên thủy và có bản chất tĩnh trong khi vector có bản chất động và có thể chứa dữ liệu thuộc các kiểu dữ liệu khác nhau.

Câu 32: Đa luồng là gì?

Đa luồng là một khái niệm lập trình để chạy nhiều tác vụ đồng thời trong một chương trình duy nhất. Các luồng chia sẻ cùng một ngăn xếp quy trình và chạy song song. Nó giúp cải thiện hiệu suất của bất kỳ chương trình nào.

Câu 33: Hai cách triển khai đa luồng trong Java là gì?

Các ứng dụng đa luồng có thể được phát triển trong Java bằng cách sử dụng bất kỳ phương pháp nào trong hai phương pháp sau:

  • Bằng cách sử dụng Java.Lang.Runnable Interface. Các lớp triển khai giao diện này để kích hoạt đa luồng. Có một phương thức Run () trong giao diện này được triển khai.
  • Bằng cách viết một lớp mở rộng lớp Java.Lang.Thread.

Câu 34: Khi String có giá trị thay đổi liên tục, cái nào nên được ưu tiên sử dụng? String hay StringBuffer?

Vì StringBuffer có bản chất là động và chúng ta có thể thay đổi giá trị của các đối tượng StringBuffer không giống như String là bất biến, nên bạn luôn luôn là một lựa chọn tốt để sử dụng StringBuffer khi dữ liệu bị thay đổi quá nhiều. Nếu chúng ta sử dụng String trong trường hợp như vậy, đối với mỗi thay đổi dữ liệu, một đối tượng String mới sẽ được tạo ra, có thể dẫn đến cạn kiệt nguồn tài nguyên của ứng dụng.

Câu 35: Mục đích của việc sử dụng Break trong mỗi trường hợp của Switch Statement là gì?

Nếu không dùng lệnh break trong mỗi case của switch-case thì tất cả các case sau case hợp lệ sẽ được thực thi, trong khi mục đích của chúng ta ứng với mỗi lần so sánh thì chỉ có 1 case được thoả mãn. Chính vì vậy, sử dụng break để khi gặp case thoả mãn thực thi và thoát khởi mệnh đề switch-case.

Câu 36: Thu gom rác được thực hiện như thế nào trong Java?

Trong java, khi một đối tượng không được tham chiếu nữa, quá trình thu gom rác sẽ diễn ra và đối tượng đó sẽ tự động bị hủy. Để thu gom rác tự động, java gọi phương thức System.gc () hoặc phương thức Runtime.gc ().

Câu 37: Một lớp có thể đồng thời là supper-class và là sub-class không? Đưa ra ví dụ

Nếu có một hệ thống phân cấp kế thừa được sử dụng, một lớp có thể là siêu lớp cho một lớp khác và một lớp con cho một lớp khác cùng một lúc.

Trong ví dụ dưới đây, continent là một sub-class của world và là supper-class của country.

public class world {

..........

}
public class continenet extends world {

............

}
public class country extends continent {

......................

}

Câu 38: Làm thế nào các đối tượng của một lớp được tạo ra nếu không có hàm tạo nào được định nghĩa trong lớp?

Ngay cả khi không có phương thức khởi tạo rõ ràng nào được định nghĩa trong một lớp java, các đối tượng được tạo thành công như một phương thức khởi tạo mặc định được sử dụng ngầm định để tạo đối tượng. Hàm tạo này không có tham số.

Câu 38: Trong đa luồng làm thế nào chúng ta có thể đảm bảo rằng một tài nguyên không được nhiều luồng sử dụng đồng thời?

Trong đa luồng, quyền truy cập vào các tài nguyên được chia sẻ giữa nhiều luồng có thể được kiểm soát bằng cách sử dụng khái niệm đồng bộ hóa. Bằng cách sử dụng từ khóa synchronized. Chúng ta có thể đảm bảo rằng chỉ một luồng có thể sử dụng tài nguyên được chia sẻ tại một thời điểm và những luồng khác chỉ có thể kiểm soát tài nguyên khi nó đã được luồng hiện tại đang nẵm giữ thả ra.

Câu 40: Chúng ta có thể gọi hàm tạo của một lớp nhiều hơn một lần cho một đối tượng không?

Hàm tạo được gọi tự động khi chúng ta tạo một đối tượng bằng từ khóa new. Nó chỉ được gọi một lần cho một đối tượng tại thời điểm tạo đối tượng và do đó, chúng ta không thể gọi lại hàm tạo cho một đối tượng sau khi tạo đối tượng.

Câu 41: Chúng ta có thể có hai phương thức trong một lớp có cùng tên không?

Chúng ta có thể định nghĩa hai phương thức trong một lớp có cùng tên nhưng có số lượng / kiểu tham số khác nhau. Phương thức nào được gọi sẽ phụ thuộc vào các tham số được truyền vào. Hay còn gọi là method overloading.

Ví dụ

public class methodExample {

    public void print() {

        system.out.println("Print method without parameters.");

    }

    public void print(String name) {

        system.out.println("Print method with parameter");

    }

    public static void main(String args[]) {

        methodExample obj1 = new methodExample();

        obj1.print();

        obj1.print("xx");

    }

}

Câu 42: Làm cách nào chúng ta có thể tạo bản sao của một đối tượng java?

Trong Java, để sao chép một đối tượng thì class này phải triển khai Cloneable interface và triển khai clone() method. Như vậy chúng ta có thể dễ dàng tạo một bảng sao của nó thông qua clone().

Câu 43: Lợi ích của việc sử dụng kế thừa là gì?

Lợi ích chính của việc sử dụng kế thừa là khả năng tái sử dụng của mã vì kế thừa cho phép các lớp con sử dụng lại mã của siêu lớp của nó. Tính đa hình (Khả năng mở rộng) là một lợi ích tuyệt vời khác cho phép giới thiệu chức năng mới mà không ảnh hưởng đến các lớp dẫn xuất hiện có.

Câu 44: Access modifier mặc định cho các biến và phương thức của một class là gì?

Các hàm, thuộc tính của class chỉ có thể được truy cập từ các class cùng package.

Câu 45: Cho một ví dụ về việc sử dụng Con trỏ trong Java.

Không có con trỏ nào trong Java. Vì vậy, chúng ta không thể sử dụng khái niệm con trỏ trong Java.

Câu 46: Sự khác biệt giữa Stack và Queue là gì?

Stack và Queue là một trong những collection phổ biến của Java dùng để lưu trữ tập dữ liệu có cấu trúc. Sự khác biệt cơ bản giữa stack và queue là stack dựa trên nguyên tắc Last in First out (LIFO) trong khi queue dựa trên nguyên tắc FIFO (First In First Out).

Câu 47: Trong Java, làm thế nào để loại bỏ một biến trong tuần tự hoá

Nếu chúng ta muốn các biến nhất định của một lớp không được tuần tự hóa, chúng ta có thể sử dụng từ khóa transient trong khi khai báo chúng. Ví dụ: biến trans_var bên dưới là một biến tạm thời và không thể được tuần tự hóa:

public class transientExample { 
	private transient trans_var; 
    // rest of the code 
}

Câu 48: Làm thế nào chúng ta có thể sử dụng các kiểu dữ liệu nguyên thủy làm đối tượng?

Các kiểu dữ liệu nguyên thủy như int có thể được xử lý như các đối tượng bằng cách sử dụng các wrapper class tương ứng củachúng. Ví dụ, Integer là một wrapper class cho kiểu dữ liệu nguyên thủy int. Chúng ta có thể áp dụng các phương thức khác nhau cho một lớp wrapper, giống như bất kỳ đối tượng nào khác.

Câu 49: Những loại ngoại lệ nào được bắt tại thời điểm biên dịch?

Checked exceptions có thể được bắt gặp tại thời điểm biên dịch chương trình. Checked exceptions hải được xử lý bằng cách sử dụng khối try catch trong mã để biên dịch thành công.

Câu 50: Chúng ta có thể sử dụng hàm khởi tạo mặc định khi đã có ít nhất một hàm khởi tạo được định nghĩa.

Java cung cấp một phương thức khởi tạo không đối số mặc định nếu không có phương thức khởi tạo rõ ràng nào được định nghĩa trong một lớp Java. Nhưng nếu một hàm tạo đã được định nghĩa, thì chúng ta không thể gọi hàm tạo mặc định này và nhà phát triển chỉ có thể sử dụng những hàm tạo đã được định nghĩa trong lớp.

Câu 51: Chúng ta có thể ghi đè một phương thức bằng cách sử dụng cùng một tên phương thức và các đối số nhưng kiểu trả về khác nhau không?

Điều kiện cơ bản của việc ghi đè phương thức là tên phương thức, các đối số cũng như kiểu trả về phải hoàn toàn giống với tên phương thức được ghi đè. Do đó, việc sử dụng một kiểu trả về khác sẽ không ghi đè một phương thức.

Câu 52: Đầu ra của đoạn mã sau là gì?

public class operatorExample {

    public static void main(String args[]) {

        int x = 4;

        system.out.println(x++);
	}
}

Trong trường hợp này, toán tử postfix ++ được sử dụng để trả về giá trị đầu tiên và sau đó tăng dần. Do đó, đầu ra của nó sẽ là 4.

Câu 53: Một người nói rằng anh ta đã biên dịch thành công một lớp java mà không cần có phương thức main trong đó? Có khả thi không?

Tuy nhiên, phương thức main là một điểm vào của lớp Java và được yêu cầu để thực thi chương trình; một lớp được biên dịch thành công ngay cả khi nó không có phương thức chính. Nhưng nó không thể chạy được.

Câu 54: Chúng ta có thể gọi một phương thức không tĩnh từ bên trong một phương thức tĩnh không?

Các phương thức Non-Static được sở hữu bởi các đối tượng của một lớp và có phạm vi mức đối tượng và để gọi các phương thức non-Static từ một khối tĩnh (giống như từ một phương thức chính tĩnh), một đối tượng của lớp cần được tạo trước. Sau đó, sử dụng tham chiếu đối tượng, các phương thức này có thể được gọi.

Câu 55: Hai biến môi trường phải được đặt để chạy bất kỳ chương trình Java nào?

public class equalsTest {

    public static void main(String args[]) {

        String str1 = new String("Hello World");

        String str2 = new String("Hello World");

        if (str1.equals(str2))

        { // this condition is true

            System.out.println("str1 and str2 are equal in terms of values");

        }

        if (str1 == str2) {

            //This condition is true

            System.out.println("Both strings are referencing same object");

        } else

        {

            // This condition is NOT true

            System.out.println("Both strings are referencing different objects");

        }

    }

}

Câu 63: Có thể định nghĩa một phương thức trong lớp Java nhưng cung cấp việc thực thi nó trong mã của một ngôn ngữ khác như C không?

Có, chúng tôi có thể làm điều này bằng cách sử dụng native method. Trong trường hợp phát triển dựa trên native method, chúng ta xác định các phương thức tĩnh công khai trong lớp Java của chúng tôi mà không cần triển khai nó và sau đó việc triển khai được thực hiện bằng một ngôn ngữ khác như C riêng biệt.

Câu 64: Các hàm hủy được định nghĩa như thế nào trong Java?

Trong Java, không có hàm hủy nào được định nghĩa trong class vì không cần phải làm như vậy. Java có cơ chế thu gom rác của riêng nó, thực hiện công việc tự động bằng cách hủy các đối tượng khi không còn được tham chiếu.

Câu 65: Một biến có thể là cục bộ và tĩnh cùng một lúc không?

Không có biến nào không thể tĩnh cũng như cục bộ cùng một lúc. Việc xác định một biến cục bộ là tĩnh gây ra lỗi biên dịch.

Câu 66: Trong interface có thể chứa static method được không?

Static method trong interface giống như các method trong class nó có đầy đủ mã triển khai. Static method tương tự như default method điểm khác biệt lớn nhất là static method chúng ta không thể override ở các class implement từ nó.

Câu 67: Trong lập trình luồng Java, phương pháp nào là phải triển khai cho tất cả các luồng?

Run () là một phương thức Runnable phải được thực hiện bởi tất cả các luồng.

Câu 68: Làm cách nào để lập trình viên có thể ném một ngoại lệ theo cách thủ công?

Để đưa ra một ngoại lệ trong một khối mã theo cách thủ công, từ khóa throw được sử dụng. Sau đó, ngoại lệ này được bắt và xử lý trong khối bắt

public void topMethod() {
    try {
        excMethod();
    } catch (ManualException e) {}
}

public void excMethod {
    String name = null;
    if (name == null) {
        throw (new ManualException("Exception thrown manually ");
        }
    }

Câu 69: Làm thế nào các đối tượng được lưu trữ trong Java?

Trong java, mỗi đối tượng khi được tạo sẽ nhận được một không gian bộ nhớ từ bộ nhớ heap. Khi một đối tượng bị trình thu gom rác dọn dẹp, vùng nhớ này sẽ được giải phóng và heap có thể dùng nó để lưu trữ các object khác.

Câu 70: Điều gì xảy ra nếu một ngoại lệ không được xử lý trong một chương trình?

Nếu một ngoại lệ không được xử lý trong một chương trình sử dụng khối try catch, chương trình sẽ bị hủy bỏ, và sẽ không có thêm một mã lệnh nào được thực thi sau đó nữa.

Câu 71: Anonymous class nghĩa là gì?

Lớp ẩn danh là lớp được định nghĩa không có tên trong một dòng mã sử dụng từ khóa new.

public java.util.Enumeration testMethod()

{

    return new java.util.Enumeration()

    {

        @Override

        public boolean hasMoreElements()

        {

            // TODO Auto-generated method stub

            return false;

        }

        @Override

        public Object nextElement()

        {

            // TODO Auto-generated method stub

            return null;

        }

    }

Câu 72: Local class là gì?

Trong Java, nếu chúng ta định nghĩa một lớp mới bên trong một khối cụ thể, nó được gọi là local class. Một lớp như vậy có phạm vi cục bộ và không thể sử dụng được bên ngoài khối mà nó được xác định.

Câu 73: Lớp cơ sở của tất cả các lớp ngoại lệ là gì?

Trong Java, Java.lang.Throwable là siêu lớp của tất cả các lớp ngoại lệ và tất cả các lớp ngoại lệ đều bắt nguồn từ lớp cơ sở này.

Câu 74: Thứ tự gọi các hàm tạo trong kế thừa là gì?

rong trường hợp kế thừa, khi một đối tượng mới của một lớp dẫn xuất được tạo, đầu tiên phương thức khởi tạo của supper-class được gọi và sau đó phương thức khởi tạo của sub-class sẽ được gọi.

Câu 75: Lớp nào sau đây sẽ được cấp phát nhiều bộ nhớ hơn?

Class A: 3 methods, 4 variables

Class B: 5 methods, 3 variables

Bộ nhớ không được cấp phát trước khi tạo đối tượng. Vì đối với cả hai lớp, không có đối tượng nào được tạo nên không có bộ nhớ nào được cấp phát trên heap cho bất kỳ class nào

Nguồn tham khảo

https://www.guru99.com/java-interview-questions-answers.html

Java là một trong những ngôn ngữ lập trình được sử dụng rộng rãi trong ngành. Có hơn 3 tỷ thiết bị sử dụng Java để phát triển phần mềm. Rất nhiều cơ hội việc làm có sẵn cho các nhà phát triển Java. Trong blog Câu hỏi phỏng vấn Java cốt lõi này, bạn sẽ trải qua các câu hỏi phỏng vấn Java hàng đầu mà bạn sẽ gặp trong các cuộc phỏng vấn của Java. Chúng ta hãy nhìn thoáng qua một vài câu hỏi phỏng vấn lập trình Java quan trọng ở đây:

Q1. Bạn hiểu gì về Java? Q2. So sánh giữa Java và Python Q3. Phác thảo các tính năng Java chính. Q4. Ý bạn là gì bởi một đối tượng? Q5. Phân biệt giữa StringBuffer và StringBuilder trong lập trình Java. Q6. Phân biệt giữa JDK, JRE và JVM. Q7. Xác định kế thừa. Q8. Giải thích quá tải phương pháp. Q9. So sánh quá tải với quá mức. Q10. Giải thích việc tạo ra một singleton an toàn chủ đề trong Java bằng cách sử dụng khóa được kiểm tra kép.
Q2. Compare between Java and Python
Q3. Outline the major Java features.
Q4. What do you mean by an object?
Q5. Distinguish between StringBuffer and StringBuilder in Java programming.
Q6. Differentiate between JDK, JRE, and JVM.
Q7. Define inheritance.
Q8. Explain method overloading.
Q9. Compare overloading with overriding.
Q10. Explain the creation of a thread-safe singleton in Java using double-checked locking.

Blog này về các câu hỏi phỏng vấn Java được phân loại thành ba phần như đã đề cập dưới đây: 1. Cơ bản
1. Basic

2. Trung cấp

3. Nâng cao

Xem video câu hỏi phỏng vấn java này:

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

Câu hỏi phỏng vấn Java Core cho Freshers

Đây là những câu hỏi phỏng vấn Java cơ bản cho những người mới làm nứt cuộc phỏng vấn của họ:

1. Bạn hiểu gì bởi Java?

  • Java là ngôn ngữ máy tính hướng đối tượng.
  • Đây là một ngôn ngữ lập trình cấp cao được phát triển bởi James Gosling trong Sun Microsystems vào năm 1995.
  • Java là một ngôn ngữ nhanh, an toàn và đáng tin cậy được sử dụng cho nhiều trò chơi, thiết bị và ứng dụng.

Đi qua hướng dẫn Java này để hiểu rõ hơn về khái niệm này!

2. So sánh giữa Java và Python.

Tiêu chuẩn Java Python
Dễ sử dụngTốtXuất sắc
Tốc độ mã hóaTrung bìnhXuất sắc
Tốc độ mã hóaTrung bìnhLoại dữ liệu
Tĩnh gõTrung bìnhXuất sắc

Tốc độ mã hóa

Trung bình

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

  • Loại dữ liệu Java is based on object-oriented programming where the class and methods describe the state and behavior of an object.
  • Tĩnh gõ A Java program gets converted into Java bytecodes that can be executed on any platform without any dependency.
  • Được gõ linh hoạt Java works on the ‘write once, run anywhere’ principle as it supports multiple platforms like Windows, Linux, Mac, Sun Solaris, etc.
  • Khoa học dữ liệu và các ứng dụng học máy Java has strong memory management as there are no pointer allocations. It has an automatic garbage collection that prohibits memory leaks.
  • 3. Phác thảo các tính năng Java chính.As mentioned, Java compiler converts the codes into Java bytecodes which are then interpreted and executed by Java Interpreter.

Các tính năng chính của ngôn ngữ lập trình Java được giải thích dưới đây:

Hướng đối tượng: & nbsp; java dựa trên lập trình hướng đối tượng trong đó lớp và phương thức mô tả trạng thái và hành vi của một đối tượng.

Portable: & nbsp; Một chương trình Java được chuyển đổi thành các byte byte có thể được thực thi trên bất kỳ nền tảng nào mà không cần bất kỳ sự phụ thuộc nào.

Nền tảng độc lập: & NBSP;

Mạnh mẽ: & nbsp; java có quản lý bộ nhớ mạnh vì không có phân bổ con trỏ. Nó có một bộ sưu tập rác tự động cấm rò rỉ bộ nhớ.

Giải thích: Như đã đề cập, trình biên dịch Java chuyển đổi mã thành các byte Java sau đó được giải thích và thực hiện bởi trình thông dịch Java.

Trở thành bậc thầy của Java bằng cách đăng ký vào khóa học trực tuyến & NBSP này! Nhận 100% đi bộ!
Làm chủ nhiều nhất về kỹ năng nhu cầu bây giờ!4. Ý bạn là gì bởi một đối tượng?
Một đối tượng bao gồm các phương thức và các lớp mô tả trạng thái của nó và thực hiện các hoạt động. Một chương trình Java chứa rất nhiều đối tượng hướng dẫn nhau công việc của họ. Khái niệm này là một phần của Java cốt lõi.5. Phân biệt giữa StringBuffer và StringBuilder trong lập trình Java.
StringBufferStringBuilder
Các phương thức StringBuffer được đồng bộ hóa.StringBuilder không đồng bộ hóa.

Khu vực lưu trữ là đống và sửa đổi dễ dàng.this tutorial to get a better understanding of Java String!

Lưu trữ là đống và có thể được sửa đổi.

  • StringBuffer là an toàn cho luồng. stands for Java Virtual Machine which provides the runtime environment for Java bytecodes to be executed.
  • StringBuilder nhanh vì nó không an toàn cho luồng. (Java Runtime Environment) includes the sets of files required by JVM during runtime.
  • Hiệu suất rất chậm. (Java Development Kit) consists of JRE along with the development tools required to write and execute a program.

Hiệu suất rất nhanh.

Đi qua hướng dẫn này để hiểu rõ hơn về chuỗi Java!

6. Phân biệt giữa JDK, JRE và JVM.

JVM là viết tắt của Máy ảo Java cung cấp môi trường thời gian chạy cho các byte Java được thực thi.

JRE (Môi trường thời gian chạy Java) bao gồm các bộ tệp theo yêu cầu của JVM trong thời gian chạy.

JDK (Bộ phát triển Java) bao gồm JRE cùng với các công cụ phát triển cần thiết để viết và thực hiện một chương trình.

Nhận một ý tưởng rõ ràng về & nbsp; tại sao để được chứng nhận trong Java!

7. Xác định kế thừa.

10. Giải thích việc tạo ra một singleton an toàn chủ đề trong Java bằng cách sử dụng khóa kiểm tra kép.

Singleton được tạo ra với khóa được kiểm tra kép như trước khi Java 5 hoạt động như một nhà môi giới và nó có thể có nhiều trường hợp singleton khi nhiều luồng tạo ra một thể hiện của singleton cùng một lúc. Java 5 giúp dễ dàng tạo singleton an toàn bằng chỉ bằng enum. Sử dụng một biến dễ bay hơi là điều cần thiết cho cùng một.

11. Lớp học trong Java là gì?

Java gói gọn mã trong các lớp khác nhau xác định các loại dữ liệu mới. Các loại dữ liệu mới này được sử dụng để tạo các đối tượng.

12. Phân biệt giữa một danh sách mảng và một vectơ.

Lập danh sách Vector
Một danh sách mảng không được đồng bộ hóa.Một vector được đồng bộ hóa.
Một danh sách mảng là nhanh.Một vector chậm vì nó an toàn cho luồng.
Nếu một phần tử được chèn vào một danh sách mảng, nó sẽ tăng kích thước mảng lên 50 %.Một vector mặc định để nhân đôi kích thước của mảng của nó.
Một danh sách mảng không xác định kích thước gia tăng.Một vector xác định kích thước tăng.
Một danh sách mảng chỉ có thể sử dụng tererator để đi qua.Ngoại trừ Hashtable, một vectơ là lớp duy nhất sử dụng cả liệt kê và lặp.

13. Đề cập đến sự khác biệt giữa iterator và liệt kê.

Người lặp lại  EnumerationEnumeration
Iterator là một giao diện được tìm thấy trong gói java.util.Liệt kê là một đối tượng tạo ra các yếu tố cùng một lúc.
Sử dụng ba phương thức để giao diện:
  1. hasNext()
  2. next()
  3. remove()
Sử dụng hai phương pháp:
  1. hasMoreElements()
  2. nextElement()
Trình lặp cho phép loại bỏ các phần tử khỏi bộ sưu tập đã cho trong quá trình lặp với ngữ nghĩa được xác định rõ.Nó được sử dụng để đi qua một bộ sưu tập, thường có kích thước không xác định.
Tên phương thức lặp đã được cải thiện.Việc đi qua các yếu tố chỉ có thể được thực hiện một lần mỗi lần tạo.

14. Giải thích sự khác biệt giữa lớp bên trong và lớp con.

Lớp bên trong Lớp con
Một lớp bên trong là một lớp được lồng trong một lớp khác.Một lớp con là một lớp kế thừa từ một lớp khác được gọi là siêu lớp.
Nó cung cấp các quyền truy cập cho lớp đang làm tổ nó và có thể truy cập tất cả các biến và phương thức được xác định trong lớp bên ngoài.Nó cung cấp quyền truy cập vào tất cả các phương pháp và trường được bảo vệ và bảo vệ của siêu lớp của nó.

15. Chúng ta có thể thực thi bất kỳ mã nào, ngay cả trước phương thức chính không? Giải thích.

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 tôi sẽ sử dụng một khối mã tĩnh trong lớp khi tạo các đối tượng vào 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 trong khi tải lớp, ngay cả trước khi tạo các đối tượng trong phương thức chính.

Chuẩn bị cho chứng nhận Java với đào tạo Java trực tuyến toàn diện của chúng tôi!

16. Làm thế nào chúng ta có thể hạn chế kế thừa cho một lớp?

Chúng ta có thể hạn chế kế thừa cho một lớp theo các bước sau:

  1. Bằng cách sử dụng từ khóa cuối cùng
  2. Nếu chúng ta làm cho tất cả các phương thức kết thúc, thì chúng ta không thể ghi đè lên điều đó
  3. Bằng cách sử dụng các hàm tạo riêng
  4. Bằng cách sử dụng bình luận javadoc (Hồi //)// “)

17. Java không hỗ trợ nhiều kế thừa. Tại sao?

Java không hỗ trợ nhiều kế thừa vì chúng tôi không thể sử dụng các phương thức khác nhau trong một lớp; nó tạo ra một sự mơ hồ.example:
Example:

class Intellipaat1
{
void test()
{
system.out.println("test() method");
}
}class Intellipaat2
{
void test()
{
system.out.println("test() method");
}
}Multiple inheritance
class C extends Intellipaat1, Intellipaat2
{
     /* Code */
}

Các phương thức testsIpaat1 và intellipaat2 () đang được kế thừa cho lớp C. & nbsp; Vậy, phương thức c Hạng nào sẽ thực hiện?

Vì các phương pháp Test () của Intellipaat1 và Intellipaat2 là khác nhau, ở đây chúng ta sẽ phải đối mặt với sự mơ hồ.

18. Các nhà xây dựng có được thừa kế không? Một lớp con có thể gọi hàm tạo lớp của cha mẹ không?

Chúng ta không thể kế thừa một hàm tạo. Chúng tôi tạo một thể hiện của một lớp con bằng cách sử dụng một hàm tạo của một trong các siêu lớp của nó. Bởi vì việc ghi đè hàm tạo siêu lớp không phải là mong muốn của chúng tôi như thể chúng tôi ghi đè một hàm tạo siêu lớp, nên chúng tôi sẽ phá hủy các khả năng đóng gói của ngôn ngữ.

Kiểm tra hướng dẫn sâu sắc này để tìm hiểu thêm về các nhà xây dựng Java!

19. Xác định JSON.

Sự mở rộng của JSON là ký hiệu đối tượng JavaScript. Đây là một sự thay thế nhẹ hơn và dễ đọc hơn cho XML. Nó là độc lập và dễ dàng phân tích cú pháp trong tất cả các ngôn ngữ lập trình. Nó chủ yếu được sử dụng cho máy khách và máy chủ của máy khách giao tiếp máy chủ.

20. Ưu điểm của JSON so với XML là gì?

Ưu điểm của JSON so với XML là:

  1. & nbsp; json nhẹ hơn và nhanh hơn XML.
  2. & nbsp; nó dễ hiểu.
  3. & nbsp; rất dễ phân tích và chuyển đổi sang các đối tượng để tiêu thụ thông tin.
  4. JSON hỗ trợ nhiều loại dữ liệu Trực trường, số, mảng hoặc boolean, nhưng dữ liệu XML là tất cả các chuỗi.

21. Sự khác biệt giữa Java và C ++ là gì?

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

Java C++
Java hỗ trợ cả trình biên dịch và trình thông dịchChỉ hỗ trợ trình biên dịch
Quản lý bộ nhớ được kiểm soát hệ thốngQuản lý bộ nhớ có thể được truy cập bởi các lập trình viên
Không hỗ trợ nhiều khoản thừa kếHỗ trợ nhiều kế thừa
Cung cấp hỗ trợ hạn chế cho các con trỏHỗ trợ đầy đủ các con trỏ
Cho thấy sự phụ thuộc nặng nề vào việc thu gom rác tự động, nhưng không hỗ trợ các chất hủy diệtNgười dùng cần thực hiện quản lý thủ công bằng cách sử dụng từ khóa mới và xóa

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

Trình biên dịch chỉ trong thời gian là một phần quan trọng của môi trường thời gian chạy Java nhằm tối ưu hóa hiệu suất của các ứng dụng dựa trên Java tại thời điểm chạy. JIT Parallelly biên dịch các byte có chức năng tương tự và giảm thời gian biên dịch.

Một phương pháp trong chương trình Java có thể được gọi là hàng ngàn lần khi khởi động. Do đó, thay vì biên dịch mọi phương pháp, Java OpenJ9 ghi lại số lần một phương thức được bắt đầu. Nếu số lượng bắt đầu vượt qua ngưỡng được xác định trước, trình biên dịch JIT sẽ được kích hoạt.

23. Lớp tải lớp là gì?

Đây là một phần của môi trường thời gian chạy Java được sử dụng để tự động tải các tệp lớp vào máy ảo Java (JVM). Trình tải lớp kích hoạt bất cứ khi nào một tệp Java được thực thi.

Có ba loại bộ tải lớp trong Java:

  • BootStrap Class Loader: Trình tải Bootstrap là siêu lớp của trình tải lớp mở rộng tải các tệp JDK tiêu chuẩn từ RT.JAR và các lớp lõi khác. Tệp rt.jar chứa tất cả các lớp gói của java.net, java.lang, java.util, java.io, java.sql, v.v. The bootstrap loader is the superclass of extension classloader which loads the standard JDK files from rt.jar and other core classes. The rt.jar file contains all the package classes of java.net, java.lang, java.util, java.io, java.sql, etc.
  • Trình tải lớp mở rộng: Trình tải lớp mở rộng được gọi là cha mẹ của bộ tải lớp hệ thống và con của trình tải lớp Bootstrap. Nó chỉ tải các tệp có sẵn trong thư mục mở rộng Class Class, đó là thư mục ext.dirs/jre/lib/ext. Nếu tệp không có sẵn trong thư mục được đề cập, trình tải lớp mở rộng sẽ giao nó cho trình tải lớp hệ thống. The extension classloader is known as the parent of the System classloaders and the child of the Bootstrap classloader. It only loads the files available in the extension classpath, that is ‘ext.dirs/JRE/lib/ext directory. If the file is not available in the mentioned directory the extension classloader will delegate it to the System classloader.
  • Trình tải lớp hệ thống/ứng dụng: Nó tải các lớp loại ứng dụng có sẵn trong biến môi trường như -ClassPath hoặc -CP tùy chọn dòng lệnh. Trình tải lớp ứng dụng tạo ra classnotfoundException nếu lớp không có sẵn trong ClassPath ứng dụng. It loads the classes of application type available in the environment variable such as -classpath, or -cp command-line option. The application classloader generates a ClassNotFoundException if the class is not available in the application classpath.

24. Tên tệp .java trống có phải là tên tệp nguồn hợp lệ trong Java không?

Có, chúng ta có thể lưu một tệp Java với tên tệp .java trống. Bạn có thể biên dịch nó trong dấu nhắc lệnh bằng ‘javac .java, và chạy nó bằng cách gõ‘ java classname. Dưới đây là một ví dụ về một chương trình như vậy:

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}

Sau khi lưu mã, bạn cần mở dấu nhắc lệnh và đi đến thư mục nơi lưu trữ tệp. Sau đó, bạn cần gõ ‘javac .java, để biên dịch chương trình và‘ java A, để chạy chương trình.

25. Sự khác biệt giữa ngôn ngữ lập trình hướng đối tượng và đối tượng là gì?

Sau đây là sự khác biệt chính giữa các ngôn ngữ lập trình hướng đối tượng và đối tượng:

Ngôn ngữ lập trình hướng đối tượng Ngôn ngữ lập trình dựa trên đối tượng
Các ngôn ngữ lập trình hướng đối tượng hỗ trợ tất cả các tính năng của OOP bao gồm đa hình và kế thừa.Ngôn ngữ lập trình dựa trên đối tượng không hỗ trợ kế thừa và đa hình.
Không hỗ trợ các đối tượng tích hợp.Hỗ trợ các đối tượng tích hợp như JavaScript có đối tượng cửa sổ.
Ví dụ: C#, C ++, Java, Python, v.v.JavaScript và Visual Basic là những ví dụ về ngôn ngữ lập trình dựa trên đối tượng.

26. Có bao nhiêu loại nhà xây dựng trong ngôn ngữ lập trình Java?

Có hai loại hàm tạo trong ngôn ngữ lập trình Java:

  • Hàm tạo tham số hóa: Một hàm tạo chấp nhận các đối số hoặc tham số được gọi là hàm tạo tham số hóa. Nó khởi tạo các biến thể hiện sẽ các giá trị được truyền trong khi tạo một đối tượng.: A constructor that accepts arguments or parameters is known as the parameterized constructor. It initializes the instance variables will the values passed while creating an object.

Dưới đây là một ví dụ về hàm tạo được tham số hóa:

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
  • Hàm tạo không tham số/mặc định: Các hàm tạo không có tham số hoặc đối số được biết đến và các hàm tạo không tham số hóa. Trong trường hợp bạn không định nghĩa một hàm tạo thuộc bất kỳ loại nào, bản thân trình biên dịch sẽ tạo ra một hàm tạo mặc định sẽ được gọi khi đối tượng được tạo.: The constructors with no parameters or arguments are known and non-parameterized constructors. In case you don’t define a constructor of any type, the compiler itself creates a default constructor which will be called when the object is created.

Dưới đây là một ví dụ về hàm tạo không tham số:

import java.util.*;
class A
{
    int roll_no;
    String name;
    A(int x,String y)
    {
        this.roll_no=x;
        this.name=y;
        System.out.println("Constructor called");
    }
    
    public void fun()
    {
        System.out.println("Class A function called");
    }
}

public class non_parameterized_constructor
{
    public static void main(String args[])
    {
        A obj=new A(10,"Harry Williams");
        System.out.println("The value of instance variables");
        System.out.println("Name: "+obj.name);
        System.out.println("Roll No: "+obj.roll_no);
    }
}

The output of the above program will be:

Constructor called
The value of instance variables
Name: Harry Williams
Roll No: 10

27. Mục đích của hàm tạo mặc định trong Java là gì?

Nếu không có hàm tạo nào có sẵn trong lớp, trình biên dịch Java sẽ tạo một hàm tạo mặc định và gán giá trị mặc định cho các biến thể hiện.

Ví dụ:

import java.util.*;
class A
{
    String name;
    int id;
    void display()
    {
        System.out.println("Name: "+this.name);
        System.out.println("Id: "+this.id);
    }
    
}
public class B
{
    public static void main(String args[])
    {
        A object=new A();
        System.out.println("The values of the instance variables are:");
        System.out.println("Name: "+object.name);
        System.out.println("Name: "+object.id);
    }
}
The output of the above program:
The values of the instance variables are:
Name: null
Name: 0

28. Việc sử dụng một hàm tạo bản sao trong Java là gì?

Java không hỗ trợ một hàm tạo bản sao, tuy nhiên, bạn có thể sao chép các giá trị của một thể hiện này sang phiên bản khác bằng cách sao chép các biến thể hiện của một đối tượng này sang đối tượng khác. Dưới đây là một ví dụ về một phương pháp như vậy:

import java.util.*;
class demo
{
    String name;
    int roll_no;
    //constructor to initialize the name and roll number
    demo(int x, String y)
    {
        name=y;
        roll_no=x;
    }
    //constructor to initialize another object variables
    demo(demo ob)
    {
        roll_no=ob.roll_no;
        name=ob.name;
    }
    void display()
    {
        System.out.println("Name: "+name);
        System.out.println("Roll Number:"+roll_no);
    }
}

public class copy_constructor
{
    public static void main(String args[])
    {
        demo obj=new demo(10,"Alice Williams");
        demo obj2=new demo(obj);
        obj.display();
        obj2.display();
    }
}

The output of the following code is:
Name: Alice Williams
Roll Number:10
Name: Alice Williams
Roll Number:10

29. Tại sao phương pháp chính là tĩnh trong java?

Phương pháp chính là tĩnh trong Java vì để gọi các phương thức tĩnh, không cần đối tượng. Máy ảo Java (JVM) phải tạo một đối tượng để gọi phương thức Main () không tĩnh, sẽ dẫn đến phân bổ bộ nhớ thêm.

30. Chúng ta có thể khai báo các biến và phương thức tĩnh trong một lớp trừu tượng không?

Có, chúng ta có thể khai báo các biến và phương thức tĩnh trong một lớp trừu tượng bằng cách kế thừa lớp trừu tượng. Trong Java, các biến và phương thức tĩnh có thể được truy cập mà không cần tạo một đối tượng. Bạn chỉ có thể mở rộng lớp trừu tượng và sử dụng bối cảnh tĩnh như đã đề cập dưới đây:

import java.util.*;
class A
{
    static int x=110;
    static void method1()
    {
        System.out.println("Class A static function called");
    }
    
}

public class prog1 extends A
{
    public static void main(String args[])
    {
        A.method1();
        System.out.println("Value of x="+A.x);
    }
}

The output of the above program will be:
Class A static function called
Value of x=110

31. Tập hợp là gì?

Tập hợp trong Java đại diện cho mối quan hệ có một mối quan hệ trong đó một lớp chứa tham chiếu của một lớp khác. Nói cách khác, nó đề cập đến mối quan hệ một chiều giữa hai lớp trong đó lớp tổng hợp có thể hiện của một lớp khác mà nó sở hữu.

Ví dụ, trong chương trình bên dưới học sinh lớp tổng hợp có mối quan hệ một chiều với địa chỉ lớp. Ở đây, mỗi học sinh có một địa chỉ có ý nghĩa, nhưng địa chỉ có học sinh không có ý nghĩa gì. Vì vậy, thay vì kế thừa, tập hợp dựa trên việc sử dụng các lớp.

import java.util.*;
class Address
{
    String street, city, state, country;
    public Address(String street, String city, String state, String country)
    {
        this.street=street;
        this.city=city;
        this.state=state;
        this.country=country;
    }
}

public class student
{
    int reg_no;
    String name;
    Address address;
    public student(int id,String name,Address address)
    {
        this.reg_no=id;
        this.name=name;
        this.address=address;
    }
    public void display()
    {
        System.out.println("Student details: ");
        System.out.println("Name: "+name);
        System.out.println("Reg_no: "+reg_no);
        
        System.out.println("Address: "+address.street+", "+address.city+", "+address.state+", "+address.country);
    }
        
    public static void main(String args[])
    {
        Address address1=new Address("Paper Mill Road","SRE","UP","India");
        Address address2=new Address("Service Road","BNG","KA","India");
        
        student ob1=new student(111,"Sam",address1);
        student ob2=new student(112,"Alex",address2);
        
        ob1.display();
        ob2.display();
    }
}

The output of the above program will be:

Student details: 
Name: Sam
Reg_no: 111
Address: Paper Mill Road, SRE, UP, India

Student details: 
Name: Alex
Reg_no: 112
Address: Service Road, BNG, KA, India

32. Thành phần là gì?

Nếu một đối tượng chứa một đối tượng khác và có thể tồn tại có thể tồn tại mà không có sự tồn tại của đối tượng cụ thể đó, thì nó được gọi là bố cục. Nói một cách đơn giản, bố cục là một loại tập hợp được sử dụng để mô tả tham chiếu giữa hai lớp bằng cách sử dụng biến tham chiếu.

Ví dụ, một học sinh lớp chứa một lớp khác có tên địa chỉ. Vì vậy, nếu địa chỉ lớp không thể tồn tại mà không có học sinh lớp, thì tồn tại một sáng tác giữa chúng.

33. Sự khác biệt giữa tập hợp và thành phần là gì?

Dưới đây là sự khác biệt chính giữa tập hợp và thành phần trong Java:

Tập hợp Thành phần
Lớp cha mẹ có mối quan hệ một chiều với lớp trẻ.Trong sáng tác, lớp cha sở hữu lớp con.
Tập hợp được biểu thị bằng một viên kim cương rỗng trong ký hiệu UML (Ngôn ngữ mô hình hóa hợp nhất).Biểu thị bằng một viên kim cương đầy trong ký hiệu UML.
Lớp trẻ có vòng đời riêng.Lớp trẻ không có cuộc sống của nó.
Tập hợp là một mối quan hệ yếu đuối. Ví dụ, một chiếc xe đạp có một chỉ số là tổng hợp.Thành phần là một mối quan hệ mạnh mẽ hơn. Ví dụ, một chiếc xe đạp có động cơ là một tác phẩm.

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

Nhân bản đối tượng có nghĩa là tạo bản sao chính xác của một đối tượng hiện có. Trong lập trình Java, nhân bản đối tượng có thể được thực hiện bằng phương thức Clone (). Để tạo bản sao đối tượng, bạn nên triển khai giao diện java.lang.

Cú pháp cho phương pháp nhân bản là:

 
protected Object clone() throws CloneNotSupportedException

35. Chúng ta có thể quá tải phương pháp chính trong Java không?

Có, bạn có thể quá tải phương thức chính () trong java bằng cách sử dụng khái niệm quá tải phương thức.

Dưới đây là một ví dụ về quá tải phương thức chính ():

import java.util.*;
public class main_overloading
{
   public static void main(String args)
   {
       System.out.println("Main with String");
   }
   public static void main(String args[])   
   {
       System.out.println("Main with the String args[]");
   }
   public static void main()
   {
       System.out.println("main without String");
   }
}

Đầu ra của mã trên sẽ là:

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
0

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

Phương thức chính () là điểm nhập cho bất kỳ chương trình nào trong ngôn ngữ Java. Trong biểu thức công khai static void main (String argos []), mỗi từ khóa có ý nghĩa như đã đề cập dưới đây:public static void main(String argos[]), each keyword has significance as mentioned below:

  • Công khai: Đó là một nhà xác định truy cập được sử dụng để chỉ định khả năng truy cập của một phương thức trong Java. Ở đây, công khai có nghĩa là bất cứ ai cũng có thể truy cập phương thức hoặc lớp.It’s an access specifier which is used to specify the accessibility of a method in java. Here, Public means anyone can access the method or the class.
  • Tĩnh: Từ khóa tĩnh trong Java xác định phương thức chính là dựa trên lớp, điều đó có nghĩa là nó có thể được truy cập mà không cần tạo đối tượng/phiên bản. Các phương thức tĩnh có thể được B3E gọi trực tiếp bởi Máy ảo Java (JVM), từ đó tiết kiệm thêm phân bổ bộ nhớ. the static keyword in java identifies the main method as class-based, which means it can be accessed without creating an object/instance. Static methods can b3e directly called by the Java Virtual Machine(JVM), which in turn saves extra memory allocation.
  • void: void là loại trả về trong Java, có nghĩa là phương thức chính sẽ không trả lại bất kỳ giá trị nào. void is a return type in java, which means the main method will not return any value back.
  • Chuỗi args []: chuỗi argos [] hoặc chuỗi [] args là một mảng các đối tượng chuỗi lưu trữ các đối số dòng lệnh. Ở đây đối số là một mảng các loại Java. Do đó, nó đã truyền như tham số trong phương thức chính (). String argos[] or String[] args is an array of String objects which stores the command line arguments. Here the argument is an array of types of java. Therefore, it’s passed as the parameter in the main() method.

37. Các từ khóa xử lý ngoại lệ khác nhau trong Java là gì?

Ngôn ngữ Java có ba từ khóa xử lý ngoại lệ:

  • Hãy thử: Bất cứ khi nào một phân đoạn mã có cơ hội lỗi hoặc bất kỳ sự bất thường nào, nó có thể được đặt bên trong khối thử. Trong trường hợp có bất kỳ lỗi nào, khối thử sẽ gửi ngoại lệ đến khối bắt. whenever a code segment has a chance of an error or any abnormality, it can be placed inside the try block. In case of any error, the try block will send the exception to the catch block.
  • Bắt: Bắt Xử lý ngoại lệ được tạo trong khối thử. Nó đến sau khối thử. catch handles the exception generated in the try block. It comes after the try block.
  • Cuối cùng: Từ khóa cuối cùng đảm bảo rằng các phân đoạn thực thi mặc dù các lỗi và ngoại lệ được xử lý bởi khối thử & bắt. Từ khóa cuối cùng xuất hiện sau khi khối thử hoặc cả thử và khối bắt.The final keyword ensures that the segments execute despite the errors and exceptions processed by the try & catch block. The final keyword comes either after the try block or both the try and the catch block.

38. NullPulumException là gì?

NullPulumException xảy ra khi người dùng cố gắng truy cập hoặc sửa đổi các trường của đối tượng null. Một đối tượng null là một thể hiện được xác định với các giá trị null hoặc không có bất kỳ tham chiếu nào.

39. Sự khác biệt giữa một hàm tạo và một kẻ phá hủy là gì?

Dưới đây là sự khác biệt giữa hàm tạo và hàm hủy dựa trên các tham số khác nhau:

Cơ sở so sánh Người xây dựng Người phá hủy
Mục đích Một hàm tạo được sử dụng để phân bổ bộ nhớ.Một chất phá hủy được sử dụng để giải quyết hoặc giải phóng bộ nhớ.
Tranh luận Thị trưởng có thể không chấp nhận các lập luận.Destructor don don chấp nhận bất kỳ lập luận nào.
Tờ khai class_name (đối số) {

}

~ class_name () {

};

Gọi Trình xây dựng được gọi ngay khi đối tượng được tạo.Được gọi tại thời điểm chấm dứt chương trình hoặc khối được thoát ra.
Thứ tự thực hiện Các hàm tạo được thực hiện theo thứ tự liên tiếp, có nghĩa là từ cha mẹ đến lớp con.Các kẻ phá hủy được gọi theo thứ tự ngược lại, có nghĩa là từ lớp con đến lớp cha mẹ.
Quá tải Có thể bị quá tải.Không thể bị quá tải.

40. Giao diện Java có thể có phương thức tĩnh không?

Có, giao diện Java có thể có các phương thức tĩnh, nhưng chúng ta không thể ghi đè chúng vì chúng tĩnh. Vì vậy, chúng tôi phải xác định các phương thức tĩnh trong giao diện và chỉ thực hiện bên gọi trong lớp.

Dưới đây là một ví dụ về phương pháp tĩnh trong giao diện Java:

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
1

Giao diện trên có một phương thức tĩnh và phương thức mặc định có thể được thực thi mà không ảnh hưởng đến lớp thực hiện nó. Tuy nhiên, không có ích gì trong việc tạo các phương thức tĩnh trong giao diện Java vì chúng ta không thể ghi đè hàm bằng cách xác định lại nó trong phương thức chính ().

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
2

Vì vậy, đầu ra của chương trình trên sẽ là:

Phương thức tĩnh của giao diện một chức năng mặc định của giao diện A được gọi là
Default function of interface A called

41. Làm thế nào để sử dụng một ngoại lệ trong lập trình Java?

Lập trình viên phải sử dụng từ khóa ném để tạo và ném ngoại lệ thủ công. Dưới đây là chương trình để thủ công một IOException duy nhất. Nếu bạn muốn ném:

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
3

Đầu ra của chương trình trên sẽ là:

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
4

42. Phân biệt giữa ‘== và bằng ()?

Sự khác biệt chính giữa ‘==, và bằng () là‘ ==, là một toán tử, trong khi bằng () là một phương thức trong java. Toán tử == được sử dụng để so sánh tham chiếu hoặc địa chỉ, có nghĩa là nó kiểm tra xem cả hai đối tượng hoặc biến đều chỉ vào cùng một vị trí bộ nhớ.

Trong khi đó, phương thức bằng () so sánh nội dung của hai đối tượng hoặc biến. Nó kiểm tra xem giá trị của hai đối tượng có giống nhau hay không.

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
5
import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
6

43. Tệp JAR là gì?

Java Archive (JAR) là một định dạng tệp tổng hợp nhiều tệp vào một tệp tương tự trong một định dạng tương tự như tệp zip. Nói cách khác, JAR là một tệp bị kéo dài bao gồm các tệp Java Lass, siêu dữ liệu và tài nguyên như văn bản, hình ảnh, tệp âm thanh, thư mục, tệp. Class, v.v. Sau đây là cú pháp để tạo tệp JAR:
Following is the syntax to create a JAR file:

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
7

44. Tệp chiến tranh là gì?

Tệp lưu trữ EB chứa các tệp của ứng dụng web và giảm thời gian cần thiết để chuyển các tệp. Các tệp chiến tranh có thể lưu trữ các lớp Java, XML, JSP, Image, CSS, JS, HTML và Javaserver, có thể được sử dụng để phân phối bộ sưu tập các lớp Java, tệp XML, servlet Java, trang web, v.v.

Sau đây là cú pháp để tạo tệp chiến tranh:

import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
8

Đây là những câu hỏi phỏng vấn cơ bản Core Java cho Freshers, chúng ta hãy xem một số câu hỏi phỏng vấn Java hàng đầu thuộc danh mục trung gian.

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

45. Phân biệt giữa điều này () và super () trong java.

this() super()
Đại diện cho trường hợp hiện tại của một lớpĐại diện cho thể hiện hiện tại của lớp cha
Gọi hàm tạo mặc địnhGọi hàm tạo lớp cơ sở
Được sử dụng để trỏ đến thể hiện lớp hiện tạiĐược sử dụng để chỉ ra ví dụ của siêu lớp

46. ​​Đặt tên cho các phương thức của một lớp đối tượng.

  • Clone (): Phương thức này giúp tạo và trả về một bản sao của một đối tượng.: This method helps create and return a copy of an object.
  • bằng (): Phương pháp này giúp so sánh.: This method helps compare.
  • Finalize (): Nó được gọi bởi người thu gom rác trên đối tượng.: It is called by the garbage collector on the object.
  • getClass (): Nó cho phép chúng tôi trả về lớp thời gian chạy của đối tượng.: It allows us to return the runtime class of the object.
  • HashCode (): Phương thức này giúp trả về giá trị mã băm cho đối tượng.: This method helps return a hash code value for the object.
  • toString (): Nó cho phép chúng tôi trả về một biểu diễn chuỗi của đối tượng.: It lets us return a string representation of the object.
  • Thông báo (), notifyall () và chờ (): Những trợ giúp này trong việc đồng bộ hóa các hoạt động của các luồng chạy độc lập trong một chương trình.: These help in synchronizing the activities of the independently running threads in a program.

Đọc hướng dẫn này để tìm hiểu thêm về các phương pháp Java!

47. Xác định đàm phán nội dung.

Nếu chúng tôi đã truy cập một trang web để tìm kiếm thông tin, chúng tôi sẽ nhận thông tin bằng các ngôn ngữ khác nhau và ở các định dạng khác nhau. Khi khách hàng thực hiện yêu cầu HTTP cho máy chủ, máy khách cũng có thể chỉ định các loại phương tiện ở đây. Khách hàng có thể chỉ định những gì nó có thể chấp nhận trở lại từ máy chủ và trên cơ sở tính khả dụng, máy chủ sẽ trở lại máy khách. Điều này được gọi là đàm phán nội dung vì khách hàng và máy chủ đàm phán về ngôn ngữ và định dạng của nội dung sẽ được chia sẻ.

48. Chúng ta có thể nhập cùng một gói/lớp hai lần không? JVM sẽ tải gói hai lần khi chạy?

Một gói hoặc lớp có thể được kế thừa nhiều lần trong mã chương trình. JVM và trình biên dịch sẽ không tạo ra bất kỳ vấn đề nào. Hơn nữa, JVM tự động tải lớp trong nội bộ một lần, bất kể thời gian được gọi trong chương trình.

Xem video hướng dẫn Java này cho người mới bắt đầu:

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

49. Xác định một lớp trừu tượng.

Một lớp chứa từ khóa trừu tượng trong tuyên bố của nó được gọi là một lớp trừu tượng. Nó có thể có các phương pháp trừu tượng và không Abstract (phương pháp với một cơ thể).

  1. & nbsp; lớp này có thể có các biến công khai, riêng tư, được bảo vệ hoặc hằng số và mặc định.
  2. & nbsp; nó cần được mở rộng và phương pháp của nó cần được thực hiện. Nó không thể được khởi tạo.
  3. & nbsp; Nếu một lớp có ít nhất một phương thức trừu tượng, thì lớp phải được khai báo trừu tượng.

50. Mô tả chú thích.

  • Chú thích Java là một thẻ tượng trưng cho siêu dữ liệu được liên kết với lớp, giao diện, phương thức, trường, v.v.
  • Chú thích không ảnh hưởng trực tiếp đến hoạt động.
  • Thông tin bổ sung được thực hiện bởi các chú thích được sử dụng bởi trình biên dịch Java và JVM.

51. Java không sử dụng con trỏ. Tại sao?

Con trỏ rất dễ bị ảnh hưởng và hơi bất cẩn trong việc sử dụng của chúng có thể dẫn đến các vấn đề về bộ nhớ, và do đó Java về cơ bản quản lý việc sử dụng chúng.

Blog này sẽ giúp bạn hiểu rõ hơn về công nghệ di động cho Android và iOS bằng Java!

52. Phân biệt giữa tải tĩnh và tải lớp động.

    • Tải tĩnh: Trong tải tĩnh, các lớp được tải tĩnh với toán tử mới.: In static loading, classes are loaded statically with the operator ‘new.’
    • Tải lớp động: Đây là một kỹ thuật để lập trình các chức năng của trình tải lớp trong thời gian chạy. Cú pháp cho điều này như sau:: It is a technique for programmatically invoking the functions of a class loader at runtime. The syntax for this is as follows:
import java.util.*;
class A
{
	public static void main(String args[])
	{
		System.out.println("Hello World");
	}
}
9

53. Sải thanh 1 Các lớp không an toàn cho luồng, trong khi các thanh chống 2 lớp an toàn. Tại sao?

Struts 1 hành động là singleton. Vì vậy, tất cả các luồng hoạt động trên đối tượng hành động duy nhất và do đó làm cho nó không an toàn.

Các hành động Struts 2 không phải là Singleton và một bản sao đối tượng hành động mới được tạo mỗi khi yêu cầu hành động mới được thực hiện và do đó nó an toàn cho luồng.

54. Xác định JAXP và JAXB.

JAXP: Nó là viết tắt của API Java để xử lý XML. Điều này cung cấp một giao diện chung để tạo và sử dụng API DOM, SAX và XSLT trong Java bất kể việc triển khai nhà cung cấp nào thực sự được sử dụng.: It stands for Java API for XML Processing. This provides a common interface for creating and using DOM, SAX, and XSLT APIs in Java regardless of which vendor’s implementation is actually being used.

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

JAXB: Nó là viết tắt của API Java cho liên kết XML. Tiêu chuẩn này xác định một hệ thống cho một tập lệnh ra khỏi các đối tượng Java là XML và để tạo các đối tượng Java từ các cấu trúc XML.: It stands for Java API for XML Binding. This standard defines a system for a script out of Java objects as XML and for creating Java objects from XML structures.

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

Tìm hiểu thêm về Java MultiThreading & NBSP; từ hướng dẫn này!

55. Xác định một bảng liệt kê?

Thông thường, chúng tôi gọi liệt kê là một enum. Một liệt kê là một giao diện chứa các phương thức để truy cập cấu trúc dữ liệu gốc mà từ đó thu được. Nó cho phép truy cập tuần tự vào tất cả các yếu tố được lưu trữ trong bộ sưu tập.

56. Làm thế nào chúng ta có thể tìm thấy kích thước thực tế của một đối tượng trên đống?

Trong Java, không có cách nào để tìm ra kích thước thực tế của một đối tượng trên đống.

57. API nào được Java cung cấp cho các hoạt động trên một tập hợp các đối tượng?

Java cung cấp API bộ sưu tập cung cấp nhiều phương pháp hữu ích, có thể được áp dụng cho một tập hợp các đối tượng. Một số lớp quan trọng được cung cấp bởi API Bộ sưu tập bao gồm ArrayList, Hashmap, Plantset và Treemap.

58. Những gì lớp cơ sở của tất cả các lớp ngoại lệ?

Java.lang.throwable: Đây là siêu lớp của tất cả các lớp ngoại lệ và tất cả các lớp ngoại lệ đều có nguồn gốc từ lớp cơ sở này.: It is the superclass of all exception classes, and all exception classes are derived from this base class.

Tìm hiểu tất cả về mảng & nbsp; từ hướng dẫn Java toàn diện này!

59. Tại sao chúng ta sử dụng một lớp vector?

Một lớp vector cung cấp khả năng thực hiện một mảng các đối tượng có thể phát triển. Một vector chứng tỏ là rất hữu ích nếu bạn không biết kích thước của mảng trước hoặc nếu chúng ta cần một loại có thể thay đổi kích thước trong suốt vòng đời của một chương trình.

60. Sự khác biệt giữa các biến thoáng qua và biến động trong Java là gì?

Thoáng qua: Trong Java, nó được sử dụng để xác định xem một biến không được tuần tự hóa. Tái hóa là một quá trình lưu trạng thái đối tượng trong Java. Khi chúng ta muốn tồn tại trạng thái đối tượng theo mặc định, tất cả các biến thể hiện trong đối tượng được lưu trữ. Trong một số trường hợp, chúng tôi muốn tránh tồn tại một vài biến vì chúng tôi không cần phải chuyển qua mạng. Vì vậy, chúng tôi tuyên bố các biến đó là thoáng qua.: In Java, it is used to specify whether a variable is not being serialized. Serialization is a process of saving an object’s state in Java. When we want to persist the object’s state by default, all instance variables in the object are stored. In some cases, we want to avoid persisting a few variables because we don’t have the necessity to transfer across the network. So, we declare those variables as transient.

Nếu biến được xác nhận là thoáng qua, thì nó sẽ không được duy trì. Từ khóa thoáng qua được sử dụng với biến thể hiện sẽ không tham gia vào quá trình tuần tự hóa. Chúng ta không thể sử dụng tĩnh với một biến thoáng qua vì chúng là một phần của biến thể hiện.

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

D biến động: Từ khóa dễ bay hơi được sử dụng chỉ với một biến trong Java và nó đảm bảo rằng giá trị của biến dễ bay hơi sẽ luôn được đọc từ bộ nhớ chính chứ không phải từ bộ đệm cục bộ của luồng; nó có thể là tĩnh.: The volatile keyword is used with only one variable in Java, and it guarantees that the value of the volatile variable will always be read from the main memory and not from the thread’s local cache; it can be static.

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

61. Tại sao giao diện bản đồ không mở rộng giao diện thu thập trong khung bộ sưu tập Java?

Giao diện bản đồ không tương thích với giao diện thu thập, bởi vì MAP yêu cầu một khóa cũng như giá trị, ví dụ, nếu chúng ta muốn thêm một cặp giá trị khóa, chúng ta sẽ sử dụng PUT (phím đối tượng, giá trị đối tượng).

Có hai tham số cần thiết để thêm một phần tử vào đối tượng Hashmap. Trong giao diện thu thập, thêm (đối tượng O) chỉ có một tham số.

Các lý do khác là: MAP hỗ trợ giá trị, phím và các phương pháp phù hợp khác chỉ có các chế độ xem khác nhau từ giao diện thu thập.

62. Đề cập đến việc sử dụng khối đồng bộ.

Chúng tôi sử dụng khối đồng bộ hóa vì:

  • Nó giúp khóa một đối tượng cho mọi tài nguyên được chia sẻ.
  • Phạm vi của khối đồng bộ hóa nhỏ hơn phương pháp.

63. Các hàm của phương thức HashCode () là gì?

Phương thức & nbsp; hashcode () trả về giá trị mã băm (số nguyên) và cũng giống nhau số nguyên nếu hai khóa (bằng cách gọi phương thức Equals ()) là như nhau. Nhưng đôi khi, hai số mã băm có thể có các khóa khác nhau hoặc giống nhau.
But sometimes, the two hash code numbers can have different or the same keys.

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

64. Kích thước mặc định của hệ số tải trong bộ sưu tập dựa trên băm là gì?

Kích thước mặc định = 0,75 Công suất mặc định = Công suất ban đầu * Hệ số tải
Default capacity = initial capacity * load factor

65. Sự khác biệt giữa các thẻ tùy chỉnh JSP và hạt java là gì?

  • Thẻ tùy chỉnh có thể thao tác nội dung JSP, nhưng đậu không thể.
  • Các hoạt động tổng hợp có thể được giảm xuống một dạng đơn giản hơn đáng kể với các thẻ tùy chỉnh so với đậu.
  • Thẻ tùy chỉnh yêu cầu hợp lý một chút công việc để thiết lập so với đậu.
  • Thẻ tùy chỉnh chỉ có sẵn trong JSP 1.1, v.v., nhưng đậu có thể được sử dụng trong tất cả các phiên bản JSP 1.x.

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

Các lớp trình bao bọc trong Java cung cấp một cơ chế để chuyển đổi các loại dữ liệu nguyên thủy thành các loại tham chiếu hoặc đối tượng và ngược lại. Mỗi loại dữ liệu nguyên thủy trong Java có một lớp chuyên dụng được gọi là lớp trình bao bọc, kết thúc các loại nguyên thủy thành một đối tượng của lớp cụ thể đó. Chuyển đổi các loại dữ liệu nguyên thủy thành các đối tượng được gọi là autoboxing và chuyển đổi từ một đối tượng sang các loại dữ liệu nguyên thủy được gọi là unboxing.

Một trong những ứng dụng chính của các lớp trình bao bọc là thay đổi giá trị bên trong các phương thức. Java không hỗ trợ cuộc gọi bằng tham chiếu, điều đó có nghĩa là các thay đổi được thực hiện bên trong một phương thức sẽ không thay đổi giá trị ban đầu. Vì vậy, sau khi chuyển đổi các loại thành các đối tượng, các giá trị ban đầu cũng sẽ thay đổi. Ngoài ra, các lớp trình bao bọc giúp thực hiện tuần tự hóa bằng cách chuyển đổi các đối tượng thành các luồng.

67. Sự khác biệt giữa bộ nhớ ngăn xếp và heap trong Java?

Sự khác biệt chính giữa bộ nhớ HEAP và STACK trong Java là:

Đặc trưng Ngăn xếp bộ nhớ Bộ nhớ đống
Kích thước bộ nhớ Kích thước nhỏ hơn.Kích thước lớn hơn.
Cả đời Tồn tại cho đến khi kết thúc chủ đề.Sống từ đầu đến khi kết thúc thực thi ứng dụng.
Truy cập Các đối tượng được lưu trữ trong ngăn xếp có thể được truy cập bằng các luồng khác.Có thể truy cập toàn cầu.
Kỉ niệm

 Management

Theo LIFO (cuối cùng theo thứ tự đầu tiên).Phân bổ bộ nhớ động.
Phạm vi hoặc khả năng hiển thị Các biến trong bộ nhớ ngăn xếp chỉ hiển thị cho luồng chủ sở hữu.Bộ nhớ heap có thể nhìn thấy tất cả các luồng.
Thứ tự phân bổ Phân bổ bộ nhớ liên tục.Phân bổ bộ nhớ đơn hàng ngẫu nhiên.
Uyển chuyển Ít linh hoạt hơn, người ta không thể thay đổi bộ nhớ phân bổ.Người dùng có thể thay đổi bộ nhớ được phân bổ.
Hiệu quả Truy cập nhanh, phân bổ và giải quyết.Truy cập chậm, phân bổ và giải quyết.

68. Đa hình là gì?

Đa hình là khả năng của một đối tượng & nbsp; Nó chủ yếu được sử dụng khi một lớp cơ sở/cha mẹ được sử dụng để tham khảo một tham chiếu lớp con/có nguồn gốc. Có hai loại đa hình trong Java:

  • Biên dịch tính đa hình thời gian: Đa hình thời gian biên dịch là phương pháp quá tải trong đó hai hoặc nhiều phương thức có cùng tên với các đối số/tham số và loại trả về. Compile-time polymorphism is method overloading where two or more methods have the same name with arguments/parameters and return type.
  • Đa hình thời gian chạy: Đa hình thời gian chạy của phương thức động điều phối giúp người dùng giải quyết phương thức ghi đè trong thời gian chạy thay vì biên dịch thời gian. Phương thức ghi đè được gọi là đối tượng của một siêu lớp. Runtime polymorphism of the Dynamic Method Dispatch helps the user to resolve the overridden method at runtime rather than compile-time. The overridden method is called the object of a superclass.

69. Ý bạn là gì về giao diện trong Java?

Giao diện Java là một lớp hoàn toàn trừu tượng được gọi là một tập hợp các phương pháp trừu tượng, phương pháp tĩnh và hằng số. Nó hoạt động như một bản thiết kế của một lớp nhóm các phương pháp hoặc chức năng liên quan với các cơ thể trống.

Dưới đây là một ví dụ về giao diện Java:

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
0

Output:

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
1

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

Dưới đây là sự khác biệt chính giữa lớp trừu tượng và giao diện:

Lớp học trừu tượng Giao diện
Có thể cung cấp đầy đủ, mặc định hoặc chỉ các chi tiết trong phương thức ghi đèKhông cung cấp bất kỳ mã nào, người dùng chỉ có thể có chữ ký của giao diện.
Có các biến thể hiện.Không có biến thể hiện.
Một lớp trừu tượng có thể được công khai, riêng tư hoặc được bảo vệ.Giao diện phải được công khai.
Một lớp trừu tượng có thể có các hàm tạo.Không có hàm tạo có sẵn trong giao diện.
Một lớp chỉ có thể thừa hưởng một lớp trừu tượng duy nhất.Một lớp có thể thực hiện một hoặc nhiều giao diện.
Các lớp học trừu tượng là nhanh chóng.Các giao diện chậm hơn vì chúng phải xác định vị trí các phương thức tương ứng trong lớp.

71. Giải thích đóng gói dữ liệu trong Java?

Đóng gói dữ liệu là một khái niệm OOPS cơ bản kết thúc dữ liệu (biến) và mã (phương thức) như một đơn vị. Các biến và phương thức này chỉ có thể được truy cập thông qua lớp hiện tại, vì chúng sẽ bị ẩn khỏi những người khác. Đóng gói bảo vệ dữ liệu khỏi sửa đổi không cần thiết và có thể đạt được theo hai cách:

  • Bằng cách tuyên bố biến của một lớp là riêng tư
  • Sử dụng các phương thức setter và getter công khai để xem và sửa đổi các giá trị

72. Một servlet ở Java là gì?

Nó có một công nghệ phía máy chủ được sử dụng để tạo máy chủ web và máy chủ ứng dụng. Chúng tôi có thể hiểu các dịch vụ là các chương trình Java xử lý yêu cầu từ các máy chủ web, xử lý yêu cầu và hoàn nguyên về các máy chủ web sau khi phản hồi được tạo.

Một số gói như javax.servlet và javax.servlet.http cung cấp các giao diện và lớp phù hợp giúp người dùng tạo servlet của họ. Tất cả các dịch vụ nên triển khai giao diện javax.servlet.servlet, cộng với các giao diện và các lớp khác như HTTPServlet, Java Servlet API, v.v.

Có sáu bước liên quan đến việc thực hiện một servlet:

  • Các khách hàng gửi yêu cầu đến máy chủ web hoặc máy chủ ứng dụng.
  • Máy chủ web nhận được yêu cầu.
  • Servlet xử lý yêu cầu và tạo ra đầu ra.
  • Bây giờ, servlet gửi yêu cầu trở lại máy chủ web.
  • Cuối cùng, máy chủ gửi yêu cầu đến máy khách và kết quả hiện được hiển thị trên màn hình máy khách hoặc bất kỳ thiết bị nào khác.

73. Người điều phối yêu cầu là gì?

Người điều phối yêu cầu là một giao diện được sử dụng để gửi các yêu cầu đến các tài nguyên khác như trang máy chủ Java (JSP), hình ảnh, HTML hoặc một servlet khác trong cùng một ứng dụng. Nó cũng có thể được sử dụng để bao gồm các phản hồi từ phần này sang servlet khác để khách hàng nhận được yêu cầu từ cả hai động cơ. Hơn nữa, nó cũng có thể được sử dụng để chuyển tiếp yêu cầu của khách hàng đến servlet tiếp theo.

Có hai phương thức được xác định trong giao diện requestDispatcher:

  • void bao gồm (): Nó bao gồm nội dung của tài nguyên trước khi gửi phản hồi.: It includes the content of the resource before sending the response.
  • void forward (): Phương thức chuyển tiếp yêu cầu từ một servlet sang tài nguyên khác như jsp, hình ảnh, v.v. trên máy chủ.: the method forwards the request from one servlet to another resource like the JSP, image, etc on the server.

Cookies là các tệp văn bản được gửi bởi máy chủ và được lưu trữ trong hệ thống máy khách để giữ thông tin trên máy cục bộ và sử dụng nó cho mục đích theo dõi. Java Servlet hỗ trợ & NBSP; Cookie http thông qua lớp javax.servlet.http.cookie thực hiện các giao diện có thể làm sạch và có thể nối tiếp.

Máy chủ gửi một bộ cookie đến máy khách, ví dụ: tên, tuổi, v.v. Sau đó, trình duyệt lưu trữ thông tin trong máy cục bộ và gửi các cookie này đến máy chủ, nếu bất kỳ yêu cầu nào được gửi đến máy chủ web. Thông tin này sau đó có thể được sử dụng để xác định người dùng.

75. Sự khác biệt giữa ServletContext so với ServletConfig là gì?

Sự khác biệt giữa ServletContext so với ServletConfig như sau:

ServletContext ServletConfig
Chung cho tất cả các servlet và thường đại diện cho toàn bộ ứng dụng web.Đại diện cho servlet đơn.
Tương tự như các tham số toàn cầu được liên kết với toàn bộ ứng dụng.Tương tự như các tham số cục bộ liên quan đến một servlet cụ thể.
ServletContext có phạm vi toàn ứng dụng.ServletConfig có phạm vi rộng servlet.
Để có được đối tượng ngữ cảnh, phương thức getServletContext () được sử dụng.Để có được đối tượng cấu hình, GetServletConfig () được sử dụng.
Chủ yếu được sử dụng để có được một loại tệp hoặc ứng dụng MIME.Chủ yếu được sử dụng cho người dùng hoặc nhiệm vụ cụ thể như thẻ mua sắm.

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

Có 5 trạng thái trong vòng đời chủ đề và Java có thể ở bất kỳ một trong số đó. Chủ đề nằm ở bất kỳ một trong những trạng thái này:

  • MỚI: Chủ đề nằm ở trạng thái mới sau khi nó được tạo ra. Nó vẫn ở trạng thái mới cho đến khi bạn bắt đầu quá trình thực thi.The thread lies in the new state after it has been created. It remains in the new state until you start the execution process.
  • Chạy: Ở trạng thái Runnable, luồng đã sẵn sàng để chạy bất cứ lúc nào hoặc nó có thể đã bắt đầu chạy. At runnable state, the thread is ready to run at any point in time or it might have started running already.
  • Chạy: Bộ lập lịch chọn luồng và thay đổi trạng thái của nó thành chạy, CPU bắt đầu thực thi luồng ở trạng thái chạy. The scheduler picks up the thread and changes its state to running, the CPU starts executing the thread in the running state.
  • Chờ đợi: Trong khi sẵn sàng thực thi, một chủ đề khác có thể đang chạy trong hệ thống. Vì vậy, chủ đề đi đến trạng thái chờ đợi. While being ready to execute, another thread might be running in the system. So, the thread goes to the waiting state.
  • Dead: Sau khi thực hiện chủ đề kết thúc, trạng thái của nó được thay đổi thành trạng thái chết, điều đó có nghĩa là nó không được coi là hoạt động nữa.Once the execution of the thread is finished, its state is changed to the dead state, which means it’s not considered active anymore.

77. Làm thế nào để phân biệt các quy trình với các chủ đề?

Dưới đây là sự khác biệt chính giữa các quy trình và luồng:

Quá trình Chủ đề
Quá trình này là tập hợp các hướng dẫn hoặc chương trình trong thực thi.Chủ đề là một phân đoạn hoặc một phần của một quá trình
Mất nhiều thời gian hơn để thực hiện.Mất ít thời gian hơn để thực hiện.
Chuyển đổi ngữ cảnh chậm hơn.Chuyển đổi ngữ cảnh nhanh hơn.
Các quá trình thường bị cô lập.Chủ đề chia sẻ bộ nhớ.
Quá trình này là một quá trình trọng lượng nặng.Quá trình nhẹ.
Một quy trình bị chặn sẽ không ảnh hưởng đến hiệu suất của các quy trình khác.Một luồng bị chặn sẽ chặn các luồng khác của cùng một quy trình.
Quá trình tiêu thụ ít tài nguyên hơn.Chủ đề tiêu thụ ít tài nguyên hơn.

78. Giải thích các loại ngoại lệ trong Java?

Có hai loại ngoại lệ trong lập trình Java:

  • Ngoại lệ tích hợp: Các ngoại lệ này là các trường hợp ngoại lệ có sẵn trong gói tiêu chuẩn của Java Lang. Chúng được sử dụng cho một số lỗi nhất định với các ngoại lệ cụ thể như đã đề cập dưới đây: These exceptions are the exceptions available in the standard package of java lang. They are used for certain errors with specific Exceptions as mentioned below:
    • ArithTHMETICEXception: ném cho các lỗi liên quan đến các hoạt động số học.
    • IOException: ném cho các hoạt động đầu vào không thất bại.
    • FILENOTFOURNDEXception: Được nâng lên khi tệp không thể truy cập được hoặc không tồn tại.
    • ClassNotFoundException: Ngoại lệ được nâng lên khi trình biên dịch không thể tìm thấy định nghĩa lớp.
    • InterruptedEexception: Lớn lên khi một luồng bị gián đoạn.
    • NosuchFieldException: Được nâng lên khi một lớp hoặc phương thức không có một biến được chỉ định.
    • NullPulumException: Ném trong khi đề cập đến biến hoặc giá trị của một đối tượng null.
    • RunTimeException: Nâng cao cho các lỗi xảy ra trong thời gian chạy. Ví dụ: thực hiện chuyển đổi loại không hợp lệ.
    • IndexOutoFboundSexception: Được nêu ra khi chỉ mục của bộ sưu tập như một mảng, chuỗi hoặc vectơ nằm ngoài phạm vi hoặc không hợp lệ.
  • Các trường hợp ngoại lệ do người dùng xác định: Các ngoại lệ do người dùng xác định là các ngoại lệ được người dùng ném bằng các tin nhắn tùy chỉnh. Chúng được sử dụng cho các trường hợp ngoại lệ được xây dựng có thể không thể xác định lỗi. User-defined exceptions are the exceptions thrown by the user with custom messages. These are used for cases where the in-built Exception might not be able to define the error.

79. Làm thế nào để viết nhiều câu lệnh bắt trong một khối thử?

Dưới đây là chương trình cho nhiều câu lệnh bắt:

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
2

Đầu ra của chương trình sau trong các trường hợp khác nhau sẽ là:

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
3
import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
4
import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
5

80. Sự khác biệt giữa từ khóa ném và ném?

Sau đây là sự khác biệt chính giữa từ khóa ném và ném:

Chìa khóa throw ném
Sự định nghĩaTừ khóa ném được sử dụng để ném rõ ràng một ngoại lệ bên trong một chương trình hoặc một khối mã.Từ khóa ném được sử dụng để khai báo một ngoại lệ trong chữ ký phương thức có thể xảy ra trong quá trình biên dịch hoặc thực hiện chương trình.
Loại ngoại lệChỉ có thể ném các trường hợp ngoại lệ không được kiểm soát.Có thể được sử dụng cho cả ngoại lệ được kiểm tra và không được kiểm soát.
Cú phápNém từ khóa theo sau là một biến thể hiện.Ném từ khóa theo sau là tên lớp ngoại lệ.
Việc thực hiệnTừ khóa ném được sử dụng để chỉ ném một ngoại lệ duy nhất.Ném có thể được sử dụng để ném nhiều ngoại lệ.

81. Viết chương trình đảo ngược chuỗi mà không sử dụng hàm được xây dựng?

Có hai cách chúng ta có thể đảo ngược một chuỗi trong Java mà không cần sử dụng hàm được xây dựng:

  • Sử dụng vòng lặp và in chuỗi ngược mỗi lần mỗi lần.
  • Sử dụng hàm đệ quy và in chuỗi ngược.

Trong chương trình sau, bạn có thể thấy cả hai cách để in lò xo theo thứ tự ngược lại:

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
6

Đầu ra của chương trình trên sẽ là:

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
7

82. Viết một chương trình để in loạt Fibonacci bằng cách sử dụng khái niệm đệ quy?

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
8

Đầu ra của chương trình trên là:

import java.util.*;
class A
{
int roll_no;
String name;
A()
{
System.out.println("Constructor called");
}

public void fun()
{
System.out.println("Class A function called");
}
}
public class parameterized_constructor
{
public static void main(String args[])
{
A obj=new A();
obj.fun();
System.out.println("The value of instance variables are: ");
System.out.println("Name: "+obj.name);
System.out.println("Roll No: " +obj.roll_no);
}
}
The output of the above program would be:
Constructor called
Class A function called
The value of instance variables are:
Name: null
Roll No: 0
9

Đó là tất cả trong phần của các câu hỏi phỏng vấn Java cốt lõi trung gian. Hãy cùng chuyển sang phần tiếp theo của các câu hỏi phỏng vấn Java nâng cao cho các chuyên gia có kinh nghiệm.

Câu hỏi phỏng vấn Java nâng cao cho các chuyên gia có kinh nghiệm

83. Giải thích ngôn ngữ biểu thức trong JSP.

Ngôn ngữ biểu thức được sử dụng trong JSP để đơn giản hóa khả năng truy cập của các đối tượng. Nó cung cấp nhiều đối tượng có thể được sử dụng trực tiếp như param, requestScope, sessionScope, Ứng dụng, yêu cầu, phiên, v.v.

84. Đối tượng ngầm là gì?

Các đối tượng ngầm, còn được gọi là các biến được xác định trước, được tạo bởi công cụ JSP bên trong phương thức dịch vụ để có thể truy cập trực tiếp mà không được khai báo rõ ràng.

Cookie là một thông tin nhỏ, được gửi đến trình duyệt bởi một máy chủ web. Trình duyệt lưu trữ cookie cho mọi máy chủ web trong một tệp cục bộ. Trong một yêu cầu trong tương lai, trình duyệt gửi tất cả các cookie được lưu trữ cho máy chủ web chi tiết đó.

Sự khác biệt giữa cookie và phiên là:

  • & nbsp; một phiên hoạt động bất kể cài đặt trên trình duyệt máy khách. Khách hàng có thể đã chọn để vô hiệu hóa cookie.
  • & nbsp; phiên và cookie cũng khác nhau trong việc lưu trữ lượng thông tin. Phiên HTTP có thể lưu trữ bất kỳ đối tượng Java nào, trong khi cookie chỉ có thể lưu trữ các đối tượng chuỗi.

86. Đường hầm HTTP là gì?

Đường hầm HTTP đề cập đến việc đóng gói dữ liệu/thông tin mạng riêng và truyền nó qua mạng công cộng. Thay vì gửi dữ liệu dưới dạng gói, việc đóng gói dữ liệu và đóng gói nó trong một kết nối. Quá trình này cho phép các máy khách bên ngoài thu thập tất cả dữ liệu được gửi bởi Nhà môi giới yêu cầu đối tượng phía máy khách (Orb) cần được gửi đến quỹ đạo phía máy chủ. Mặt nạ đường hầm HTTP yêu cầu giao thức khác như yêu cầu HTTP.

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

87. Chức năng của container IOC vào mùa xuân là gì?

Container IOC chịu trách nhiệm:

  • Tạo một ví dụ
  • Cấu hình thể hiện
  • & nbsp; lắp ráp các phụ thuộc

88. Đang tải lười biếng ở Hibernate là gì?

Lazy Loading là một loại thiết lập quyết định có nên tải các thực thể trẻ em cùng với các thực thể cha hay không. Khi bật tính năng này, các thực thể liên quan sẽ chỉ được tải khi chúng được yêu cầu trực tiếp. Giá trị mặc định của cài đặt này là ’đúng, điều này ngăn các thực thể trẻ em tải.

89. Làm thế nào chúng ta có thể tìm nạp các bản ghi bằng Spring JDBCTemplate?

Chúng ta có thể tìm nạp các bản ghi từ cơ sở dữ liệu bằng phương thức truy vấn của JDBCTemplate. Có hai giao diện để làm điều này:

  1.  ResultSetExtractor
  2.  RowMapper

90. Lớp điều khiển phía trước của MVC Spring là gì?

Lớp phục vụ điều phối hoạt động như bộ điều khiển phía trước trong MVC Spring.

91. Trạng thái của một đối tượng trong ngủ đông là gì?

Các trạng thái của một đối tượng ở Hibernate là:

  1. Thoáng qua: các đối tượng vừa được tạo ra không có khóa chính ở trạng thái thoáng qua. Ở đây các đối tượng được liên kết với bất kỳ phiên. The objects that are just created having no primary key are in a transient state. Here the objects are associated with any session.
  2. Kiên trì: Khi phiên của một đối tượng vừa được mở và trường hợp của nó chỉ được lưu hoặc lấy, nó được cho là ở trạng thái dai dẳng.: When the session of an object is just opened and its instance is just saved or retrieved, it is said to be in a persistent state.
  3. Tách rời: Khi phiên của một đối tượng được đóng lại, nó được cho là ở trạng thái tách rời. When the session of an object is closed, it is said to be in a detached state.

92. Làm thế nào để tạo ra một lớp học bất biến trong ngủ đông?

Nếu chúng ta đánh dấu một lớp là có thể thay đổi = giả Sai, lớp sẽ được coi là một lớp bất biến. Giá trị mặc định của Mutable là True True.

93. Hash-collision trong một hashtable là gì? Nó được xử lý như thế nào trong Java?

Trong Hashtable, nếu hai khóa khác nhau có cùng giá trị băm, thì nó dẫn đến việc va chạm băm. Một nhóm danh sách liên kết loại được sử dụng để giữ các khóa khác nhau của cùng một giá trị băm.

94. Viết một cú pháp để chuyển đổi một bộ sưu tập đã cho thành một bộ sưu tập được đồng bộ hóa.

Sau đây sẽ chuyển đổi một bộ sưu tập đã cho thành bộ sưu tập được đồng bộ hóa:

import java.util.*;
class A
{
    int roll_no;
    String name;
    A(int x,String y)
    {
        this.roll_no=x;
        this.name=y;
        System.out.println("Constructor called");
    }
    
    public void fun()
    {
        System.out.println("Class A function called");
    }
}

public class non_parameterized_constructor
{
    public static void main(String args[])
    {
        A obj=new A(10,"Harry Williams");
        System.out.println("The value of instance variables");
        System.out.println("Name: "+obj.name);
        System.out.println("Roll No: "+obj.roll_no);
    }
}

The output of the above program will be:

Constructor called
The value of instance variables
Name: Harry Williams
Roll No: 10
0

95. Viết mã để làm cho các bộ sưu tập chỉ đọc.

Chúng ta có thể thực hiện các bộ sưu tập chỉ đọc bằng cách sử dụng mã dòng sau:

import java.util.*;
class A
{
    int roll_no;
    String name;
    A(int x,String y)
    {
        this.roll_no=x;
        this.name=y;
        System.out.println("Constructor called");
    }
    
    public void fun()
    {
        System.out.println("Class A function called");
    }
}

public class non_parameterized_constructor
{
    public static void main(String args[])
    {
        A obj=new A(10,"Harry Williams");
        System.out.println("The value of instance variables");
        System.out.println("Name: "+obj.name);
        System.out.println("Roll No: "+obj.roll_no);
    }
}

The output of the above program will be:

Constructor called
The value of instance variables
Name: Harry Williams
Roll No: 10
1

96. Có nghĩa là gì khi ràng buộc trong RMI?

Binding là quá trình liên kết hoặc đăng ký một tên cho một đối tượng từ xa, có thể được sử dụng như một điều xa hơn, để tìm kiếm đối tượng từ xa đó. Một đối tượng từ xa có thể được liên kết với một tên bằng cách sử dụng các phương thức BIND/REBIND của lớp đặt tên.

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

97. Các tính năng mới nhất được giới thiệu trong Java 8 là gì?

Các tính năng dưới đây được giới thiệu trong Java 8:

  • Biểu thức Lambda
  • Giao diện Phương thức mặc định và tĩnh
  • Phương thức tham khảo
  • Tên tham số
  • Luồng tùy chọn
  • Đồng thời

98. Đặt tên cho một vài chú thích Java 8.

Chú thích giao diện @Functional: Nó được giới thiệu trong Java SE 8, chỉ ra rằng khai báo loại được dự định là một giao diện chức năng như được định nghĩa bởi đặc tả ngôn ngữ Java.

Chú thích @repeatable: Được giới thiệu trong Java SE 8, chú thích @repeatable chỉ ra rằng chú thích được đánh dấu có thể được áp dụng nhiều lần cho cùng một tuyên bố hoặc sử dụng loại.

99. Phân biệt giữa một vị ngữ và một hàm.

Một vị từ có một đối số và trả về một giá trị boolean.

Một hàm có một đối số và trả về một đối tượng. Cả hai đều hữu ích để đánh giá các biểu thức lambda.

100. Viết mã để sắp xếp danh sách các chuỗi bằng biểu thức Lambda Java 8.

import java.util.*;
class A
{
    int roll_no;
    String name;
    A(int x,String y)
    {
        this.roll_no=x;
        this.name=y;
        System.out.println("Constructor called");
    }
    
    public void fun()
    {
        System.out.println("Class A function called");
    }
}

public class non_parameterized_constructor
{
    public static void main(String args[])
    {
        A obj=new A(10,"Harry Williams");
        System.out.println("The value of instance variables");
        System.out.println("Name: "+obj.name);
        System.out.println("Roll No: "+obj.roll_no);
    }
}

The output of the above program will be:

Constructor called
The value of instance variables
Name: Harry Williams
Roll No: 10
2

101. Nashorn trong Java 8 là gì?

Với Java 8, Nashorn, một động cơ JavaScript được cải thiện rất nhiều, được giới thiệu và nó đã thay thế tê giác hiện có. Nó cung cấp hiệu suất tốt hơn 2 lần10 lần, vì nó trực tiếp biên dịch mã trong bộ nhớ và chuyển mã byte cho JVM. Mặc dù, Nashorn sử dụng tính năng Invoke Dynamic, được giới thiệu trong Java 7, để cải thiện hiệu suất.

102. Xác định StringJoiner và viết mã mẫu.

StringJoiner là một phương thức sử dụng để xây dựng một chuỗi với dấu phân cách mong muốn.

import java.util.*;
class A
{
    int roll_no;
    String name;
    A(int x,String y)
    {
        this.roll_no=x;
        this.name=y;
        System.out.println("Constructor called");
    }
    
    public void fun()
    {
        System.out.println("Class A function called");
    }
}

public class non_parameterized_constructor
{
    public static void main(String args[])
    {
        A obj=new A(10,"Harry Williams");
        System.out.println("The value of instance variables");
        System.out.println("Name: "+obj.name);
        System.out.println("Roll No: "+obj.roll_no);
    }
}

The output of the above program will be:

Constructor called
The value of instance variables
Name: Harry Williams
Roll No: 10
3

103. Bạn có thể thực thi mã JavaScript từ cơ sở mã Java 8 không?

Đúng! Chúng ta có thể thực thi mã JavaScript từ cơ sở mã Java 8 bằng cách sử dụng ScripTeneGenManAger. Chúng tôi gọi mã JavaScript và giải thích nó trong Java.

104. Việc sử dụng xử lý hàng loạt trong JDBC là gì?

Xử lý hàng loạt là một kỹ thuật được sử dụng để nhóm một bộ truy vấn SQL liên quan và thực hiện chúng theo thứ tự. Điều này được thực hiện để tránh thực hiện một truy vấn tại một thời điểm.

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

Việc sử dụng xử lý hàng loạt đảm bảo rằng các truy vấn thực hiện nhanh hơn, do đó duy trì hiệu quả cao và tốc độ thực thi tổng thể.

105. Các loại tuyên bố được JDBC hỗ trợ là gì?

Có ba loại câu lệnh được JDBC hỗ trợ như hình dưới đây:

  • Tuyên bố: Được sử dụng để thực thi các truy vấn tĩnh và để truy cập chung vào cơ sở dữ liệu
  • Callablestatement: Cung cấp quyền truy cập vào các quy trình được lưu trữ và tham số thời gian chạy
  • PreadStatement: Cung cấp các tham số đầu vào cho các truy vấn trong khi chúng đang thực hiện

106. Bộ sưu tập trong Java là gì?

Một bộ sưu tập là một khung được sử dụng để lưu trữ và điều khiển một thùng chứa các đối tượng trong Java.

Bộ sưu tập Java có thể được sử dụng để thực hiện nhiều hoạt động khác nhau như:

  • Tìm kiếm
  • Loại
  • Vận dụng
  • Xóa bỏ

Dưới đây là biểu đồ đại diện cho hệ thống phân cấp các bộ sưu tập trong Java:

100 câu hỏi phỏng vấn lập trình hàng đầu trong java năm 2022

107. Ý nghĩa của quá trình quá tải hàm tạo trong Java là gì?

Quá tải hàm tạo là một kỹ thuật phổ biến trong số các lập trình viên có yêu cầu thêm nhiều hàm tạo vào một lớp duy nhất với một danh sách tham số khác.

Sau đây biểu thị một ví dụ về quá tải hàm tạo:

import java.util.*;
class A
{
    int roll_no;
    String name;
    A(int x,String y)
    {
        this.roll_no=x;
        this.name=y;
        System.out.println("Constructor called");
    }
    
    public void fun()
    {
        System.out.println("Class A function called");
    }
}

public class non_parameterized_constructor
{
    public static void main(String args[])
    {
        A obj=new A(10,"Harry Williams");
        System.out.println("The value of instance variables");
        System.out.println("Name: "+obj.name);
        System.out.println("Roll No: "+obj.roll_no);
    }
}

The output of the above program will be:

Constructor called
The value of instance variables
Name: Harry Williams
Roll No: 10
4

Để xóa những nghi ngờ của bạn, bạn có thể ghé thăm cộng đồng Java Intellipaat!

108. Trình điều khiển JDBC là gì?

Kết nối cơ sở dữ liệu Java (JDBC) là API cho phép khách hàng truy cập các nguồn dữ liệu khác nhau từ bảng tính đến các tệp phẳng và cơ sở dữ liệu quan hệ. Nó có một giao diện lớp giữa thiết lập kết nối giữa các ứng dụng và cơ sở dữ liệu Java. Ngoài việc kết nối các nguồn dữ liệu, JDBC còn được sử dụng để gửi truy vấn và cập nhật vào cơ sở dữ liệu, truy xuất và xử lý dữ liệu nhận được từ cơ sở dữ liệu.

Có bốn loại trình điều khiển JDBC:

  • Trình điều khiển cầu JDBC-ODBC: Sử dụng kết nối cơ sở dữ liệu mở (ODBC) để kết nối với cơ sở dữ liệu. Nó còn được gọi là trình điều khiển phổ quát vì nó có thể được sử dụng để kết nối với bất kỳ cơ sở dữ liệu nào. Uses Open Database Connectivity(ODBC) to connect with the database. It’s also known as the Universal Driver as it can be used to connect with any database.
  • Trình điều khiển gốc API: Nó có một trình điều khiển Java một phần sử dụng các thư viện phía máy khách của cơ sở dữ liệu để chuyển đổi các cuộc gọi JDBC thành các cuộc gọi gốc của giao diện lập trình cơ sở dữ liệu. Mạng-API cần được cài đặt trên các máy khách riêng lẻ riêng biệt. It’s a partial java Driver that uses client-side libraries of the database to convert JDBC calls into native ones of the database programming interface. The Network-API needs to be installed on individual client machines separately.
  • Trình điều khiển giao thức mạng: Trình điều khiển sử dụng phần mềm trung gian hoặc máy chủ ứng dụng để chuyển đổi các cuộc gọi JDBC thành giao thức dành riêng cho nhà cung cấp. Nó không yêu cầu cài đặt phía máy khách riêng lẻ vì tất cả các trình điều khiển kết nối có mặt trong một trình điều khiển. The driver uses the middleware or application server to convert the JDBC calls into the vendor-specific protocol. It doesn’t require individual client-side installation as all the connectivity drivers are present in one driver.
  • Trình điều khiển mỏng: Đây là những trình điều khiển di động giành được yêu cầu cài đặt từ bất kỳ cài đặt phía máy khách hoặc máy chủ nào. Họ trực tiếp tương tác với cơ sở dữ liệu và don lồng yêu cầu bất kỳ thư viện cơ sở dữ liệu nào để làm như vậy. These are portable drivers that won’t require any installation from any client or server-side installation. They directly interact with the database and don’t require any database library to do so.

109. Sự khác biệt giữa thực thi, thực thi và thực thi là gì?

Dưới đây là sự khác biệt chính giữa Execute, ExecuteQuery và ExecuteUpdate:

hành hình thực hiện kiểm tra ExecuteUpdate
Được sử dụng để thực hiện bất kỳ truy vấn SQL nào và nhận kết quả ở định dạng Boolean (Đúng hoặc Sai).ExecuteQuery được sử dụng để thực thi các truy vấn SQL và truy xuất một số dữ liệu từ cơ sở dữ liệu.ExecuteUpdate được sử dụng để thực thi các câu lệnh DML (Ngôn ngữ thao tác dữ liệu) như cập nhật hoặc sửa đổi cơ sở dữ liệu.
Trả về một giá trị boolean, trong đó true cho biết truy vấn được trả về là một đối tượng của kết quả và sai chỉ ra rằng không có gì hoặc giá trị số nguyên đã được trả về.Trả về đối tượng resultset có chứa kết quả được tạo và trả về bởi truy vấn.Trả về một giá trị số nguyên đại diện cho số lượng hàng được cập nhật hoặc thay đổi bởi truy vấn.
Được sử dụng để thực hiện cả truy vấn chọn và không chọn.Được sử dụng để thực hiện các truy vấn chọn.Được sử dụng để thực hiện các truy vấn không chọn.
Ex-bất kỳ tuyên bố SQL nào.Ex- chọnEx- chèn, tạo, thay đổi, xóa, cập nhật, v.v.

Để xóa những nghi ngờ của bạn, bạn có thể ghé thăm cộng đồng Java Intellipaat!

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

Câu hỏi phỏng vấn lập trình Java..
Làm thế nào để đảo ngược một chuỗi trong java? ....
Làm thế nào để trao đổi hai số mà không sử dụng biến thứ ba? ....
Chương trình Java để kiểm tra xem một nguyên âm có có trong chuỗi không? ....
Chương trình Java để kiểm tra xem số đã cho là số nguyên tố? ....
Sê -ri Fibonacci sử dụng đệ quy ..

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

Java có tốt cho các cuộc phỏng vấn lập trình không?

Java cũng là một lựa chọn tốt. Nhưng bởi vì bạn sẽ phải liên tục khai báo các loại trong mã của mình, điều đó có nghĩa là nhập thêm phím phím. Điều này sẽ làm chậm tốc độ mà bạn mã và nhập. Vấn đề này sẽ rõ ràng hơn khi bạn phải viết trên bảng trắng trong các cuộc phỏng vấn tại chỗ.. But because you will have to constantly declare types in your code, it means entering extra keystrokes. This will slow down the speed at which you code and type. This issue will be more apparent when you have to write on a whiteboard during on-site interviews.

Cuốn sách nào là tốt nhất cho câu hỏi phỏng vấn Java?

7 Sách hay nhất cho chương trình Java và các cuộc phỏng vấn của nhà phát triển mùa xuân..
1.Bẻ khóa cuộc phỏng vấn mã hóa: 189 câu hỏi lập trình.....
Grokking cuộc phỏng vấn Java [cuốn sách của tôi] ....
Các yếu tố của các cuộc phỏng vấn lập trình trong Java: Hướng dẫn của người trong cuộc.....
Grokking cuộc phỏng vấn khởi động mùa xuân [cuốn sách của tôi] ....
Phỏng vấn lập trình Java được phơi bày bởi Markham ..