Java是一种广泛应用的编程语言,因此在面试中会经常涉及Java的相关基础知识。下面将介绍几个与Java基础相关的面试题。

1. 什么是Java虚拟机(JVM)?

Java虚拟机(Java Virtual Machine,JVM)是Java的核心,是运行Java字节码的虚拟机。它提供了内存管理、垃圾回收和线程管理等功能,使得Java程序具有跨平台的特性。JVM负责将Java字节码解释或者即时编译为特定平台的机器码,从而实现Java程序的运行。

public class JVMExample {
    public static void main(String[] args) {
        System.out.println("Hello, JVM!");
    }
}

在上述示例代码中,JVM会解释或编译main方法中的字节码,并执行打印语句,输出"Hello, JVM!"。

2. 什么是Java的数据类型?

Java的数据类型分为两大类:基本类型和引用类型。Java的基本类型包括boolean、byte、short、int、long、float、double和char,它们存储的是值本身。引用类型包括类、接口、数组等,它们存储的是对象的引用。

// 基本类型
int num = 10;

// 引用类型
String str = "Hello, Java!";

在上述示例代码中,num是一个基本类型的变量,存储的是整数值10;str是一个引用类型的变量,存储的是字符串对象的引用。

3. 什么是Java的面向对象特性?

Java是一种面向对象的编程语言,具有封装、继承和多态等特性。封装(Encapsulation)指的是将数据和对数据的操作封装在一起,形成一个类。继承(Inheritance)指的是基于已有类创建新类的机制,新类继承了已有类的属性和方法。多态(Polymorphism)指的是同一个操作作用于不同的对象上,可以有不同的解释和不同的执行结果。

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

public class Dog extends Animal {
    public void sound() {
        System.out.println("Dog barks.");
    }
}

public class Cat extends Animal {
    public void sound() {
        System.out.println("Cat meows.");
    }
}

public class PolymorphismExample {
    public static void main(String[] args) {
        Animal animal1 = new Dog();
        Animal animal2 = new Cat();
        
        animal1.sound(); // 输出 "Dog barks."
        animal2.sound(); // 输出 "Cat meows."
    }
}

在上述示例代码中,Animal、Dog和Cat是面向对象的类,animal1和animal2是Animal类型的引用。animal1指向Dog对象,animal2指向Cat对象。调用animal1和animal2的sound方法时,虽然编译时类型均为Animal,但实际上执行的是Dog和Cat类中重写的sound方法,产生了多态的效果。