Java基础面试题-2day

发布时间:2024年01月19日

面向对象

  1. 创建一个对象用什么运算符,对象实体和对象引用有什么不同?

创建对象使用new
String A = new String();
A即为对象引用,通过new运算符,创建String()类型的对象实体。
对象引用的存储位置在栈内存
对象实体的存储位置在堆内存

  1. 对象相等和引用相等的区别

对象相等指的是对象所保存的内容是否行相同
引用相等指的是对象的地址是否相同

  1. 如果一个类没有声明构造方法,该程序能正常运行吗

可以,每一个类都有一个默认存在的无参构造方法,当我们没有进行构造方法的重载,创建新对象时,初始化使用的就是无参构造方法;如果我们在类中添加了有参数的构造方法,就要把无参构造方法显示的写出来,可以为我们创建对象时减去一些没有必要的错误。

  1. 构造方法的特点

构造方法名和类名一致
构造方法没有返回值,且不能使用void
构造方法不需要调用,当我们进行对象的创建的时候自动调用
构造方法不能被重写,但是能重载

  1. 面向对象三大特征

封装,继承,多态
封装:将方法内的属性进行私有化,通过方法向外界提供修改获得
继承:子类继承父类,可以拥有父类的所有属性和方法,包括私有属性和方法,注意这里只是拥有,子类是不能访问父类的私有的属性和方法的,只是拥有!
多态:父类的引用指向子类的实例,
对象类型和引用类型之间有继承和实现的关系,也就是引用类型可以是接口,也可以是父类,对象类型是实现了接口的类,或者是继承了父类的子类。

  1. 接口和抽象类有什么共同点和区别

接口和抽象类都不能被实例化,都可以包含抽象方法,都可以有默认实现的方法
接口中的成员变量默认都是public static final修饰,而且必须赋值且不能被修改
抽象类中的成员变量默认default,可以在子类被重新定义,也可以被重新赋值

  1. 浅拷贝和深拷贝?

参考文章:https://www.cnblogs.com/ysocean/p/8482979.html
总结:浅拷贝指的是实现Java的Cloneable接口,对clone方法进行重写之后,克隆出一个和原对象一样的对象,原理是复制引用,原对象和克隆对象的地址相同
而深拷贝是将整个对象地址所指的堆中数据整份复制出来新的一份,克隆出来的对象地址是不相同的
在这里插入图片描述
在这里插入图片描述


根据Javaguide总结!
javaguide

文章来源:https://blog.csdn.net/m0_59751050/article/details/135707117
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。