1.变量类型与引用类型:
基本类型:其值直接存在于变量中。
引用型的变量除占据一定的内存空间外,他引用的对象实体(由new创建还有接口等)也要占一定的空间。(与指针相似)
当调用一个引用时进行赋值等操作时,例如
person n= new person();
person m =n;
复制的为引用当我们改变m的属性时候,相当于改变了m和n的所指向的堆内存中一些属性而我们复制的只是引用而已。
变量分为字段变量和局部变量:
字段变量就是我们常说的域定义在类当中的,而局部变量是定义在方法中的变量或者是方法的参变量。
2.从内存的角度来看:
*存储位置不同:字段变量是类的一部分存储在堆中,而局部变量存储在栈中。
*生命周期不同:字段变量的产生是在类的创建过程中产生,而局部变量是随着方法的创建而产生的,方法结束以后内存就释放掉了。
*初始值不同:字段变量是自动的赋初值,而局部变量是显示的进行赋初值。
3.两种变量的区别:
*从语法角度看:
字段变量属于类,可以用public,static等修饰
局部变量不能够被访问控制符和static所修饰但是可以被final所修饰
4.变量的传递:
*调用对象方法时,需要传递参数时,
*java是值传递,是将表达式的值复制给形式参数。
*对于引用变量,传递的值是引用值,而不是复制对象实体。