1.Application是什么?
答:
- 每个App都有一个Application实例:如果我们没有继承
Application子类自定义它的话,App会创建一个默认的实例。- Application实例拥有着与App一样长的生命周期:在
App开启的时候首先就会实例化它,然后才是入口的Activity或者Service等。- Application与App“同生共死”,在一个
App的生命周期只实例化一次,所以它“天生”就是一个单例,不需要使用单例模式去实现它
2.setter、getter是什么?
答:
setter:设置值
getter:获取值为什么要使用
setter和getter?答:那是因为属性是
private时,在这个类的外部是无法调用到这个类里面的属性的。所有如果要在此属性所属类的外面调用到属性的话,就要使用到setter和getter
3.枚举类是什么?
答:参考链接
4.extend和implements是什么?
答:
- 在类的声明中,通过关键字
extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法;implements是实现多个接口, 接口的方法一般为空的, 必须重写才能使用extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,Java中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了 比如class A extends B implements C,D,E
5.serializable是什么?
答:
Serializable是序列化的意思,表示将一个对象转换成可以存储或者可传输的状态。序列化后的对象可在网络上进行传输,也可以存储到本地。
6.layout_gravity和gravity是什么?
答:
layout_gravity:这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。同样,当我们在Button按钮控件中设置android:layout_gravity="left"属性时,表示该Button按钮将位于界面的左部。
gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左部。
7.context和是什么?
答:
获取到当前对象的上下文,这个是
View类中提供的方法,在继承了View的类中才可以调用,返回的是当前View运行在哪个Activity Context中。
8.getActivity是什么?
答:
获取当前
Activity的实例,getActivity()大部分都是在fragment中使用到,而fragment需要依赖于activity。所有我们在
fragment里头需要做一些动作,比如启动一个activity, 就需要拿到activity对象才可以启动,而fragment对象是没有startActivity()方法的。
9.this是什么?
答:
表示当前对象;一般而言,在哪个类中调用,就是指向该对象。想表示外部类的话就得加上
外部类的类名.this。
10.泛型是什么?
答:
所谓“泛型”,就是“宽泛的数据类型”,任意的数据类型。
为什么要使用泛型?
答:设想一下 , 如果我们没有泛型 , 那么我们在使用List的时候, 经常使用到的操作就是存和取 , 但是我们因为不能指定泛型 , 所以只能存入Object类型.
- 存数据
list.add(new Person());恩 , 没有多大的影响 , 转型操作让我们很舒服 , 但是取数据就没这么方便了- 取数据
Person p = (Person) list.get(0)每次取出数据都要先进行强制类型转换 , 转来转去的很快你就会迷糊。所以 , 我们现在引入了泛型之后 , 对于List的操作就方便多了
11.反射是什么?
答:
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制(注意关键词:运行状态)
12.单例是什么?
答:
单例是一种对象创建模式,它用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例。
为什么使用单例?
答:
- 对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级的对象而言,是非常可观的一笔系统开销。
- 由于
new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间。
13.APPCompatActivity是什么?
答:从
Android 21之后引入Material Design的设计方式,为了支持Material Color、调色板、toolbar等各种新特性,AppCompatActivity就应用而生。代替了原有的
ActionBarActivity。在AppCompatActivity中,更是引入了AppCompatDelegate类的设计,可以在普通的Acitivity中使用AppCompate的相关特性。
14.private 、public、protected、和default 是什么?
答:
指类中的数据成员访问权限,具体访问权限如下:
作用域 当前类 同一Package 子孙类 其他Package public √ √ √ √ protected √ √ √ × default √ √ × × private √ × × ×
15.abstract是什么?
答:
用关键字abstract修饰的类称为abstract类(抽象类),如:
1abstract classA{}用关键字abstract修饰的方法称为abstract方法(抽象方法),如:
1abstract int min (int x,int y);对于abstract方法只允许声明,不允许实现(因为没有方法体)(毕竟叫抽象,当然不能实实在在的让你实现),并且不允许使用final和abstract同时修饰一个方法或者类,也不允许使用static修饰abstract方法。也就是说,abstract方法只能是实例方法,不能是类方法。
16.Android有哪几种布局
答:
有六种布局方式,分别是:
线性布局(LinearLayout):按照垂直或者水平方向布局的组件
帧布局(FrameLayout):组件从屏幕左上方布局组件
表格布局(TableLayout):按照行列方式布局组件
绝对布局(AbsoluteLayout):按照绝对坐标来布局组件
相对布局(RelativeLayout):相对其它组件的布局方式
约束布局(ConstraintLayout):按照约束布局组件
17.Android各个版本的特性
答:
18.match_parent和wrap_content有什么区别
答:
19.dp、sp、px有什么区别
答:
20.ArrayList和List有什么区别
答:
21.Bundle是什么
答:
22.静态方法是什么
答:
静态方法在程序运行中是存放在公共区,任何时间只需要用类名,不用创建实例引用就可以直接调用。静态一般用于存储数据,或存储资源。