Java面试八股文:基础篇01
1、Java语言有哪些特点
- 简单易学、有丰富的类库
- 面相对象(Java最重要的特性,让程序耦合度更低,内聚性更高)
- 与平台无关性(JVM是Java跨平台使用的根本)
- 可靠安全
- 支持多线程
2、面向对象和面向过程的区别
面向过程: 是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用即可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发。
面向对象: 是把构成问题的事务分解成各个对象,而建立对象的目的不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。可以设置出低耦合的系统。
3、八种基本数据类型
基本类型 | 内存 | 默认值 |
---|---|---|
byte | 8位 | 0 |
short | 16位 | 0 |
int | 32位 | 0 |
long | 64位 | 0L |
float | 32位 | 0.0f |
double | 64位 | 0.0d |
char | 16位 | \u0000 |
boolean | 8位 | false |
4、重载和重新的区别
重写(Overide)
在子类中把父类本身有的方法重写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名、参数列表、返回类型(子类中方法的返回值类型可以是父类中方法返回值类型的子类)都相同得分情况下,对方法体进行修改或重写,这就是重写。需要注意子类方法的权限不能少于父类。
重写总结:
- 发生在父类与子类之间。
- 方法名、参数列表、返回类型必须相同(子类中方法的返回值类型可以是父类中方法返回值类型的子类)。
- 访问权限修饰符一定要大于被重写的方法的访问权限修饰符。
- 重写方法一定不能抛出新的检查异常或者比被重写方法声明更加广泛的检查异常。
重载(Overload)
在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。重载对返回值类型没有要求,可以相同也可以不同。
5、equals与==的区别
==:
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
equals:
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的 equals方法是用==实现的,因此我们通常都会重写equals方法。