1、java中的数组类型:
基本类型:byte short int float long double char boolean
引用类型:类类型,接口类型,数组类型。
基本类型的变量保存原始值,它代表的是数值本身,
引用类型的变量保存引用值,“引用值”指向内存空间地址,代表某个对象的引用,而不是对象本身,引用值指向栈中存放的地址,而对象在堆中。
2、基本类型和引用类型的区别
基本数据类型在声明时系统就给它分配空间,这里面包括数据空间,引用类型不同,声明时只给变量分配引用空间,不分配数据空间。
3、引用传递和值传递
值传递:
方法调用时,实际参数的值传给方法的形参,形参收到的只是实参的一个副本,实际参数的值没有变化,在方法中对形参的改变不影响实参的值。
引用传递:
也称为传地址。方法调用时,实际参数的地址传给形参,因此形参指向的对象和实参指向的对象相同,因此方法中对形参的改变会影响实参的值。
例子:
public class Object { public int b = 99; }
分别传参基本数据类型和引用数据类型
public class BasicAndObject { public void test1(int a){ a=a++; System.out.println("test1方法中的:"+a); } public void test2(Object obj){ obj.b = 100; System.out.println("test2方法中的:"+obj.b ); } public static void main(String[] args) { BasicAndObject ba = new BasicAndObject(); int a = 99; ba.test1(a); System.out.println("main函数中的"+a); Object o = new Object(); ba.test2(o); System.out.println("main函数中的"+o.b); } }
结果:
test1方法中的:99
main函数中的99
test2方法中的:100
main函数中的100
从结果中,值传递没有改变原来实参的值,但是引用传递改变了原来对象的值。