基本类型和引用类型的本质区别
没有指针就没有面向对象,引用数据类型也就是指针的另一种表示。当我们声明一个对象时,无论是基本数据类型还是引用数据类型,都会在该方法的栈空间申请一个空间,基本数据类型只不过是存的是字面值,引用数据类型存放的是该引用对象的地址。我们实例化一个类时会在堆空间开辟一个空间,而该对象的引用(栈空间)会存放该对象在堆空间的地址。
我们每次声明一个变量都会在方法栈中声明一个变量,所以引用对象改变的是堆空间的数据,共用同一个堆,持有相同引用的都会受到这种改变的影响,而基本类型只是改变了各自方法栈中的数据,彼此不受影响。同一个方法中i=10;则把0x1100的数据改为10
另外类的成员变量存储在堆中,包括基础类型和引用类型
方法中的局部变量存储在栈中,但是引用的对象存储在堆中