1. 局部变量采用了栈的机制,保证了变量的自动分配与回收。
- 函数大括号中定义的变量在左大括号处自动分配,在右大括号中自动消除。(移动栈指针,后进先出)
- 有时,临时变量需要重新定义,此时需要加强制大括号。
public class A {
public static void main(String[] args){
int x = 5;
int y = 6;
int temp = x;
x = y;
t = temp;
int temp = 8;
System.out.println(x + "," + y);
}
}
报错。
public class A {
public static void main(String[] args){
int x = 5;
int y = 6;
{int temp = x;
x = y;
y = temp;
}
int temp = 8;
System.out.println(x + "," + y);
}
}
返回6,5。
- 栈指针中,某一个变量被释放,那么在其上方的所有变量都会被释放,不可能被漏掉。