这道java面试题,主要考了以下2点:
* 变量、对象 作为参数传递给其它方法时,在方法中可以对传入的 变量、对象 所做的操作;
* 变量、对象 的作用域;这一点有时候看起来很简单,可以容易忽略、出错!
package space.learn.notice;
/**
* 一道关于 变量、对象 作用域的java面试题;
* @author space
* @date Nov 1, 2008 10:44:02 AM
*/
public class VarScope {
public static void output(Integer i, StringBuffer bf) {
System.out.println(i);
System.out.println(bf);
}
public static void a(Integer i, StringBuffer bf) {
i = 30;
bf.append("-a-append");
output(i, bf);
}
public static void b(Integer i, StringBuffer bf) {
i = 40;
bf = new StringBuffer("-b-new");
output(i, bf);
}
public static void main(String[] args) {
Integer i = 10;
StringBuffer bf = new StringBuffer("initbf");
output(i, bf);
a(i, bf);
b(i, bf);
output(i, bf);
}
}
你自己试试,看看是不是也忽略了变量的作用域!最后一个 output(i,bf) 调用 比较容易马虎出错!!!想清楚作用域!!!