秋招知识点总结——基础部分01

前言

经过一个月的努力可算是找到了一份比较满意的工作,在这里跟大家分享一下我对知识点的总结:
关于报班:
之前有朋友问过我跨专业学编程,要不要报班;现在培训班市场鱼龙混杂,真重视教学的反而搞不过人家重视营销的,这种例子知乎上见多了。

我觉得这东西纯靠个人的自制力,不管你报班还是自学,最重要的一点就是你要去学,学习没有捷径,报班无非就是你交了钱,心疼钱从而认真对待学习这件事,同样的自制力好也可以做到这一点,现在网络资源丰富,我们所有想要学习的知识在网上都能找到,而且CSDN里面一群大佬也很乐于去传道授业解惑。

关于做题
做题是很有必要的,能进一步的帮助你去查漏补缺,但是我反对背题,因为这毫无意义,一般公司都不会去出原题的,即使你碰巧遇见原题了,在后续的阶段也极其容易露馅;融会贯通最为重要,要去学习思路,学习一类题的做题方法。

正文

1.面向对象的三大特点

答:封装,继承,多态

封装: 封装是指将对象的内部实现过程隐藏起来,对外只显示该对象的功能。

我们可以把封装理解为我们用一个盒子把对象装起来,保护对象的内部实现过程,防止被破坏,只留下必要的输入输出口以方便使用。

举个例子: 我们常用的电视就是封装的,我们只能去正常的使用电视,但是因为有电视外壳的保护,我们没办法去接触的内部的电路,这样就保证了内部电路的安全性;

同时对于使用者而言,他只想需要学会基础的操作就行了,不需要了解操作背后的具体过程;

当电视机坏了,只有维修人员才能拆开电视,维修里面得东西。就像我们的程序有需求能重写方法,但是正常使用时是不涉及这部分操作的。

继承: 继承是面向对象编程里相当重要的一种手段,当子类继承父类之后,子类也就拥有了父类的属性,我们可以把这个子类看成一个特殊的父类。

继承很好理解,就像我们常说的继承者一样,我们从父辈手中接过了建设祖国的使命,同时因为我们是新时代的青年,因此我们对建设祖国的使命在父辈的基础上又可以增添新的东西,而对于我们的后辈而言,我们又是他们的父辈。

优点缺点
简化了创建过程,减少了工作量继承破坏了封装,以为子类完全获得了父类的内部
提高了代码的复用性耦合性强,若父类发生变化,子类必须跟着变
提高了程序的可扩展性有约束性,子类必须有父类的属性和方法

多态: 父类型的引用指向子类型的对象。同一操作作用于不同的对象,可以产生不同的效果。

多态的条件:继承、重写、向上转型

本质上来说就是子类继承父类之后,对父类的方法进行了重写,等到调取该方法后实际调用的是子类重写的方法。

举个例子: 桌子上有四个杯子,里面分别装的 糖水、盐水、和苏打水;
我们无法通过单纯的观察区分那个是那个,我们只能通过品尝这个方法,看他们的实现效果来区分;
品尝这个方法是所有饮品都有的方法,可以理解为他们父类的方法,品尝不同的饮品会有不同的效果反馈,因而品尝操作就是多态的表现。

2.类和对象

类: 类是一个抽象的概念,表示具有共性的一类事物,他是创建对象的模板。

对象: 对象是具体的东西,秉承着万物皆对象的思想,所有客观存在的事物都是对象,对象是类的具象化。

类和对象的区别: 类是对象的模板,对象是类的实例。类只有通过对象才可以具象成实物,在开发中我们只有先有了类这个模板,才能创建对应的对象。类不能直接使用,对象是可以直接使用的。

举例说明: “人” 这个笼统的概念就是一个类,具体的人 比如 “张三”、“李四”、“王二狗” 就是“人”这个类的对象。其中 个人的外貌,性格 就是这个对象的属性,人的动作 例如 吃饭 、睡觉、打豆豆 就是这个对象的方法。

3.面向对象和面向过程

面向过程

面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。

面向过程的最小单元是函数,通过一个个函数进行功能的实现。

优点:

流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清楚,便于节点分析。

效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。

缺点:

需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。

图片源自https://www.cnblogs.com/wmyskxz/p/9016611.html
面向对象

是一种基于面向过程的新的编程思想,是一种站在对象的角度思考问题的思想,我们把多个功能合理的放到不同对象里,强调的是具备某些功能的对象。

面向对象的最小单元是对象,我们只需要考虑这个对象会有什么功能,并在其中编写即可,这样更符合我们的思维逻辑。
在这里插入图片描述
优点:

稳定性好,可重用性强,易于开发大型软件产品,有良好的可维护性。在软件工程上,面向对象可以使工程更加模块化,实现更低的耦合和更高的内聚。

缺点:

开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。

性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。

注意: 不要粗浅的认为面向对象一定就优于面向过程的设计。

4.JDK、JRE、JVM 的区别

JDK 是 Java 开发工具包,是 Java 开发环境的核心组件,并提供编译、调试和运行一个 Java 程序所需要的所有工具,可执行文件和二进制文件,是一个平台特定的软件。

JRE 是 Java 运行时环境,是 JVM 的实施实现,提供了运行 Java 程序的平台。

JVM 是 Java 虚拟机,当我们运行一个程序时,JVM 负责将字节码转换为特定机器代码,JVM 提供了内存管理 / 垃圾回收和安全机制等。

这种独立于硬件和操作系统,正是 Java 程序可以一次编写多处执行的原因。

区别:

1. JDK 用于开发,JRE 用于运行 Java 程序;
2. JDK 和 JRE 中都包含 JVM;
3. JVM 是 Java 编程语言的核心并且具有平台独立性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值