TiiL Tutorials
@TinhocTiiL

Các câu hỏi phỏng vấn Lập trình Java cho tân binh Freshers – Phần 1

1. What is Java?

VI: Java là một ngôn ngữ lập trình cấp cao, hướng đối tượng, được phát triển bởi Sun Microsystems vào năm 1995. Nó độc lập nền tảng, nghĩa là các chương trình viết bằng Java có thể chạy trên bất kỳ nền tảng nào có máy ảo Java (Java Virtual Machine: JVM) được cài đặt.

EN: Java is a high-level, object-oriented programming language that was developed by Sun Microsystems in 1995. It is platform-independent, meaning that programs written in Java can run on any platform that has a Java Virtual Machine (JVM) installed.

2. What are the features of Java?

Java có nhiều tính năng làm cho nó trở thành một ngôn ngữ lập trình phổ biến. Một số tính năng bao gồm độc lập nền tảng, lập trình hướng đối tượng, quản lý bộ nhớ tự động, độ bền vững, và bảo mật.

Java has several features that make it a popular programming language. Some of these features include platform independence, object-oriented programming, automatic memory management, robustness, and security.

Ví dụ: Java có khả năng chạy trên nhiều nền tảng khác nhau mà không cần thay đổi mã nguồn.

3. What is JVM?

JVM là viết tắt của Java Virtual Machine. Đây là một máy ảo (trừu tượng) cung cấp môi trường thực thi cho các chương trình Java. JVM diễn giải bytecode Java và dịch nó thành mã máy cụ thể.

JVM stands for Java Virtual Machine. It is an abstract machine that provides the runtime environment in which Java programs are executed. The JVM interprets Java bytecode and translates it into machine-specific code.

Ví dụ: JVM cho phép chương trình Java chạy trên các hệ điều hành khác nhau như Windows, MacOS và Linux.

4. What is the difference between JDK, JRE, and JVM?

JDK là viết tắt của Java Development Kit. Đây là bộ công cụ phát triển phần mềm bao gồm các công cụ để phát triển, biên dịch và gỡ lỗi các chương trình Java. JRE là viết tắt của Java Runtime Environment. Đây là môi trường phần mềm cung cấp các thư viện và thành phần cần thiết để chạy các chương trình Java. JVM là máy ảo thực thi  Java bytecode.

JDK stands for Java Development Kit. It is a software development kit that includes tools for developing, compiling, and debugging Java programs. JRE stands for Java Runtime Environment. It is a software environment that provides the necessary runtime libraries and components for running Java programs. JVM is the virtual machine that executes the Java bytecode.

Ví dụ: JDK bao gồm JRE và các công cụ phát triển như trình biên dịch javac.

5. What is the difference between a class and an object?

Lớp là một bản thiết kế hoặc mẫu để tạo ra các đối tượng, trong khi đối tượng là một thể hiện của lớp. Nói cách khác, lớp định nghĩa các thuộc tính và hành vi của đối tượng, trong khi đối tượng là một thể hiện của những thuộc tính và hành vi đó.

A class is a blueprint or template for creating objects, while an object is an instance of a class. In other words, a class defines the properties and behaviors of an object, while an object is an instance of those properties and behaviors.

Ví dụ: 

class Car {
    String color;
    int speed;
    
    void run() {
        System.out.println("Car is running");
    }
}
public class Main {
    public static void main(String[] args) {
        Car myCar = new Car();
        myCar.color = "Red";
        myCar.speed = 100;
        myCar.run();
    }
}

6. What is object-oriented programming?

Lập trình hướng đối tượng (OOP) là một mô hình lập trình dựa trên khái niệm về đối tượng. Trong OOP, các chương trình được tổ chức xung quanh các đối tượng, có thuộc tính (attributes) và hành vi (methods). OOP nhấn mạnh sự đóng gói (encapsulation), kế thừa (inheritance), đa hình (polymorphism) và trừu tượng hóa (abstraction).

Object-oriented programming (OOP) is a programming paradigm that is based on the concept of objects. In OOP, programs are organized around objects, which have properties (attributes) and behaviors (methods). OOP emphasizes encapsulation, inheritance, polymorphism, and abstraction.

Ví dụ: Một đối tượng Car có các thuộc tính như màu sắc và tốc độ, và các hành vi như chạy và dừng lại.

7. What are the four principles of OOP?

Bốn nguyên tắc của OOP là đóng gói, kế thừa, đa hình và trừu tượng hóa.

The four principles of OOP are encapsulation, inheritance, polymorphism, and abstraction.

Ví dụ: 

// Encapsulation
class Car {
    private String color;
    private int speed;
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    public int getSpeed() {
        return speed;
    }
    public void setSpeed(int speed) {
        this.speed = speed;
    }
}
// Inheritance
class ElectricCar extends Car {
    private int batteryLevel;

