1、String和StringBuffer有什么本质区别?

本质区别:String字符串不可变,每次修改字符串必须要重新赋值(生成新的对象)才能修改;StringBuffer字符串可变,可以直接对字符串本身进行修改(不生成新的对象)。

此外StringBuffer是线程安全的,在有大量字符串修改操作的情况下,性能更优。

2、解释一下Java的反射机制。

反射:在程序运行时通过类名加载类的对象,从而动态的调用类的对象的属性和方法等元素的机制。

3、Class<?> loadClass(String str) Class<?>代表什么意思?

Class<?>是通配泛型,?可以代表任何类型。

Class<T>在实例化的时候,T要替换成具体类。

<? extends T>受限统配,表示T的一个未知子类。

<? super T>下限统配,表示T的一个未知父类。

4、Android中有哪几种布局?

LinearLayout :线性布局,简单的按照水平或垂直方式,按照先后顺序进行控件布局的方式。

FrameLayout :帧布局,控件会在左上角进行“堆放”,起到“层层叠加”的效果。

AbsoluteLayout :绝对布局,相对于左上角的绝对坐标来确定各元素的位置。此布局方式不能很好的适配各种尺寸屏幕的移动设备,现已很少采用。

RelativeLayout :相对布局,以控件之间的相对位置进行布局,是最灵活的一种布局方式。

TableLayout :表格布局,基于N行N列的比较规则的布局方式。

5、Android中的Apk发布正式版本,为什么要签名?

apk默认的识别id是Activity所在的包名,所以有可能会重复,签名的意义在于能够唯一的识别自己开发的应用,正确的更新、卸载app。

6、Service运行于哪个线程中?Service中如何避免ANR?

Service运行于主线程中。如果Service有长时间操作,依然会阻塞主线程,造成ANR。

ANR(Android Not Response),在程序长时间没有响应的情况下产生。

避免ANR:不在主线程上执行网络操作或耗时较长的操作,可以通过异步(AsyncTask)或多线程(Handler+Thread)处理。

7、Android中如果在Intent中要传递一个对象,该对象要实现哪几个接口?

Serializable、Parcelable

Serializable更适合于在磁盘上序列化、反序列化,Parcelable更适合于在内存中序列化、反序列化。

8、Android程序中如果要对位图进行处理,需要注意什么,如果处理不当,会产生什么异常?

Android手机内存资源有限,要对Bitmap进行预处理(图片按比例缩小、缓存:内存缓存、磁盘缓存)。如果处理不当,会产生OOM(Out Of Memory)异常。

9、Android程序中,如果需要从网络中获取数据,应该如何操作?

tcp/udp:socket

http:支持get/post/delete/put等http动作,数据交换格式有xml和json等

webservice: 基于soap+xml的web服务

其它还有ftp、usb、wifi、blueteeth、nfc等。

Android开发面试题(一)的更多相关文章

  1. 网易android开发面试题及心得

    前几天面试网易android开发,总体感觉问题难度一般.怪我自己没有好好梳理知识,尤其是基础,后面就没消息了... 笔试: 1.描述Activity 生命周期 2.什么是ANR,如何规避? 3.描述a ...

  2. android开发面试题

    找了将近两个星期的工作,面试了5家公司,罗列一下笔试或者面试时的问题,祝大家好运 1,handler机制 答:handler执行机制:1).在主线程中创建handler 2).子线程中借助主线程的ha ...

  3. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题

    ##2017.10.30收集 面试技巧 5.1 面试形式 1)        一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2)        面试官喜欢什么样的人 ü  技术好. ...

  4. 前端开发面试题-CSS(转载)

    本文由 本文的原作者markyun 收集总结. 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型.W3C 盒子模型: (2)盒模型: 内容(conte ...

  5. 前端开发面试题-JavaScript(转载)

    本文由 本文的原作者markyun 收集总结. 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol ...

  6. java 开发面试题小整理(一)

    本篇文档将持续更新,有基础滴,也有深层次的,谢谢! 1.看下面的程序是否有问题,如果有问题,请指出并说明理由. * byte b1 = 3; * byte b2 = 4; * byte b3 = b1 ...

  7. php开发面试题---游戏面向对象设计与分析实例

    php开发面试题---游戏面向对象设计与分析实例 一.总结 一句话总结: 不要光空想,多看几个实例就知道自己的游戏该怎么设计了 根据实例去理解面向对象编程的的六大原则 1.英雄种类分别有:战士.法师. ...

  8. 100个iOS开发面试题汇总-王刚韧的技术博客

    100个iOS开发面试题汇总 关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的 ...

  9. 前端开发面试题收集 JS

    前端开发面试题收集-JS篇 收集经典的前端开发面试题 setTimeout的时间定义为0有什么用? javascript引擎是单线程处理任务的,它把任务放在队列中,不会同步执行,必须在完成一个任务后才 ...

随机推荐

  1. DOS命令如何进入指定的下一级目录?

    如cd E:\java workspace\test\src 如何进入E盘 ,直接 E:

  2. 使用solr的函数查询,并获取tf*idf值

    1. 使用函数df(field,keyword) 和idf(field,keyword). http://118.85.207.11:11100/solr/mobile/select?q={!func ...

  3. 140个google面试题

    某猎头收集了140多个Google的面试题,主要是下面这些职位的. Product Marketing Manager Product Manager Software Engineer Softwa ...

  4. Android小项目之九 两种上下文的区别

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  5. VMware系统运维(六)VMware vSphere Web Client安装

    1.开始安装VMware vSphere Web Client 2.下一步 3.接受协议,下一步,大哥求你了,下次直接将这个默认下一步吧,嘿嘿 4.选择安装位置,下一步 5.配置端口号,默认9090和 ...

  6. p39

    ; ========================================== ; pmtest2.asm ; 编译方法:nasm pmtest2.asm -o pmtest2.com ; ...

  7. My Linux API

    @图形界面与命令行界面切换 Linux预设提供了六个命令窗口终端机让我们来登录.默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + ...

  8. hdu 4409 LCA

    思路:就是个比较裸的LCA了,不过要注意的是,如果a和b的公共祖先是a,那么答案就是farther[a]. #include<cstring> #include<cmath> ...

  9. CF 322E - Ciel the Commander 树的点分治

    树链剖分可以看成是树的边分治,什么是点分治呢? CF322E - Ciel the Commander 题目:给出一棵树,对于每个节点有一个等级(A-Z,A最高),如果两个不同的节点有相同等级的父节点 ...

  10. 10 Best TV Series Based On Hacking And Technology

    Technology is rapidly becoming the key point in human lives. Here we have discussed top TV shows whi ...