Java学习日记10——变量及其传递、引用类型和基本类型变量的传递区别
变量的定义在前面已经讲解过了:点击这里 可以查看原文。这里的分类会略微不通过与之前。这里的变量主要分为字段变量和局部变量。
1.在存储角度来看:
字段变量是对象的一部分,存放于堆之中,然后局部变量是存放在栈中间的。
2.在生命周期角度来看:
字段变量的生命周期是随着类的存在而存在,但是局部变量仅仅是在方法调用的时候存在。而且在方法中的局部变量是必须要初始化定义的,而不像字段变量一样可以自动分配。
3.在语法角度来看:
字段变量属于类,可以用pubic和private、static、final等修饰,局部变量不能被访问控制符和static修饰,可以被final修饰。
调用方法时——变量的传递
由于Java中变量的类型不同,所以各方法之间的参数传递效果会不一致。基本参数类型的值是直接存在变量中的,是复制性传递,也就是相同的变量名会存在于不同的内存区,调用的结果会不同,所以将这个方法的值复制到另一个方法进行改变时,当前方法的值不会改变(相当于是多个同名变量,只在自己的方法体生效)。而引用类型的数据是存放在内存空间中,其引用的实体对象(用new方法创建的)也会占据一定空间,如果在其他方法对值进行修改,会导致最终值的改变。
具体见下面的例子:其中int整数类型是基本数据类型,而数组int[ ]是引用类型的变量。
程序不麻烦,简单易懂,不要怕!
public class variable {
static void modify(int a) {
a++;
System.out.println("在modify方法中的a已经变为:"+a);
}
static void modify(int []b) {
b[0]++;
System.out.println("在modify方法中的b[0]已经变为:"+b[</