基本数据类型的作用域
作用域决定了在其内的变量名的可用性和生命周期,与c、c++一样,作用域由花括号的位置决定
{
int x = 5;
{
// x,y都可用
int y = 6;
}
// 只有x可用
}
尽管下列代码在c、c++中合法,但在Java中不能使用
{//c、c++中将一个较大作用域的变量“隐藏”起来的做法在Java中不允许
int x = 5;
{
int x = 6;
}
}
对象的作用域
Java对象不具备基本类型一样的生命周期,当用new创建对象时,它可以存在于作用域之外
{
String s = new String("aaa");
}
引用变量s在作用域终点便会消失,但是其指向的String字符串却一直存在,但我们却无法访问
那么就会有另一个问题:如果这些对象一直存在,那么如何防止其填满内存空间,进而阻塞程序?
这就引出了Java的垃圾回收机制:用来监视用new创建的所有对象,并辨别那些不会再被引用的对象,随后释放其内存空间