Thinking in java-12 数据作用域问题

来源:互联网 发布:数据库原理及应用试题 编辑:程序博客网 时间:2024/05/16 06:31

1.基本数据类型作用域

作用域:scope决定了在给定范围内定义的变量名的可视性visibility以及该范围内对象的生命周期问题。
在C/C++/JAVA中,作用域是由{} 所决定的。

{    int x=12;    //Only x is avaiable    {        int y = 28;        //Both x and y are available    }    //Only x available, y out of scope

2.对象作用域

{    String str = new String("a string");    //End of scope}

Java对象并不像基本数据类型那样的生命周期,当我们用new方法创建了一个Java对象时,它会在作用域结束后依然在内存中存在。
关于变量的引用str在作用域结束的时候消失了。但是,str引用所指向的String对象依然占据着内存。在作用于之外,我们无法访问对象实例,因为仅有的关于对象的引用已经不在所访问范围内了。
所以结果就是:用new所创建的对象在内存依然存在。
那么问题出现了:是什么机制保证了内存不会被这种内容填满呢?
A: GC…

原创粉丝点击