interface和Abstract的区别?
interface是接口,使用implement实现,接口是对行为的抽象。
Abstract是抽象,使用extend继承,抽象是对类的抽象。
接口方法不能有实现(Java8开始可以有默认实现)
抽象类的方法则可以有实现
一个类可以实现多个接口,但只能实现一个类。
成员变量和局部变量的区别?
成员变量是属于类的,局部变量是在⽅法中定义的,
成员变量是对象的⼀部分,随着对象的创建⽽存在,局部变量则在⽅法调⽤后会⾃动消失。
成员变量会⾃动赋默认值(被 final 修饰除外),⽽局部变量则不会⾃动赋值。
成员变量:如果⽤ static 修饰,那么它属于类的,如果没⽤ static 修饰,则是属于实例的。
局部变量:基本数据类型存在栈中,引⽤数据类型,存放的是指向堆内存对象的引⽤ 或者指向常量池中的地址。
== 与 equals的区别?
== : 判断两个对象的地址是否相等。
基本数据类型:⽐较值是否相等
引⽤数据类型:⽐较内存地址。
equals() : 分两种情况:
1.没有重写,比较对象的地址
2.已重写(一般都是已重写,如String中的equals()方法),比较对象的内容是否相等