1、 方法重载与覆盖的区别?(Overload与Override的区别)
2、 String 和StringBuffer的区别
3、 字符串“abcde”通过写一个函数不让调用第三方的字符串,实现一个字符串倒序,比如字符串“abcde”变成“edcba”.
4、 抽象类与接口的区别(abstract与interface的区别
5、 集合的实现类与区别?
6、 线程有几种状态,分别是哪些?(调用run()和调用start()的区别
7、 线程的实现方式
8、 sleep() 与wait()的区别
9、 线程中wait,join,sleep,yield,notify,notifyall,synchronized,区别及联系
10、 Final、finally、finanlize()的区别
11、 常用设计模式及应用场景,用两种方式实现单例模式,要求线程安全
12、 常用排序算法,时间复杂度,实现思路
13、 android系统架构?
14、 Activity生命周期?保存activity的一些信息在哪个生命周期方法中
15、 Activity的onSaveInstanceState() 和 onRestoreInstanceState()
16、 Android的四大组件是什么?它们的作用是什么?
17、 广播如何调用,有什么方式,各自的区别?
18、 Android中asset文件夹和raw文件夹区别
19、 Android中的五种存储方式及其应用场景
20、 什么是ANR 如何避免它?(Android线程间的通信方式?
21、 Handler的运行机制(运行原理)(Handler,Looper,MessageQueue,Message之间的关系) 8
22、 listview优化策略
23、 ListView分页加载实现思路
24、 ListView图片异步加载实现思路
25、 Intent的原理,作用,可以传递哪些类型的参数
26、 如何实现屏幕分辨率的自适应
27、 简述Android中的IPC机制
28、 Android程序入口如何判断?
29、 android哪几种方式访问网络
30、 说说HttpClient的通信过程
31、 移动互联数据交互格式有哪些及其区别?(Json与xml的区别
32、 XML解析有哪几种?各自优缺点,官方推荐使用哪种?
33、 百度地图核心类,及实现的功能
34、 GC内存泄露在什么情况下回出现?怎么解决
35、 android内存的优化
36、 加载大图片的时候如何防止内存溢出
37、 Android缓存机制
38、 如何实现消息推送,有哪些方式,各自优缺点,最常使用哪种?
39、 MVC在Android中的应用
40、 Android自定义组件实现思路
41、 版本更新的实现思路
42、 播放视频有哪些实现方式
43、 NDK开发流程?(JNI运行原理
44、 如何实现一键退出
45、 AndroidManifest.xml清单文件<Activity>标签中属性android:excludeFromRecents="true"android:screenOrientation="portrait" android:configChanges="orientation|locale"的含义
46、 如何将一个Activity设置成窗口的样式
47、 谈谈UI中,Padding和Margin有什么区别,gravity与layout_gravity的区别
48、 哪个组件可以实现手风琴效果,用来实现设置界面的类,实现抽屉效果,悬浮窗口?
49、 Android SDK 3.0(HoneyComb)及4.0(IceCream)新特性
50、 android客户端如何实现自动登录

 
 
1、方法重载与覆盖的区别?( Overload与Override的区别)
答: 方法的重载属于编译时多态,方法名相同参数列表不同,返回值必须相同或都没有返回值类型。方法的覆盖属于运行时多态,子类覆盖父类的方法,子类指向父类引用,在调用方法的时候用父类的引用调用。
2、String和StringBuffer的区别
答: STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法。
StringBuder是不安全的 StringBuffer 是安全的
3、字符串“abcde”通过写一个函数不让调用第三方的字符串,实现一个字符串倒序,比如字符串“abcde”变成“edcba”
答: String   src   =  "ABCDEF ";
String   dst   =  new  StringBuffer(src).reverse().toString();
4、抽象类与接口的区别(abstract与interface的区别)
答:abstract可以修饰抽象方法,而一个类只要有一个抽象方法,就必须用abstract定义该类,即抽象类。
用interface修饰的类,里面的方法都是抽象方法,因此在定义接口的时候,可以直接不加那些修饰,系统会默认的添上去。接口里面的字段都是公有常量,即public static final修饰的字段。
5、集合的实现类与区别?
答:Collection接口,集合结构总的父接口,有两个子接口list和set
   List接口元素有序可重复.
   实现类有:ArrayList 数组实现轻量级,运行快,线程不安全。JDK1.2 查询快
            Vector   数组实现重量级,运行慢,线程安全。JDK1.0
            LinkedList链表实现 常用语堆栈与队列的实现增删操作快
Set 接口 元素无序不可重复
实现类有:HashSet,底层用hashCode()算法实现,保证元素的无序唯一,自定义对象存进HashSet为了保证元素内容不重复需要覆盖hashCode()与equals()方法。
          SortedSet(不重要) 元素有序(Unicode升序)唯一
  TreeSet要求元素有序,自定义的对象需要实现Comparable接口的 compareTo(object o)方法
Map(接口): 与Collection接口无关,有一个子接口SortedMap特点: 元素是key-value, key
唯一,无序; value可重复
  实现类: HashMap 轻量级线程不安全的,允许key或value为null JDK1.2
        HashTable 重量级线程安全的 不允许key或value为null   JDK1.0
           Properties是HashTable的子类,主键和值都是字符串
  SortedMap:(不重要)
  特点: key唯一,有序(Unicode升序)
  实现类:TreeMap
6、线程有几种状态,分别是哪些?(调用run()和调用start()的区别)
答:1)、新建状态(New):新创建了一个线程对象。
  2)、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
  3)、运行状态(Running):就绪状态的线程获取了CPU,执行run()方法。
  4)、阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况分三种:
  (一)、等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。
  (二)、同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别的线程占用,则JVM会把该线程放入锁池中。
  (三)、其他阻塞:运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5)、死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。
