Java面试重点:面向对象特性与String的区别

需积分: 12 6 下载量 83 浏览量 更新于2024-12-23 收藏 251KB PDF 举报
"这是一份关于Java面试题的PDF集合,涵盖了面向对象的特征、字符串基础知识以及原始类型与封装类的区别等核心Java知识点。" 在Java编程语言中,面向对象编程是其核心特性,主要包括四个主要特征:抽象、继承、封装和多态性。 1. 抽象:抽象是将复杂的现实问题简化为更易于理解的形式,它允许我们关注问题的关键部分,忽略不必要的细节。在Java中,抽象主要体现在抽象类和接口中,它们定义了一组公共行为,但不提供具体的实现。例如,我们可以创建一个名为`Shape`的抽象类,表示所有形状的共同属性和行为,然后创建如`Circle`和`Square`这样的具体形状类来实现`Shape`的抽象方法。 2. 继承:继承是面向对象的另一个关键特性,它允许我们创建一个新的类(子类)来扩展已有类(父类)的功能。这样,子类不仅可以拥有父类的所有属性和方法,还可以添加自己的特有成员。继承提高了代码的复用性,使得类的层次结构更加清晰。在Java中,使用`extends`关键字实现类的继承。 3. 封装:封装是隐藏对象的内部实现细节,只对外暴露有限的接口供其他对象交互。在Java中,我们通常使用访问修饰符(如`private`、`public`、`protected`)来控制成员的访问权限。封装保证了数据的安全性,防止外部代码直接修改对象的状态,而是通过定义的公共方法来操作。 4. 多态性:多态性意味着不同的对象可以对同一消息做出不同的响应。在Java中,多态性分为编译时多态(方法重载)和运行时多态(方法重写)。运行时多态是通过接口或继承实现的,同一方法调用在不同对象上会产生不同的结果,提高了代码的灵活性和扩展性。 此外,题目还涉及到Java的基本数据类型与封装类的区别: - 基本数据类型(如`int`)是Java语言预定义的,它们直接存储值并占用固定大小的内存。`int`是一个原始类型,代表整数值。 - `Integer`是`int`的封装类,属于引用类型。引用类型是对象的引用,它们在内存中占据较大的空间,且可以为`null`。`Integer`提供了额外的方法,如自动装箱和拆箱,以及一些便利的操作。 在面试中,面试者可能会被问到在处理大量字符串操作时,为何推荐使用`StringBuffer`而非`String`。这是因为`String`是不可变的,每次修改都会创建新的`String`对象,消耗更多的内存。而`StringBuffer`是可变的,它允许在原对象基础上进行修改,减少了内存开销,因此在性能敏感的场景下,`StringBuffer`是更好的选择。 这份PDF集合涵盖了Java编程中的基础和核心概念,对于准备Java面试的人来说是非常有价值的参考资料。