前言
今天是从基础开始备战春招第一天,要从基础开始背了,毕竟很多基础也都忘记了,牢记初心,不忘使命。 主要追求用一个通俗易懂的方式记住题目。
开始
关于面向对象。
首先面向对象要和面向过程进行对比记忆。这是两种处理问题的角度。 面向对象更加注重每一个步骤和过程,面向对象更加注重事情有哪些参与者,以及各自需要去做什么。
比如洗衣服: 面向过程:第一步是打开洗衣机,第二步是干什么,第三步是干什么 面向对象:洗衣服这件事情,有人,洗衣机两个对象。 人:做什么 洗衣机:做什么。
对比记忆:面向过程更加高效率(别记错了,对,就是面向过程更加高效,因为它遇见事情直接去做就好了,没必要拆分对象,然后对象再去做什么。) 但是面向对象是更加可复用,易扩展的,便于后期维护。
其次,谈到面向对象,三大特性必不可少。
封装,继承,多态。
封装:在于明确标识 哪些可以被外部使用。 例如JavaBean,所有的属性都是私有化的,get,set方法对外进行调用。 orm框架:操作数据库的,我们不关心SQL,不关心内部细节,只需要引入mybatis。
继承:继承基类的方法,并且做出自己的改变。 父类有的东西,子类直接继承,父类没有,子类自己扩展即可。
多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。 继承,方法重写,父类的引用指向子类的对象。 没办法调用子类特有的功能。
JDK JRE JVM
JDK:Java开发工具 JRE:Java运行环境 JVM:虚拟机
描述:JDK最大,里面是JRE,和Java工具。 JRE里面是bin(jvm),和lib(类库)。
图片看一下:
==和equals的比较
基本数据类型:==和equals都是比较数。 引用数据类型: = =是比较地址,equals是比较数据。
object中 equal 就是==。
hashcode和equals
hashcode:哈希码,散列码,返回int值,确定该对象在hash表中的索引。
为什么要有这个呢?
举例:HashSet如何检查重复。在插入对象之前,先根据hashcode判断是否有重复值,如果二者连hashcode都不同,肯定对象也就是不相同的,如果碰巧hashcode值相同,再去equals检查对象是否相同,这样就减少了对比次数。
总结:
final
最终的
- 修饰类:类不可继承
- 修饰方法:方法不能被子类覆盖,但是可以重载。
- 修饰变量:相当于常量,赋值之后不可改变,但是没说一定要声明的时候就赋值,可以后面赋值也行。
修饰成员变量:
- 修饰类变量:静态初始化中指定初始值或者声明改变粮食指定初始值。
- 成员变量,可以在非静态初始化块,声明改变量或者构造器中执行初始值。
修饰局部变量: 局部变量由程序员显示初始化。一次赋值。
举例: 修饰基本数据类型和引用数据类型:
- 基本数据类型:声明之后不能改
- 引用数据类型:初始化之后不能指向其他对象,但是引用值可变。
举例: 为什么局部内部类和匿名内部类只能访问局部final变量? 答:内部类和外部类 是同一个级别的。 而当外部类方法结束,局部变量会销毁,但是对象可能还存在,此时会互相矛盾。局部变量final之后,保持了一致性。
String StringBuffer Stringbuilder
String:不可变,final修饰,每次操作产生新的对象。 StringBuffer:可变,线程安全。(洗脑:buffer==buff,红蓝buff拿着肯定更加有安全感啊!),synchronized修饰。 StringBuilder:可变,不安全。 性能:StringBuilder > StringBuffer > String 场景:经常变化的字符串用后面两个,有限StringBuilder,因为效率高,多线程时用StringBuffer。
重载和重写
overload和override的区别,其实一点关系都没有。 直接总结:
抽象类和接口
- 抽象类中科院存在普通成员函数,接口中只有public abstract。
- 抽象类中的成员变量科院是各种类型的,接口中只有public staticfinal
- 抽象类只有一个,接口有多个。
接口的设计目的:对类的行为进行约束,约束行为的有无,而不是约束行为的具体内容。 抽象类的设计目的:代码复用,多个类,有一个部分的相同的行为时,可以把其抽象出来,变成抽象类,达到代码复用的目的。
抽象类:is a的关系 接口:like a的关系
抽象类的功能远超过接口,但是抽象类的代价高。所有设计阶段 接口会降低难度。
List 和Set
List:有序,可重复,允许多个null,可以用iterator,还可以get(i)按下标取出。 Set:无序,不可重复,最多一个null,只能用iterator取出元素,再逐一遍历。
OKKKKKKKKKKKKKKKK,今天时间短,暂时到这里为止。
准备下班~
|