当调用start方法的时候,该线程就进入就绪状态。等待CPU进行调度执行,此时还没有真正执行线程。
当调用run方法的时候,是已经被CPU进行调度,执行线程的主要任务。
7、线程的实现方式
答:线程的实现有两种方式,一是继承Thread类,二是实现Runnable接口
8、sleep()与 wait()的区别
答:1.这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object
         类。
         2.最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可
         以使用同步控制块或者方法。sleep不出让系统资源;wait是进入线程等待池
         等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,
         因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用
         notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系
         统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到
         只能调用interrupt()强行打断。
3.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而
sleep可以在任何地方使用
4. Sleep需要捕获异常,而wait不需要
9、线程中wait,join,sleep,yield, notify,notifyall,synchronized,区别及联系
答:1).sleep()方法
在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”。不推荐使用。sleep()使当前线程进入阻塞状态,在指定时间内不会执行。
2).wait()方法
在其他线程调用对象的notify或notifyAll方法前,导致当前线程等待。线程会释放掉它所占有的“锁标志”,从而使别的线程有机会抢占该锁。
唤醒当前对象锁的等待线程使用notify或notifyAll方法,waite() 和notify()必须在synchronized函数或synchronized block中进行调用。
  • yield方法暂停当前正在执行的线程对象。yield()只是使当前线程重新回到可执行状态,所以执行
  • 3)yield()的线程有可能在进入到可执行状态后马上又被执行。yield()只能使同优先级或更高优先级的线程有执行的机会。
    4).join方法
    等待该线程终止。等待调用join方法的线程结束,再继续执行。如:t.join();//主要用于等待t线程运行结束,若无此句,main则会执行完毕,导致结果不可预测。
    Final、finally、finanlize()的区别
    答:final?用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不
    可继承。
    finally是异常处理语句结构的一部分,表示总是执行。
    finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
     
Loader: 装载器从android3.0开始引进。它使得在activity或fragment中异步加载数据变得简单
50、android客户端如何实现自动登录
答: 通过SharedPreferences存储用户名,密码,当存储不为空时实现自动登录功能

