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