面向对象
- 创建一个对象用什么运算符,对象实体和对象引用有什么不同?
创建对象使用new
String A = new String();
A即为对象引用,通过new运算符,创建String()类型的对象实体。
对象引用的存储位置在栈内存
对象实体的存储位置在堆内存
- 对象相等和引用相等的区别
对象相等指的是对象所保存的内容是否行相同
引用相等指的是对象的地址是否相同
- 如果一个类没有声明构造方法,该程序能正常运行吗
可以,每一个类都有一个默认存在的无参构造方法,当我们没有进行构造方法的重载,创建新对象时,初始化使用的就是无参构造方法;如果我们在类中添加了有参数的构造方法,就要把无参构造方法显示的写出来,可以为我们创建对象时减去一些没有必要的错误。
- 构造方法的特点
构造方法名和类名一致
构造方法没有返回值,且不能使用void
构造方法不需要调用,当我们进行对象的创建的时候自动调用
构造方法不能被重写,但是能重载
- 面向对象三大特征
封装,继承,多态
封装:将方法内的属性进行私有化,通过方法向外界提供修改获得
继承:子类继承父类,可以拥有父类的所有属性和方法,包括私有属性和方法,注意这里只是拥有,子类是不能访问父类的私有的属性和方法的,只是拥有!
多态:父类的引用指向子类的实例,
对象类型和引用类型之间有继承和实现的关系,也就是引用类型可以是接口,也可以是父类,对象类型是实现了接口的类,或者是继承了父类的子类。
- 接口和抽象类有什么共同点和区别
接口和抽象类都不能被实例化,都可以包含抽象方法,都可以有默认实现的方法
接口中的成员变量默认都是public static final修饰,而且必须赋值且不能被修改
抽象类中的成员变量默认default,可以在子类被重新定义,也可以被重新赋值
- 浅拷贝和深拷贝⭐
参考文章:https://www.cnblogs.com/ysocean/p/8482979.html
总结:浅拷贝指的是实现Java的Cloneable接口,对clone方法进行重写之后,克隆出一个和原对象一样的对象,原理是复制引用,原对象和克隆对象的地址相同
而深拷贝是将整个对象地址所指的堆中数据整份复制出来新的一份,克隆出来的对象地址是不相同的
根据Javaguide总结!
javaguide