基础面试题
1.Java三大特性
封装
- 数据隐藏:类的数据只能通过类提供的接口进行访问,对外部不可见。
- 接口访问:类的接口是公开的,可以被其他类访问和调用。
- 安全性:封装可以提高代码的安全性,防止外部的错误操作对类的数据产生影响。
- 可维护性:封装可以隐藏内部的实现细节,使得类的实现可以更加灵活和易于维护。
继承
- 代码重用:子类可以继承父类的属性和方法,避免了代码的重复编写。
- 功能扩展:子类可以扩展父类的功能,使得代码更加灵活和可扩展。
- 继承层次:多层继承可以形成继承层次结构,使得代码的组织和管理更加清晰。
多态
- 方法重载:同一个方法名可以定义多个不同的参数列表,产生方法重载。
- 方法重写:子类可以重写父类的方法,产生方法重写。
- 向上转型:子类对象可以向上转型为父类对象,使得同一个方法可以被不同的对象调用。
- 运行时绑定:方法调用的具体实现是在运行时动态绑定的,而不是在编译时静态绑定的。
2.面向对象与面向过程的区别
面向过程
分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发
面向对象
把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。可以设计出低耦合的系统。 但是性能上来说,比面向过程要低。
3.八种基本数据类型的大小,以及他们的封装类
4.Java自动装箱与拆箱
装箱
自动将基本数据类型转换为包装器类型(int-->Integer);调用方法:Integer的
valueOf(int) 方法
拆箱
自动将包装器类型转换为基本数据类型(Integer-->int)。调用方法:Integer的
intValue方法
5.String的方法有哪些
- indexOf
- charAt
- replace
- trim
- split
- getBytes
- length
- toLowerCase
- toUpperCase
- substring
- equals
6.Object的方法有哪些
- clone
- getClass
- toString
- finalize
- equals
- hashCode
- wait
- notify
- notifyAll
7.重载和重写的区别
定义不同---重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。
范围不同---重载是在一个类中,重写是子类与父类之间的。
多态不同---重载是编译时的多态性,重写是运行时的多态性。
返回不同---重载对返回类型没有要求,而重写要求返回类型,有兼容的返回类型。
参数不同---重载的参数个数、参数类型、参数顺序可以不同,而重写父子方法参数必须相同。
修饰不同---重载对访问修饰没有特殊要求,重写访问修饰符的限制一定要大于被重写方法的访问修饰符。
8.equals与==的区别
== :
==
比较的是变量
(
栈
)
内存中存放的对象的
(
堆
)
内存地址,用来判断两个对象的地址是否相同,即是
否是指相同一个对象。比较的是真正意义上的指针操作。
equals:
equals
用来比较的是两个对象的内容是否相等,由于所有的类都是继承自
java.lang.Object
类的,所
以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是
Object
类中的方法,而
Object
中的
equals
方法返回的却是
==
的判断。