【Java八股-第八期】面向对象OO - Java基础

提纲:

🔥基础八股知识

  • 面向对象 & 面向过程

  • 封装

  • 继承

  • 多态

  • 强制类型转换 & 泛型

  • 抽象类 & 接口

🎈面试八股真题

  • 1、面向对象和面向过程的区别

  • 2、泛型常用特点

  • 3、Java 创建对象有几种方式

  • 4、获取一个类Class对象的方式有哪些
  • 5、抽象类和接口的区别

一、基础八股知识点

1. 面向对象 & 面向过程

  • 面向过程:面向过程的编程思想中,过程/方法是程序的核心和主体,例如把大象放进冰箱里,程序的主体就是 打开冰箱/放进大象/关上冰箱 三个方法,大象、冰箱都是方法种的一个参数

  • 面向对象:面向对象的编程思想中,对象是程序的核心和主体,把大象放进冰箱,我们需要冰箱类,冰箱类的属性可以有品牌、容量等,并且需要实例化一个冰箱,同时需要大象类,大象的属性可以有性别、年龄、体重等,在执行程序时,我们通过调用冰箱的 打开冰箱门/放入物品/关上冰箱门 来执行程序,也就是说程序执行过程中的所有数据和方法,都是对象的属性和动作

  • 个人理解:面向过程适合抽象的数值计算,与具体的事物无关;面向对象适合涉及到具体事物的程序,将事物的属性与动作封装为类,再通过为属性赋值获取具体的实例对象,从而提高代码的复用、扩展,也能更好的体现对象间的关系

2.封装

  • 将对象的属性与对这些属性的操作进行隐藏,对外仅提供一些基本的方法,以此对对象的属性进行精确的控制,防止外部随意修改,并且通过封装方法,提高代码的复用性,降低耦合

3.继承

  • 子类通过继承父类,可以获得父类所有成员,子类通过对父类成员的继承或是重写,来提高代码的复用,通过抽取相似类的共同属性与方法,成为一个共同的父类,从而提高代码的复用

4.多态

  • 多态的前提是子类继承父类,使用父类的引用指向子类的实例时就是多态,在编译时,调用父类引用的方法的指令是 invokevirtual,表示虚方法的调用,在运行时会根据实例对象的 vtable 虚方法表,查找到真正执行的方法的具体地址进行调用,vtable 在类加载的链接阶段就根据方法的重写规则生成好了

5.强制类型转换 & 泛型

  • 强制转型:Object a = new Integer(10); Integer b = (Integer) a; 即子类引用指向父类引用时,就需要进行强制转型

  • 泛型

    • 相对于强制转型,使用泛型更加优雅,并且假设 Object a = new Object(); Integer b = (Integer) a; 则会抛出运行时异常 ClassCast,而使用泛型,会在编译期进行检测

  • 泛型擦除

    • Java 的泛型是伪泛型,在编译时,会进行泛型擦除,默认会将对象的类型变为 Object来处理,在执行例如 int a = list.get(i) 时,会由编译器自行完成强制类型转换

6.抽象类 & 接口

  • 抽象类用来定义有共同属性和行为的类的模板,侧重于抽象类的类型,表示类的特征;接口用来定义要具备某个功能所需要实现的方法,侧重于抽象类的功能,表示类能做什么

二、面试八股真题🎈🎈🎈

1、面向对象和面向过程的区别

  • 面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发

  • 是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。可以设计出低

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

代码鹿のJAVA八股面试题总结 文章被收录于专栏

【📫专栏目录在最底部📫】 - 本专栏适合于JAVA已经入门的学生或人士,有一定的编程基础。 - 本专栏特点: 本专刊囊括了JAVA、Spring、计算机网路、操作系统、计算机网络、MySQL、算法与数据结构、中间件等一系列知识点,总结出了高频面试考点(附有答案),事半功倍,为大家春秋招助力。 - 本专栏内容分为五章

全部评论

相关推荐

这都要4499吗,现在华为od门槛这么高了吗?
阿司匹林b:去od还交钱,也是神人了
点赞 评论 收藏
分享
01-17 08:34
门头沟学院 Java
点赞 评论 收藏
分享
King987:这不就是力扣的算法题吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务