Java,Android基础,可能会面试到的小知识

1.面向对象的三大特征

 三大特征:封装,继承,多态
<1>封装,就是把客观事物封装成抽象的类,并且类中的数据可以给自己信任的类或者对象操作,对于不信任的可进行隐藏.一个类就是一个封装了数据以及操作数据的代码的逻辑实体
在一个对象内部,某些代码和某些数据是私有的,不可被外界访问的,通过这种方式,对象对内部的数据提供了不同的保护级别,防止程序中无关的部分意外的改变活错误的使用了对象的私有部分
<2>继承,就是可以让某一个类型的对象获得另一个类型的对象的属性方法.同样也支持按级别分类.继承是,它他可以使用现有类的所有功能,并且在无需重新编写越来类的情况下对这些功能进行扩展,通过继承实现的类叫做"子类"或者"派生类",被继承的类称之为"父类","基类","超类",要实现继承可以通过"Inheritance  继承","Composition   组合" 来实现,继承概念实现的方式有两种,实现继承与接口继承,实现继承,是指直接使用基类的属性,方法,而无需额外的编码能力 ; 接口继承是指,仅使用属性和方法的名称,子类需要一定的编码来实现方法的能力
<多态>就是值一个类实例的相同的方法,在不同的时间又不同的表现形式,多态机制可以使其不同内部结构的对象可以共享外部的接口.这意味着,虽然针对具体操作不同,但是通过一个公共的类,可以通过相同的方式调用

2.Activity的四种启动模式

在学习启动模式之前先了解Activity栈,栈都是先进后出的,Activity栈也是同样的,都是先进后出的机制,那当启动一个Activit,系统就会创建一个Activity实例放在Activity栈中,当销毁一个Activity的时候,系统就会从栈中消除掉响应的Activity实例,那么,每次Activity的启动都会在栈中创建一个实例,就会消耗内存,也不利于Activity的复用,所以,就有了Activity的启动模式,好,进入启动模式:

1.Satdard(标准启动模式):标准启动模式,也就是Activity的默认启动模式.用这种启动的Activity会在它想要去的Activity栈中创建一个实例,而不论这个栈中是否存在了这个实例

2.singleTop(栈顶复用模式):用该模式启动Activity,如果在想要去的Activity栈的栈顶的话,那么就不会再次创建该Activity实例,而是回调Activity中的onNewIntent方发来做处理

3.singleTask(栈内复用模式):该模式和singleTop类似,用该模式启动栈中栈顶的Activity实例的,也同样不会再次创建该Activity实例,而是回调中onNewIntent方法来做处理,但有一种不同,如果栈中已经存在该实例(不在栈顶),那么系统就会复用Activity实例,把位于该Activity实例上的其他实例全部清除掉,同时把该Activity调到栈顶

4singlelnstance(单实例模式):这种模式可以理解为加强版的singleTask,利用该模式启动的Activity实例,如果系统检测到已经存在该实例,则会重用该实例,然后回调onNewIntent方法,如果系统检测到没有该实例,则会创建一个新的Activity栈和一个实例,然后将该实例压入栈中,这个栈有一个特点,只能容纳这一个实例,不能接收其他实例也就是说该模式启动的Activity会独占一格Activity栈

3.Activity,Fragment的生命周期

Activity生命周期图:

Java,Android基础,可能会面试到的小知识
Fragment生命周期图:
Java,Android基础,可能会面试到的小知识