Android面试复习

1、Activity的生命周期

2、Service的生命周期

3、Service和Activity在同一个线程吗

默认情况下是在同一个主线程中。但可以通过清单中android:process属性配置不同的进程。

4、java中的soft reference是个什么东西

如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。

软引用可以和一个引用队列(ReferenceQueue)联合使用,如果软引用所引用的对象被垃圾回收器回收,Java虚拟机就会把这个软引用加入到与之关联的引用队列中。

5,内部类机制

一、定义

放在一个类的内部的类我们就叫内部类。

二、 作用

1).内部类可以很好的实现隐藏

一般的非内部类,是不允许有 private 与protected权限的,但内部类可以

2).内部类拥有外围类的所有元素的访问权限

3).可是实现多重继承

4).可以避免修改接口而实现同一个类中两种同名方法的调用

6,说一下java中的封装、抽象、继承和多态

封装:在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,
         
可以具有name,sex,age等属性,同时也具有eat(),sleep()等行为,我们在行为中实现一定的功能,也可操作属性,这是面向对象的封装特性; 
抽象:抽象就是将一类实体的共同特性抽象出来,封装在一个抽象类中,所以抽象在面向对象语言是由抽象类来体现的。比如鸟就是一个抽象实体,因为抽象
       
实体并不是一个真正的对象,它的属性还不能完全描述一个对象,所以在语言中体现为抽象类不能实例化; 
继承:继承就像是我们现实生活中的父子关系,儿子可以遗传父亲的一些特性,在面向对象语言中,就是一个类可以继承另一个类的一些特性,从而可以代码
       
重用,其实继承体现的是is-a关系,父类同子类在本质上还是一类实体; 
多态:多态就是通过传递给父类对象引用不同的子类对象从而表现出不同的行为,多态可为程序提供更好的可扩展性,同样也可以代码重用。

7,private、protected、default、public

1、private修饰词,表示成员是私有的,只有自身可以访问;

2、protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。

3、无修饰词(默认),表示包访问权限(friendly,
java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限;

4、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代码

   
 1、在程序对时间敏感或对性能要求特别高时,有必要用更底层的语言

   
 2、在已经有现成的用其他语言完成的功能时,需要用java直接调用

   
 3、在需要用到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();
}
});

时间: 2024-10-28 17:31:11

Android面试复习的相关文章

【Android面试】(二):你不能不知道的view---加id和不加id的区别?

请尊重原创劳动成果,转载请注明出处:http://blog.csdn.net/cyp331203/article/details/45313125,非允许请勿用于商业或盈利用途. 上次面试,Android开发,被问到:你知道android中,布局文件中加id和不加id有什么区别?这个我真的不知道,蒙了,只能硬着头皮说:加了id会在R文件中生成对应id的数值,然后扯了点view树,总之答非所问...虽然最后面试也过了,但是这个问题一直萦绕在心头,挥之不去.刚好今天复习Activity生命周期的时候

百度的android面试总结分析

今天就是今天上午10点,我接到了百度的电话面试,当然提前和我说了,我的拖延症是有多强烈,以至于我没怎么准备,当然我也想着看看自己的真实水平,在此检讨一下!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 废话不多说 上来就是百度的一个技术人员打过电话来,简单确认了我的信息之后,就开始问问题,此刻我的心中有一万匹草泥马奔腾....开始问的是数据结构和算法的相关知识,我本科学过一小点,不过没有及时复习全忘记了...接下来就是

BAT大牛亲授技能 技巧 Android面试快速充电升级

第1章 课程介绍(本课程专为初中级同学面试复习)本课程专为初中级程度同学面试准备的系统复习指南,本章带你了解面试过程中会遇到的问题,个人应该摆正的心态,以及面试官最为看重你的解决问题的思路.关于框架面试专题课程请移步到:http://coding.imooc.com/class/157.html1-1 课程介绍 第2章 Android开发岗位技术要求和面试前的准备本章对各个级别Android开发工程师的招聘需求进行深入分析,并带大家清晰完整的了解面试复习与准备思路,做到有的放矢,有侧重点的进行复

扫清 Android 面试障碍--面试前的准备及必刷面试题

又准备要去面试了吗? 来来来,给你点干货建议. 磨刀不误砍柴工, 面试的时间一般只有几个小时不到,所以做好充分准备会极大提高你的成功率.面试的要点分: 面试前的准备和面试中的注意事项,接下来先来说说面试前的准备. 面试前准备 毋庸置疑,求职者在面试之前必须做好充足的准备,我认为有以下几点是重中之重: 完善简历,以及对简历内容做充分准备 可以说简历内容不在于多而在于精,尽量让每个字都有信息量,而且千万要中肯,比如说对于三年以内工作经验的,还是不要用「精通」这两个字了,会让面试官觉得你很浮夸. 坦率

转:Android面试

http://blog.csdn.net/singwhatiwanna/article/details/49230997 可以说是对android知识的总结,列在这里了.上面的博文地址里有详细介绍,感兴趣可以仔细阅读. 基本知识点.深入知识点.基本知识点的细节和系统核心机制. 1. 基本知识点 比如四大组件如何使用.如何创建Service.如何进行布局等.这类知识是需要熟练掌握的,并且也没什么难度. 2. 稍微深入的知识点 比如AIDL.Binder.多进程.View的绘制流程.事件分发.消息队

Android面试知识点(转)

该文所有问题转自:http://www.cnblogs.com/hpboy/p/3307371.html 一.算法,数据结构 1.排序算法 2.查找算法 3.二叉树 4.广度,深度算法: 二.java基础 1.集合Collection,List,Map等常用方法,特点,关系: 2.线程的同步,中断方式有几种,线程池,线程状态,常用的方法比较,比如wait,sleep等: 3.反射机制 4.IO包的使用,运用了什么设计模式 5.设计模式,常用的设计模式,运用场景: 6.内存管理,引用的种类: 7.

Android面试总结经

自上周怒辞职以后,就开始苦逼的各种面试生涯,生活完全靠私活来接济,时有时没有,真难,还能快乐的玩耍吗,最多一天面试了5家,哎感觉都是不急招人,各种等待通知,好不容易等来一家,还克扣了薪资,从我要的12k到他们给8k,感觉累觉不爱. 面试都是基本过了二面的,大到腾讯,阿里,百度,网易,小到15人的创业公司我都去了,难得今天休息一下,总结下面试经验,以便下次面试用到.技术题目我就不说了,这是基础,不会的还是把基础看下吧.后面的题目都是让人蛋疼的机制问题. 1.什么是线程,线程和进程的区别,线程的工作

【Android进阶】Android面试题目整理与讲解

这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正 1.简述Activity的生命周期 当Activity开始启动的时候,首先调用onCreate(),onStart(),onResume()方法,此时Activity对用户来说,是可见的状态 当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见,但是不能相 应用户的点击事件 当Activity从可见状态变为被其他

Android面试题目2

1. 请描述下Activity的声明周期. onCreate->onStart->onRemuse->onPause->onStop->onRestart->onDestroy 2. 如果后台的Activity由于某种原因被系统回收,如何在回收之前保存当前状态.onSaveInstanceState().程序中的某一个Activity A 在运行时,主动或被动的运行另一个新的Activity B,这个时候A会执行onSaveInstanceState().B完成以后又回