Java 基础面试题
# Java 基础面试题
# 面向对象
什么是面向对象编程(OOP)?简要说明面向对象的三大特性。
什么是类和对象?它们之间的关系是什么?
类(Class)是一种抽象数据类型,它是对具有相同属性和方法的对象的一种抽象描述。类定义了对象的属性(成员变量)和行为(方法),但它本身并不占用内存空间,只是一个模板或者蓝图。
对象(Object)是类的一个具体实例,它是内存中的一个实体,包含了类中定义的属性的具体值。对象是类的实例化结果,每个对象都有自己的状态(即成员变量的值)和行为(即方法的执行)。
类和对象之间的关系是:类是对象的模板,对象是类的实例。一个类可以产生多个对象,这些对象共享类中定义的属性和方法,但拥有各自的状态和行为。换句话说,类是一种抽象的概念,描述了一类事物的共同特征和行为,而对象是这个类的具体实例,代表了现实世界中的具体个体。
什么是继承?Java中如何实现继承?有什么限制?
继承允许一个类(称为子类或派生类)基于另一个类(称为父类或基类)来构建,子类可以继承父类的非私有属性和方法,并且可以在子类中添加新的属性和方法,继承提供了代码重用的机制,可以减少重复编写代码的工作量,提高代码的可维护性和可扩展性。Java中,实现继承通过关键字
extends。限制:单继承、私有成员不可继承、构造方法的继承和调用什么是多态?Java中如何实现多态?
多态允许将父类的引用指向其子类的对象,并在运行时确定调用哪个方法,以实现在同一个方法上调用产生不同的行为。Java中实现多台依靠继承和方法重写
什么是封装?为什么要使用封装?
封装指将数据和操作数据的方法打包在一起,形成一个独立的单元。在封装中,数据被称为类的属性或成员变量,而操作数据的方法被称为类的方法或成员函数。封装可以信息隐藏、简化复杂性、提高代码可复用性、降低耦合度
# 运算符
- 列举Java中的各种运算符及其优先级。
- 什么是位运算符?列举几种常用的位运算符并说明其作用。
- Java中的三元运算符是什么?给出一个简单的例子。
# 控制流
- 什么是条件语句?Java中有哪些条件语句?
- 什么是循环语句?Java中有哪些循环语句?
- 什么是switch语句?它与if-else语句有何区别?
- 什么是break和continue语句?它们的作用是什么?
# 初始化和清理
- 什么是构造方法?Java中的构造方法有哪些特点?
- 什么是静态初始化块和实例初始化块?它们的执行顺序是怎样的?详细描述 Java 对象的初始化顺序?
- 什么是垃圾回收器?Java中如何手动触发垃圾回收?
- this 关键字的作用?static 关键字的作用?finalize 的用途有哪些?
# 异常处理
- 什么是异常?Java中有哪些类型的异常?
- Java中如何处理异常?try-catch-finally块的执行顺序是怎样的?
- 什么是异常链?它在异常处理中的作用是什么?
# 范型
- 什么是泛型?为什么要使用泛型?
- Java中如何定义泛型类和泛型方法?
- 什么是通配符?Java中的通配符有哪些?
# 数组
- 什么是数组?如何声明和初始化一个数组?
- 如何访问数组中的元素?数组的长度如何确定?
- 什么是多维数组?Java中如何定义和使用多维数组?
# 枚举
- 什么是枚举?为什么要使用枚举?
- Java中如何定义枚举类型?给出一个简单的例子。
- 枚举类型可以实现接口吗?为什么?
# 注解
- 什么是注解?它有什么作用?
- Java中有哪些预定义的注解?它们的作用是什么?
- 如何定义自定义注解?给出一个简单的例子。