100道ANDROID⾯试题
1.作⽤域public,protected,private,以及不写时的区别
答:区别如下:
作⽤域当前类同⼀package⼦孙类其他package
public√√√√
protected√√√×
friendly√√××
private√×××
不写时默认为friendly
2.ArrayList和Vector的区别
答:就ArrayList与Vector主要从⼆⽅⾯来说.
⼀.同步性:Vector是线程安全的,也就是说是同步的,⽽ArrayList是线程
序不安全的,不是同步的
⼆.数据增长:当需要增长时,Vector默认增长为原来⼀培,⽽ArrayList却
是原来的⼀半
3.HashMap和Hashtable的区别
⼀.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java
1.2引进的Map接⼝的⼀个实现
⼆.同步性:Hashtable是线程安全的,也就是说是同步的,⽽HashMap是线
程序不安全的,不是同步的
三.值:只有HashMap可以让你将空值作为⼀个表的条⽬的key或value
4.多线程有⼏种表⽰⽅法,都是什么?同步有⼏种实现⽅法,都是什么?
答:多线程有两种实现⽅法,分别是继承Thread类与实现Runnable接⼝同步的实现⽅⾯有两种,分别是synchronized,wait与notify
5.x=1,y=2,z=3;计算:y+=z--/++x
答:y=3
6.String是最基本的数据类型吗?
答:基本数据类型包括byte、int、char、long、float、double、boolean 和short。
.
7.int和Integer有什么区别
答:Java提供两种不同的类型:引⽤类型和原始类型(或内置类型)。Int 是java的原始数据类型,Integer是java为int提供的封装类
8.String和StringBuffer的区别
答:JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字
符数据。
这个String类提供了数值不可改变的字符串。⽽这个StringBuffer类提供的字符串进⾏修改。当你知道字符数
据要改变的时候你就可以使⽤StringBuffer。典型地,你可以使⽤
StringBuffers来动态构造字符数据。
9.Servlet的⽣命周期
答:Servlet被服务器实例化后,容器运⾏其init⽅法,请求到达时运⾏其service⽅法,service⽅法⾃动派遣运⾏
与请求对应的doXXX⽅法(doGet,doPost)等,当服务器决定将实例销毁的时候调⽤其destroy⽅法。
10.forward和redirect的区别
答:forward是服务器请求资源,服务器直接访问⽬标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪⼉来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送⼀个状态码,告诉浏览器重新去请求那个地址,⼀般来说浏览器会⽤刚才请求的所有参数重新请求,所以
session,request参数都可以获取
11.⾯向对象的特征有哪些⽅⾯
答:封装,继承,多态
12.Overload和Override的区别
答:⽅法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是⽗类与⼦类之间多态性的⼀种表现,重载Overloading 是⼀个类中多态性的⼀种表现。如果在⼦类中定义某⽅法与其⽗类有相同的名称和参数,我们说该⽅法被重写(Overriding)。⼦类的对象使⽤这个⽅法时,将调⽤⼦类中的定义,对它⽽⾔,⽗类中的定义如同被“屏蔽”了。
如果在⼀个类中定义了多个同名的⽅法,它们或有不同的参数个数或有不同的参数类型,则称为⽅法的重载(Overloading
13.数组有没有length()这个⽅法?String有没有length()这个⽅法?
答:数组没有length()这个⽅法,有length的属性。String有有length()这个⽅法。
<{}⾥有⼀个return语句,那么紧跟在这个try后的finally{}⾥的code会不会被执⾏,什么时候被执⾏,在return前还是后?答:会执⾏,在return前执⾏。
15.sleep()和wait()有什么区别?
答:sleep()是线程类Thread的⽅法,导致此线程暂停执⾏指定时间,给执⾏机会给其他线程,但是监控状态依然保持,到时后会⾃动恢复,调⽤sleep 不会释放对象锁。
wait()是Object类的⽅法,对此对象调⽤wait⽅法导致本线程放弃对象锁,进⼊等待此对象的等待锁定池,只有针对此对象发出notify⽅法(或notifyAll)后本线程才进⼊对象锁定池准备获得对象锁进⼊运⾏状态
16.启动⼀个线程是⽤run()还是start()?
答:启动⼀个线程是调⽤start()⽅法,使线程所代表的虚拟处理机处于可运⾏状态,这意味着它可以由JVM调度并执⾏。这并不意味着线程就会⽴即运⾏。run()⽅法可以产⽣必须退出的标志来停⽌⼀个线程。
17.switch语句中的表达式可以是什么类型数据?
答:表达式的值可以是byte、short、int和char类型的数据,但不能是float和double类型的数据。
18.插⼊数据时,ArrayList、LinkedList、Vector谁速度较快?
答:ArrayList、Vector以数组⽅式存储数据,插⼊数据时要进⾏元素移动操作,因⽽插⼊数据慢。LinkedList是⼀种链表结构,在插⼊数据时只需要修改链表的前后项指向即可,因此插⼊速度较快。
19.字符串的连接操作有⼏种实现⽅法?
答:字符串与字符串的连接操作可以通过“+”运算符和concat()⽅法来实现
20.在⽐较对象时,“==”运算符和equals运算有何区别?
答:“==”运算符表⽰两个对象引⽤的地址是否相等,equals运算符则表⽰两个对象引⽤的内容是否相等。
<和exception有什么区别
答:error表⽰恢复不是不可能但很困难的情况下的⼀种严重问题。⽐如说内存溢出。
exception表⽰⼀种设计或实现问题。也就是说,它表⽰如果程序运⾏正常,从不会发⽣的情况
22.String s=new String("a");共创建了⼏个String对象?
答:两个。其中包括⼀个字符对象和⼀个字符对象引⽤对象。
23.页⾯间对象传递的⽅法
答:request,session,application,cookie
24.java中有⼏种类型的流?
答:字节流,字符流。字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter 25.List,Set,Map是否继承⾃Collection接⼝?
答:List,Set是
26.在JSP中如何使⽤注释?
答:主要有四中⽅法:
1.<%--与--%>
2.//
3./**与**/
4.
27.css的基本语句构成是?
答:选择器{属性1:值1;属性2:值2;……}
28..⾏内元素有哪些?块级元素有哪些?CSS的盒模型?
答:块级元素:div p h1h2h3h4form ul
⾏内元素:a b br i span input select
Css盒模型:内容,border,margin,padding
29.CSS引⼊的⽅式有哪些?
答:内联内嵌外链导⼊
30..标签上title与alt属性的区别是什么?
答:Alt当图⽚不显⽰是⽤⽂字代表。
Title为该属性提供信息
31.javascript的typeof返回哪些数据类型
答:Object number function boolean underfind
32.split()join()的区别
答:前者是切割成数组的形式,后者是将数组转换成字符串
33.form中的input可以设置为readonly和disable,请问2者有什么区别?
答:readonly不可编辑,但可以选择和复制;值可以传递到后台
disabled不能编辑,不能复制,不能选择;值不可以传递到后台
34.js中的3种弹出式消息提醒(警告窗⼝,确认窗⼝,信息输⼊窗⼝)的命令式什么?
答:alert
confirm
prompt
35.求y和z的值是多少?
答:都为undefined,因为没有返回值
36.javaScript的2种变量范围有什么不同?
答:全局变量:当前页⾯内有效
局部变量:⽅法内有效
37..写出程序运⾏的结果?java面试题要背多久
for(i=0,j=0;i<10,j<6;i++,j++){
k=i+j;
}
答:结果:10
38.简述DIV元素和SPAN元素的区别。
答:DIV有回车,SPAN没有
DIV是块元素,SPAN是内嵌元素。
39.谈谈innerHTML innerText之间的区别。
答:innerHTML对象⾥⾯的HTML,innerText对象⾥⾯的⽂本
40.var a=10;var b=20;var c=10;alert(a=b);alert(a==b);alert(a==c);结果是?结果:20,true.false;
41.android的动画有哪⼏种?他们的特点和区别是什么?
答:两种,⼀种是tween动画,⼀种是frame动画。tween动画,这种实现⽅式可以使视图组件移动,放⼤或缩⼩以及产⽣透明度的变化。frame动画,传统的动画⽅法,通过顺序的播放排列好的图⽚来实现,类似电影。
42.Activity的⽣命周期:
答:onCreate:在这⾥创建界⾯,做⼀些数据的初始化⼯作
onStart:到这⼀步变成⽤户可见不可交互的
onResume:变成和⽤户可交互的,(在activity栈系统通过栈的⽅式管理这些个Activity的最上⾯,运⾏完弹出栈,则回到上⼀个Activity) onPause:到这⼀步是可见但不可交互的,系统会停⽌动画等消耗CPU的事情从上⽂的描述已经知道,应该在这⾥保存你的⼀些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这⾥保存的数据,应该在onstop:变得不可见,被下⼀个activity覆盖了
onDestroy:这是activity被⼲掉前最后⼀个被调⽤⽅法了,可能是外⾯类调⽤finish⽅法或者是系统为了节省空间将它暂时性的⼲掉
43.Android中常⽤的五种布局:
答:LinearLayout线性布局;AbsoluteLayout绝对布局;TableLayout表格布局;RelativeLayout相对布局;FrameLayout帧布局;
44.Android的五种数据存储⽅式:
答:sharedPreferences;⽂件;SQLite;contentProvider;⽹络
45.android中有哪⼏种解析xml的类?
答:XML解析主要有三种⽅式,SAX、DOM、PULL。
46.android的service的⽣命周期?:
答:onCreate()->onStart()->onDestroy()
47.⼀条最长的短信息约占多少byte?
答:中⽂70(包括标点),英⽂160个字节
48.Android项⽬⼯程下⾯的assets⽬录的作⽤是什么
答:主要放置多媒体等数据⽂件
49.android的四⼤组件是?
答:activiey,service,broadcast和contentprovide
50.让Activity变成⼀个窗⼝:
答:Activity属性设定:有时候会做个应⽤程序是漂浮在⼿机主界⾯的。这个只需要在设置下Activity的主题theme,即在l定义Activity的地⽅加⼀句:android:theme="@android:style/Theme.Dialog"
如果是作半透明的效果:android:theme="@android:style/Theme.Translucent"
51.如何将SQLite数据库(.db⽂件)与apk⽂件⼀起发布?
答:可以将.db⽂件复制到Eclipse Android⼯程中的res aw⽬录中。所有在res aw⽬录中的⽂件不会被压缩,这样可以直接提取该⽬录中的⽂件。可以将.db ⽂件复制到res aw⽬录中
52.启动service的两种⽅法?有什么区别?
答:⼀种是startService(),另⼀种是bindService()。这两者的区别是第⼀种⽅式调⽤者开启了服务,即会与服务失去联系,两者没有关联。即使访问者退出了,服务仍在运⾏。如需解除服务必须显式的调⽤stopService⽅法。主要⽤于调⽤者与服务没有交互的情况下,也就是调⽤者不需要获取服务⾥的业务⽅法。⽐如电话录⾳。⽽后者调⽤者与服务绑定在⼀起的。当调⽤者退出的时候,服务也随之退出。⽤于需要与服务交互。
53.SQLite⽀持事务吗?添加删除如何提⾼性能?
答:SQLite作为轻量级的数据库,⽐MySQL还⼩,但⽀持SQL语句查询,提⾼性能可以
考虑通过原始经过优化的SQL查询语句⽅式处理。
54.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?答:在”暂停onPause”状态将数据保存。
55.android:paddingLeft与android:layout_marginLeft的区别
答:当按钮分别设置以上两个属性时,得到的效果是不⼀样的。
android:paddingLeft="30px"
按钮上设置的内容(例如图⽚)离按钮左边边界30个像素
android:layout_marginLeft="30px"
整个按钮离左边设置的内容30个像素
56.返回键与Home键区别?
答:back键默认⾏为是finish处于前台的Activity的即Activity的状态为Destroy状态为⽌,再次启动该Activity是从onCreate开始的(不会调⽤
onSaveInstanceState⽅法)。Home键默认是stop前台的Activity即状态为onStop为⽌⽽不是Destroy,若再次启动它,会调⽤onSaveInstanceState⽅法,保持上次Activity的状态则是从OnRestart开始的
---->onStart()--->onResume()。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论