JAVA技术方向面试题-OOP(上)

一、说说你对面向对象思想的理解?

对象是一种奇特的变量,它除了可以存储数据之外还可以对它自身进行操作。它能够直接反映现实生活中的事物,例如人、车、小鸟等,将其表示为程序中的对象。每个对象都具有各自的状态特征(也可以称为属性)及行为特征(方法),java就是通过对象之间行为的交互来解决问题的。

面向对象就是把构成问题的事物分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述某个事物在解决问题中的行为。

类是面向对象中的一个很重要的概念,因为类是很多个具有相同属性和行为特征的对象所抽象出来的,对象是类的一个实例。

类具有三个特性:封装、继承和多态。

封装:核心思想就是“隐藏细节”、“数据安全”,将对象不需要让外界访问的成员变量和方法私有化,只提供符合开发者意愿的公有方法来访问这些数据和逻辑,保证了数据的安全和程序的稳定。

继承:子类可以继承父类的属性和方法,并对其进行拓展。

多态:同一种类型的对象执行同一个方法时可以表现出不同的行为特征。通过继承的上下转型、接口的回调以及方法的重写和重载可以实现多态。

二、Java 对象初始化顺序

类变量(静态变量)、实例变量(非静态变量)、静态代码块、非静态代码块的初始化时机

由 static 关键字修饰的(如:类变量[静态变量]、静态代码块)将在类被初始化创建实例对象之前被初始化,而且是按顺序从上到下依次被执行;

没有 static 关键字修饰的(如:实例变量[非静态变量]、非静态代码块)初始化实际上是会被提取到类的构造器中被执行的,但是会比类构造器中的代码块优先执行到,其也是按顺序从上到下依次被执行。

三、Overload 和 Override 的区别?Overload 的方法是否可以改变 返回值的类型?

Overload:重载

Override:重写

重载:

同一个类中,方法名相同,参数列表不同。与返回值类型无关。

重写:

存在于子父类,或者子父接口中,方法声明相同。

Overload的方法可以改变返回值的类型,因为它与返回值类型无关。

四、int 和 Integer 有什么区别?

int属于基本数据类型,Integer属于引用数据类型,int的初始值是0,Integer的初始值是null,Integer是int的包装类,属于面向对象思维编程,创建Integer需要使用new的方式为其进行内存分配。

五、char 型变量中能不能存贮一个中文汉字,为什么?

char 型变量是用来存储 Unicode 编码的字符的,Unicode 编码字符集中包含了汉字,所以,char 型变量中可以存储汉字。不过,如果某个特殊的汉字没有被包含在 Unicode 编码字符集中,那么,这个 char 型变量中就不能存储这个特殊汉字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值