    public int getBatteryLevel() {
        return batteryLevel;
    }
    public void setBatteryLevel(int batteryLevel) {
        this.batteryLevel = batteryLevel;
    }
}
// Polymorphism
public class Main {
    public static void main(String[] args) {
        Car myCar = new ElectricCar();
        myCar.setColor("Blue");
        myCar.setSpeed(120);
        System.out.println("Color: " + myCar.getColor());
        System.out.println("Speed: " + myCar.getSpeed());
    }
}
// Abstraction
abstract class Animal {
    abstract void makeSound();
}
class Dog extends Animal {
    void makeSound() {
        System.out.println("Woof");
    }
}

8. What is inheritance?

Kế thừa là một cơ chế trong đó một lớp thừa hưởng các thuộc tính và phương thức từ một lớp khác. Lớp thừa hưởng được gọi là lớp con hoặc lớp dẫn xuất, và lớp bị thừa hưởng được gọi là lớp cha hoặc lớp cơ sở.

Inheritance is a mechanism in which one class inherits properties and methods from another class. The class that inherits is called the subclass or derived class, and the class that is inherited from is called the superclass or base class.

Ví dụ:

class Animal {
    void eat() {
        System.out.println("This animal eats food");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("The dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.eat(); // Inherited method
        myDog.bark();
    }
}

9. What is encapsulation?

Đóng gói là một cơ chế trong đó dữ liệu và phương thức được kết hợp thành một đơn vị duy nhất gọi là lớp. Đóng gói cung cấp sự ẩn giấu dữ liệu, nghĩa là chi tiết triển khai bên trong của lớp bị ẩn khỏi thế giới bên ngoài.

Encapsulation is a mechanism in which data and methods are combined into a single unit called a class. Encapsulation provides data hiding, which means that the internal implementation details of a class are hidden from the outside world.

Ví dụ: 

class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

10. What is polymorphism?

Đa hình là một cơ chế trong đó một phương thức duy nhất có thể có các hình thức hoặc triển khai khác nhau. Đa hình có thể đạt được thông qua quá tải phương thức hoặc ghi đè phương thức.

Polymorphism is a mechanism in which a single method can have different forms or implementations. Polymorphism can be achieved through method overloading or method overriding.

Ví dụ: 

class Animal {
    void makeSound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    void makeSound() {
        System.out.println("Woof");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Dog();
        myAnimal.makeSound(); // Output: Woof
    }
}

11. What is abstraction?

Trừu tượng hóa là một cơ chế trong đó các hệ thống phức tạp có thể được đơn giản hóa bằng cách ẩn đi các chi tiết không cần thiết. Trong Java, trừu tượng hóa có thể đạt được thông qua các lớp trừu tượng và giao diện.

Abstraction is a mechanism in which complex systems can be simplified by hiding unnecessary details. In Java, abstraction can be achieved through abstract classes and interfaces.

Ví dụ: 

abstract class Animal {
    abstract void makeSound();
}

class Cat extends Animal {
    void makeSound() {
        System.out.println("Meow");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myCat = new Cat();
        myCat.makeSound(); // Output: Meow
    }
}

12. What are access modifiers?

Các bộ điều chỉnh truy cập là các từ khóa được sử dụng để xác định khả năng truy cập của một lớp, phương thức hoặc biến. Có bốn loại bộ điều chỉnh truy cập trong Java: public, private, protected và mặc định.

Access modifiers are keywords that are used to specify the accessibility of a class, method, or variable. There are four types of access modifiers in Java: public, private, protected, and default.

Ví dụ: 

class Example {
    public int publicVar;
    private int privateVar;
    protected int protectedVar;
    int defaultVar; // Default access
}

13. What are static variables and methods?

Biến tĩnh và phương thức tĩnh thuộc về lớp thay vì một thể hiện của lớp. Điều này có nghĩa là chúng có thể được truy cập mà không cần tạo một đối tượng của lớp.

Static variables and methods belong to the class rather than to an instance of the class. This means that they can be accessed without creating an object of the class.

Ví dụ: 

class Example {
    static int staticVar = 10;

    static void staticMethod() {
        System.out.println("This is a static method");
    }
}

public class Main {
    public static void main(String[] args) {
        System.out.println(Example.staticVar);
        Example.staticMethod();
    }
}

14. What are the final variables and methods?

Biến và phương thức cuối cùng (final) không thể bị sửa đổi hoặc ghi đè sau khi được định nghĩa. Biến cuối cùng là hằng số, trong khi phương thức cuối cùng không thể bị ghi đè bởi các lớp con.

Final variables and methods cannot be modified or overridden once they are defined. Final variables are constants, while final methods cannot be overridden by subclasses.

Ví dụ: 

class Example {
    final int finalVar = 10;

    final void finalMethod() {
        System.out.println("This is a final method");
    }
}

class SubExample extends Example {
    // Cannot override finalMethod
}

15. What is a constructor?

Constructor là một phương thức đặc biệt được sử dụng để khởi tạo các đối tượng. Nó có cùng tên với lớp và không có kiểu trả về.

A constructor is a special method that is used to initialize objects. It has the same name as the class and does not have a return type.

Ví dụ: 

class Car {
    String color;
    int speed;

    Car(String color, int speed) {
        this.color = color;
        this.speed = speed;
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car("Red", 100);
        System.out.println("Color: " + myCar.color);
        System.out.println("Speed: " + myCar.speed);
    }
}

Comments are closed.