小米实习生测试开发笔试题

博客主要解答两个问题。一是指出代码编译报错原因是变量aa未明确,可通过super.aa或testA.aa明确;二是解释在Android中Activity、Fragment间传递参数需用Bundle的原因,包括跨进程、状态恢复等,还提到受Binder缓冲区大小影响,自定义类需实现特定接口。

1.下面代码是否有错,如有错,请指出并阐述错误原因。

class  testB{
 string  aa = “I’m testB”;
}
interface  testA{
 string  aa = “I’m testA”;
}
class  testC  extends  testB  implemets  testA{
 public  void  cc(){
  System.out.println(aa);
 }
 public  static  void  main(String[] args){
  new testC().cc();
 }
}

答:编译时就会报错,报错原因是变量aa未明确,testB和testA都有该变量。 对于父类的变量 , 可以用 super.aa 来明确,而接口的属性默认隐含为 public static final。所 以可以通过 testA.aa 来明确。

2.为什么在Android中Activity,Fragment之间传递参数需要通过Bundle?有什么限制?

答:

1)Activity间,可能会跨进程,需要Parcel

2)Activity与Fragment或Fragment之间虽然不会跨进程,但是由于Activity可能会被回收,需要为Fragment保存及恢复必要的状态及参数,所以也需要通过Bundle来保证传递的数据可恢复

3)受Binder缓冲区大小影响。自定义类需要实现parcelable接口或serializable接口

更多阿里、百度、顺丰面试题解答可以到我的下载专区查看https://download.youkuaiyun.com/user/weixin_39813541/uploads

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值