1:

public class Example
{
    String str=new String("good");
    char[] ch={'a','b','c'};
    public static void main(String args[])
    {
        Example ex=new Example();
        ex.change(ex.str,ex.ch);
        System.out.print(ex.str+"and");
        System.out.print(ex.ch);
    }
    public void change(String str.char ch[])
    {
        str="test ok";
        ch[0]='g';
    }
}
 A good and abc 
 B good and gbc 
 C test ok and abc 
 D test ok and gbc 

选B:
str是引用数据类型,而字符数组是基本数据类型,二者存放在内存中的机制是不一样的!
public void change(String str.char ch[])
{
str="test ok";
ch[0]='g';
}
传入str,虽然把"test ok"强行赋给str,但是这里的str存放在新的栈内存中,和原来的str存放的地址不一样,所以你System.out.print(ex.str+"and");这里的输出还是调用原来内存中的str;
字符数组不一样,你声明一个字符数组之后,那个数组的位置就定死了,你调用change()之后,把原来的字符数组的第1个元素改为了g.这就是引用数据类型和基本数据类型的区别.

 

2:

String s = new String("xyz");创建了几个String Object?

常量池有xyz就创建一个句柄地址,否则创建两个一个句柄一个常量

3

如何启用service,如何停用service

启用service有两种方式:
Start方式,bind方式

Intent i = new Intent(getApplicationContext(),Server.class);
stopServer(i);

4

注册广播有几种方式,这些方式有何优缺点?Android引入广播机制的用意

roadcastReceiver用于监听被广播的事件 必须被注册,有两种方法:

1、在应用程序的代码中注册 注册BroadcastReceiver: registerReceiver(receiver,filter);

取消注册BroadcastReceiver: unregisterReceiver(receiver);

当BroadcastReceiver更新UI,通常会使用这样的方法注册。启动Activity时候注册BroadcastReceiver,Activity不可见时候,取消注册。

2、在androidmanifest.xml当中注册 <receiver>

<intent-filter> <

action android:name = "android.intent.action.PICK"/>

</intent-filter> </receiver>

使用这样的方法注册弊端:它会始终处于活动状态,毕竟是手机开发,cpu和电源资源比较少,一直处于活动耗费大,不利。

 

posted on 2016-06-28 10:15  青年程序猿  阅读(195)  评论(0)    收藏  举报