值类型和字符类型
值类型:包括四类(共八种):整形(byte,short,int,long)
浮点型(float,double)
字符型(char)
逻辑型(boolean)
引用类型
除了上面的四类八种之外,所有类型都称为引用类型(数组,类,接口,字符串)
值传递和引用传递
值传递:基本数据类型赋值都属于值传递,传递的是原参数的复制,值传递后,实参传递给形参的值,形参发生改变不影响实参。
引用传递:传的是地址,将实参的地址传递给形参,形参变了,实参也就变了,因为他们指向相同的地址。
一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,不直接存储所包含的值,而是指向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的数据时,需要到栈中检查变量的内容,该变量引用堆中的一个实际数据。引用类型的数据比值类型的数据具有更大的存储规模和较低的访问速度。
Java中有垃圾回收机制,栈内存中的变量随着方法的结束内存自然销毁了,而用引用类型的时候,当方法结束的时候,这个对象可能被另一个引用类型所应用,不会销毁,只有当一个对象没有任何引用变量引用的时候,垃圾回收机制才会回收。