Java 笔试拾遗(3)
栈中的变量
栈的主要作用
- 符号匹配;
- 表达式求值;
- 实现函数调用。
一 符号匹配
示例
解析XML时,需要校验节点是否闭合,如必须有与之对应,用栈数据结构实现就比较好。遇到一个标签(左标签)就入栈,遇到其子标签的左标签同样入栈。遇到右标签就校验栈顶标签是否与该右标签对应,能对应就出栈,不能对应则说明标签不对称,是无效的XML文件.
二表达式求值
引例:
public class Test {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operator(a, b);
System.out.println(a + "," + b);
}
public static void operator(StringBuffer x, StringBuffer y) {
x.append(y); y = x;
}
}
输出
AB,B
x.append(y)修改x所指的内容,y=x 把x的指向赋给y;但是,打印的是a和b所指向的内容,于是,结果就是AB,B。
这在java中算是非参数的引用传递。
同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。
三 后续继续补充函数调用