(转)Android 50道面试题总结(大家看看吧)的更多相关文章

  1. JavaSSM框架精选50道面试题

    JavaSSM框架精选50道面试题 2019年02月13日 19:04:43 EerhtSedah 阅读数 7760更多 分类专栏: 面试题   版权声明:本文为博主原创文章,遵循CC 4.0 BY- ...

  2. Android 70道面试题汇总

    1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在指 ...

  3. 50道Redis面试题及答案整理,史上最全!

    在网上看到有关Redis的50道面试题,但是没有给出答案,之前我也在寻找这份Redis面试题的答案,今天特地把答案分享出来. 花了大量时间整理了这套Redis面试题及答案,希望对大家有帮助哈~ 弄明白 ...

  4. 50 道 Java 线程面试题(转载自牛客网)

    下面是 Java 线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理 ...

  5. 50道java线程面试题

    50道Java线程面试题 下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序 ...

  6. 2017年50道Java线程面试题

    下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编 ...

  7. 50道Java集合经典面试题(收藏版)

    前言 来了来了,50道Java集合面试题也来啦~ 已经上传github: https://github.com/whx123/JavaHome 1. Arraylist与LinkedList区别 可以 ...

  8. java170道面试题汇总+详细解析

    2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对 ...

  9. ASP.NET 经典60道面试题

    转:http://bbs.chinaunix.net/thread-4065577-1-1.html ASP.NET 经典60道面试题 1. 简述 private. protected. public ...

随机推荐

  1. APIGateway网关安全设计

    Spring Cloud里面有个组件 Zuul网关 网关和 过滤器 拦截器很相似 网关可以实现过滤器 拦截器的功能 而且可以实现Nginx的基本功能 反向代理 负载均衡ribbon Nginx是软负载 ...

  2. 低版本C++ string的万能转换,从long string 之间的转换来看看

    string 转 long 那必须是万年atoi(),不过得配合c_str()使用! [plain] view plain copy #include <string> #include  ...

  3. Java对象初始化

    自动初始化(默认值) 一个类的所有基本数据成员都会得到初始化,运行下面的例子可以查看这些默认值: class Default{ boolean t; char c; byte b; short s; ...

  4. Flume-NG源码阅读之FileChannel

    FileChannel是flume一个非常重要的channel组件,非常常用.这个channel非常复杂,涉及的文件更多涉及三个包:org.apache.flume.channel.file.org. ...

  5. java 实现图片拼接

    1.想要实现多个图片的纵向和横向拼接.实现代码如下 2.补充发现横向拼接的一个bug 宽度没有增加(已修复) 百度地址:工具jar下载 链接:https://pan.baidu.com/s/1uZCN ...

  6. OnTouch关于performClick的Warning

    OnTouch关于performClick的Warning 当你对一个控件(例如FloatingActionButton)使用setOnTouchListener() 或者是对你的自定义控件重写onT ...

  7. Android并发编程之白话文详解Future,FutureTask和Callable

    从最简单的说起Thread和Runnable 说到并发编程,就一定是多个线程并发执行任务.那么并发编程的基础是什么呢?没错那就是Thread了.一个Thread可以执行一个Runnable类型的对象. ...

  8. FM算法 的总结

    FM的总结: 1.FM算法与线性回归相比增加了特征的交叉.自动选择了所有特征的两两组合,并且给出了两两组合的权重. 2.上一条所说的,如果给两两特征的组合都给一个权重的话,需要训练的参数太多了.比如我 ...

  9. BZOJ 4726 [POI2017]Sabota?:树形dp

    传送门 题意 某个公司有 $ n $ 个人,上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他下属(直接或者间接, 不包括他自己)中叛徒占的比例超过 $ x $ , ...

  10. 【LABVIEW到C#】3》String的操作之Match Pattern Funtion.vi

    C#实现如下 using System; using System.Collections.Generic; using System.Text; using System.Text.RegularE ...