java中的变量按类型可以分为基本数据类型变量和引用类型变量。按作用域可以分为局部变量、实例变量和静态变量(类变量)。
局部变量:
局部变量在方法中定义,当声明一个局部变量时,首先变量的值会被存储在操作数栈上,接着会把这个变量的值存入局部变量表中对应的变量的位置,引用类型也是这样,只不过这个变量的值是一个引用而不是具体的值。
-
引用类型变量:例如Cat tom=new Cat();其中引用类型变量tom存在与虚拟机栈中,对象new Cat()存在于堆中;
-
基本数据类型变量:int a=1;a和1都存在于虚拟机栈中;
执行过程:
-
" "字符串:常量池
实例变量:
实例变量不会独立于对象而存在,初始化时会被加入到构造方法中;
- 引用类型变量:private Cat tom=new Cat();存在于堆中。
- 基本数据类型变量:private int a=1;存在于堆中的对象里。
执行过程:
- " "字符串:常量池
静态变量:
- 引用类型变量:static Cat tom=new Cat();tom存在于方法区,对象new Cat()存在与堆中;
- 基本数据类型变量:static int a=1;a和1都存在于class对象中方法区(jdk1.8后在堆中)。
- " "字符串:常量池
速览: