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

Bạn có thể truy cập biến non-static trong static context không?

Câu trả lời

Trong Java, bạn không thể trực tiếp truy cập một biến non-static từ một context static. Điều này là do biến non-static thuộc về một instance cụ thể của lớp, trong khi một phương thức static hoặc khối static thuộc về lớp đó nói chung, không phụ thuộc vào bất kỳ instance nào. Để truy cập một biến non-static từ một context static, bạn cần một tham chiếu đến một instance của lớp chứa biến non-static đó.

Ví dụ, nếu bạn có một lớp MyClass với một biến non-static myVar và một phương thức static myStaticMethod, bạn không thể trực tiếp truy cập myVar từ myStaticMethod mà không có một instance của MyClass.

java Copy
public class MyClass {
    int myVar = 10; // Biến non-static

    public static void myStaticMethod() {
        // Không thể trực tiếp truy cập myVar từ đây vì đây là một phương thức static
        // System.out.println(myVar); // Dòng này sẽ gây lỗi biên dịch

        // Để truy cập myVar, bạn cần một instance của MyClass
        MyClass myInstance = new MyClass();
        System.out.println(myInstance.myVar); // Đây là cách truy cập myVar từ một context static
    }
}

Trong ví dụ trên, để truy cập myVar từ myStaticMethod, chúng ta cần tạo một instance mới của MyClass và sử dụng instance đó để truy cập myVar. Điều này cho thấy rõ sự khác biệt giữa việc sử dụng biến và phương thức static so với non-static trong Java.

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Mục đích của việc thu gom rác trong Java là gì?

middle

Deadlock trong Java là gì?

middle

Sự khác biệt giữa fail-fastfail-safe trong Java là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào