基本数据类型是值类型。 byteshortintlongfloatdoublebooleanchar
引用数据类型:“类”、“接口类型”、“数组类型”、“枚举类型”、“注释类型”和“字符串类型字符串”
1、整数型2、浮点型3、字符型4、逻辑型
八种:
1、整数型三种byte,short,int,long
2、浮点型两种float,double
3、一种类型的字符
4、逻辑型一类布尔
参照类型
除了四种类型、八种基本类型外,所有类型都称为引用类型(数组、类、接口和字符串)
明确值类型和引用类型后,最后一点是传值和传引用。 这很重要
[值传递]
基本数据类型赋值都属于值传递,值传递传递的是实实在在的变量值,是传递原参数的拷贝,值传递后,实参传递给形参的值,形参发生改变而不影响实参。
[引用传递]
引用类型之间赋值属于引用传递。引用传递传递的是对象的引用地址,也就是它的本身(自己最通俗的理解)。
引用传递:传的是地址,就是将实参的地址传递给形参,形参改变了,实参当然被改变了,因为他们指向相同的地址。
引用和我们的指针差不多,但是它不又不需要我们去具体的操作
内存分配
具有“值类型”(valuetype )的数据存储在堆栈中的变量中。 通过为堆栈分配内存空间并直接存储包含的值,该值表示数据本身。
值类型的数据访问速度快。
具有引用类型(referencetype )的数据不存在于堆栈中,而是存储在堆中。 这意味着为堆分配内存空间,指向要存储的值,而不是直接存储包含的值,该值表示要指向的地址。 访问引用类型的数据时,必须检查引用堆栈中实际数据的变量的内容。 引用类型数据比率类型的数据具有较大的存储器大小和较低的访问速度。
Java有垃圾回收机制。 虽然堆栈内存中的变量会在方法结束时自然丢弃,但如果使用引用类型,则方法结束时,该对象可能会应用于其他引用类型,而不会被丢弃。 只有当对象没有引用变量的引用时,垃圾回收机制才会重用。