为什么阿里会推荐所有的局部变量使用基本数据类型?
漫画编程
共 677字,需浏览 2分钟
·
2020-06-21 23:21
Java中共有三种变量,分别是类变量、成员变量和局部变量。他们分别存放在JVM的方法区、堆内存和栈内存中。
public class Variables {
/**
* 类变量
*/
private static int a;
/**
* 成员变量
*/
private int b;
/**
* 局部变量
* @param c
*/
public void test(int c){
int d;
}
}
上面定义的三个变量中:
变量a就是类变量,存放在方法区,线程共享。
变量b就是成员变量,随着对象一起存放在堆内存,线程共享。
变量c和d是局部变量,存放在栈内存,线程独享。
也就是说,变量a和b是共享变量,变量c和d是非共享变量。
即局部变量是非共享变量,作用域只在方法内部,并不会逃逸到方法外。
那么,既然是一个作用域只在方法内的变量,不需要考虑那么多,怎么性能高怎么定义,怎么方便使用怎么定义。
我们都知道在Java语言中,new一个对象是存储在堆里的,我们通过栈中的引用来使用这些对象;所以,对象本身来说是比较消耗资源的。
对于经常用到的类型,如int等,如果我们每次使用这种变量的时候都需要new一个Java对象的话,就会比较笨重。
所以,和C++一样,Java提供了基本数据类型,这种数据的变量不需要使用new创建,他们不会在堆上创建,而是直接在栈内存中存储,因此会更加高效。
评论