一、Activity的生命周期java
二、Service的生命周期android
三、Service和Activity在同一个线程吗c++
默认状况下是在同一个主线程中。但能够经过清单中android:process属性配置不一样的进程。数据库
四、java中的soft reference是个什么东西缓存
若是一个对象只具备软引用,则内存空间足够,垃圾回收器就不会回收它;若是内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就能够被程序使用。软引用可用来实现内存敏感的高速缓存。网络
软引用能够和一个引用队列(ReferenceQueue)联合使用,若是软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。socket
5,内部类机制ide
1、定义oop
放在一个类的内部的类咱们就叫内部类。post
2、 做用
1).内部类能够很好的实现隐藏
通常的非内部类,是不容许有 private 与protected权限的,但内部类能够
2).内部类拥有外围类的全部元素的访问权限
3).但是实现多重继承
4).能够避免修改接口而实现同一个类中两种同名方法的调用
6,说一下java中的封装、抽象、继承和多态
封装:在面向对象语言中,封装特性是由类来体现的,咱们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类, 能够具备name,sex,age等属性,同时也具备eat(),sleep()等行为,咱们在行为中实现必定的功能,也可操做属性,这是面向对象的封装特性;
抽象:抽象就是将一类实体的共同特性抽象出来,封装在一个抽象类中,因此抽象在面向对象语言是由抽象类来体现的。好比鸟就是一个抽象实体,由于抽象 实体并非一个真正的对象,它的属性还不能彻底描述一个对象,因此在语言中体现为抽象类不能实例化;
继承:继承就像是咱们现实生活中的父子关系,儿子能够遗传父亲的一些特性,在面向对象语言中,就是一个类能够继承另外一个类的一些特性,从而能够代码 重用,其实继承体现的是is-a关系,父类同子类在本质上仍是一类实体;
多态:多态就是经过传递给父类对象引用不一样的子类对象从而表现出不一样的行为,多态可为程序提供更好的可扩展性,一样也能够代码重用。
7,private、protected、default、public
一、private修饰词,表示成员是私有的,只有自身能够访问;
二、protected,表示受保护权限,体如今继承,即子类能够访问父类受保护成员,同时相同包内的其余类也能够访问protected成员。
三、无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内能够访问,访问权限是包级访问权限;
四、public修饰词,表示成员是公开的,全部其余类均可以访问;
8,说一下你对service的理解
service是四大组件之一,适用于处理长时间操做又不须要与用户交互的状况或者提供与其余应用程序交互的功能。
9,四大组件都用过哪些,简单的介绍一下它们的用法
Activity :
应用程序中,一个Activity一般就是一个单独的屏幕,它上面能够显示一些控件也能够监听并处理用户的事件作出响应。
BroadcastReceiver广播接收器:
应用程序可使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并作出响应。广播接收器没有用户界面。然而,它们能够启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。通知能够用不少种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。通常来讲是在状态栏上放一个持久的图标,用户能够打开它并获取消息。
Service 服务:
一个Service 是一段长生命周期的,没有用户界面的程序,能够用来开发如监控类程序。
Content Provider内容提供者 :
android平台提供了Content Provider使一个应用程序的指定数据集提供给其余应用程序。这些数据能够存储在文件系统中、在一个SQLite数据库、或以任何其余合理的方式。其余应用能够经过ContentResolver类(见ContentProviderAccessApp例子)从该内容提供者中获取或存入数据.(至关于在应用外包了一层壳),只有须要在多个应用程序间共享数据是才须要内容提供者。例如,通信录数据被多个应用程序使用,且必须存储在一个内容提供者中。
它的好处:统一数据访问方式。
10,udp和TCP的不一样之处
UDP:1,每一个数据报中都给出了完整的地址信息,所以无须要创建发送方和接收方的链接。
2 ,UDP传输数据时是有大小限制的,每一个被传输的数据报必须限定在64KB以内。
3,UDP是一个不可靠的协议,发送方所发送的数据报并不必定以相同的次序到达接收方
TCP: 1,面向链接的协议,在socket之间进行数据传输以前必然要创建链接,因此在TCP中须要链接时间。
2,TCP传输数据大小限制,一旦链接创建起来,双方的socket就能够按统一的格式传输大的数据。
3,TCP是一个可靠的协议,它确保接收方彻底正确地获取发送方所发送的所有数据。
11,在哪些状况下java代码中须要调用C代码
一、在程序对时间敏感或对性能要求特别高时,有必要用更底层的语言
二、在已经有现成的用其余语言完成的功能时,须要用java直接调用
三、在须要用到java标准平台不具有的依赖于操做系统的特性时
12,介绍一下android中的task
Task,简单的说,就是一组以栈的模式汇集在一块儿的Activity组件集合。它们有潜在的先后驱关联,新加入的Activity组件,位于栈顶,并仅有在栈顶的Activity,才会有机会与用户进行交互。而当栈顶的 Activity完成使命退出的时候,Task会将其退栈,并让下一个将跑到栈顶的Activity来于用户面对面,直至栈中再无更多 Activity,Task结束。
13,Activity的启动模式
Activity启动模式设置:
<activity android:name=".MainActivity" android:launchMode="standard" />
Activity的四种启动模式:
1. standard
模式启动模式,每次激活Activity时都会建立Activity,并放入任务栈中。
2. singleTop
若是在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会建立新的实例并放入栈顶(即便栈中已经存在该Activity实例,只要不在栈顶,都会建立实例)。
3. singleTask
若是在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,所以在它上面的实例将会被移除栈。若是栈中不存在该实例,将会建立新的实例放入栈中。
4. singleInstance
在一个新栈中建立该Activity实例,并让多个应用共享此栈中的该Activity实例。一旦该模式的Activity的实例存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例,其效果至关于多个应用程序共享一个应用,无论谁激活该Activity都会进入同一个中。
15,java中final定义的类有什么特色
不能被继承
16.service里面能够弹土司么
能够。
Handler handler=new Handler(Looper.getMainLooper()); handler.post(new Runnable(){ public void run(){ Toast.makeText(getApplicationContext(), "Hello Android!", Toast.LENGTH_LONG).show(); } });