android面试题程序题,Android面试题总结

一、Java部分

1.关于被私有访问控制符private修饰的成员变量,以下说法正确的是?

A) 可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B) 可以被两种类访问和引用:该类本身、该类的所有子类

C) 只能被该类自身所访问和修改    D) 只能被同一个包中的类访问

答案:C。

private定义的属性只能在类本身中使用,任何地方的子类都是不能访问的。

2. 以下声明合法的是

A) default String s;    B) public final static native int w();    C) abstract double d;

D) abstract final double hyperbolicCosine();

答案: B

default是Java8引入的用于在接口中实现默认方法的,不能修饰变量;abstract同样不能修饰变量;abstract修饰说明方法必需要去实现,而final只能定义实现方法不能被修改,也就是必须在定义的时候已经实现,所以两者不能同时出现。

另外抽象方法必须定义在抽象类中,不能定义在普通类中。

3. 在调用方法时,若要使方法改变实参的值,可以()

A) 用基本数据类型作为参数   B) 用对象作为参数   C) A和B都对   D) A和B都不对

答案:B。

对于基本类型,参数传递的时候会将值复制,方法内的形参和实参只是值相同,但是两者没有关系;对于对象类型,传递的是对象的引用,修改形参将会导致实参被修改;有一个例外,String虽然是引用类型,但是在修改的时候会复制一个String对象,所以在方法内对String的修改不会影响方法外的实参。

4. Character流与Byte流的区别是

A) 每次读入的字节数不同 B) 前者带有缓冲,后者没有

C) 前者是字符读写,后者是字节读写 D) 二者没有区别,可以互换使用

答案:C。

Character是字符,而Byte是字节,所以选C

5. 线性表若采用链表存储结构,要求内存中可用存储单元地址?

A、必须连续 B、部分地址必须连续 C、一定不连续 D、连续不连续均可

答案:D

链式存储结构灵活性更高,不需要将对象存储在连续的空间内

6. 声明成员变量时,如果不使用任何访问控制符(public, protected, private),则 以下哪种类型的类不能对该成员进行直接访问

A)同一类 B)同一包中的子类 C)同一包中的非子类 D)不同包中的子类

答案:D。

访问级别

访问控制修饰符

同类

同包不同类(不含子类)

同包子类

不同包不同类

(不含子类)

不同包子类

公开

public

受保护

protected

√(注意)

默认

没有访问控制修饰符

私有

private

参考:http://www.cnblogs.com/tjudzj/p/4443066.html

7. 一个线程在任何时刻都处于某种线程状态(thread state),例如运行状态、阻塞状态、就

绪状态等。一个线程可以由选项中的哪种线程状态直接到达运行状态?()

A.死亡状态 B.阻塞状态(对象lock池内) C.阻塞状态(对象wait池内) D.就绪状态

答案:D。

8. 在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口?

A、private B、protected C、private protected D、public

答案:D。

接口本来就是要定义给对象用于交互的,当然必须是public的了。

9.下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。()

Java

class ClassDemo {

public static int sum=1;

public ClassDemo() {

sum = sum + 5;

}

}

1

2

3

4

5

6

classClassDemo{

publicstaticintsum=1;

publicClassDemo(){

sum=sum+5;

}

}

Java

public class ClassDemoTest{

public static void main(String args[]) {

ClassDemo demo1=new ClassDemo();

ClassDemo demo2=new ClassDemo();

System.out.println(demo1.sum);

}

}

1

2

3

4

5

6

7

publicclassClassDemoTest{

publicstaticvoidmain(Stringargs[]){

ClassDemodemo1=newClassDemo();

ClassDemodemo2=newClassDemo();

System.out.println(demo1.sum);

}

}

A. 0 B. 6 C. 11 D. 2

答案:C。

static变量只初始化一次,是在链接阶段初始化的。创建两个ClassDemo实例后,执行两次+5,所以最后结果为11

10.下列哪些语句关于内存回收的说明是正确的?

A 程序员必须创建一个线程来释放内存;   B 内存回收程序负责释放无用内存

C 内存回收程序允许程序员直接释放内存    D 内存回收程序可以在指定的时间释放内存对象

答案:B

内存回收机制不允许程序员手动释放内存,内存回收程序不定时的运行

二、Android部分

1.Intent传递数据时,下列的数据类型哪些可以被传递()(多选)

A、Serializable   B、charsequence    C、Parcelable   D、Bundle

答案:ABCD

打赏

f69872ab5631b766bfb8c62b6b7d28fa.png微信扫一扫,打赏作者吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值