Java中的类型可以分为两类:引用类型和值类型。值类型指的是基本数据类型,例如int、float、double、char等,而引用类型指的是对象类型,例如String、List、Map等。
值类型存储在栈中,每个变量都有自己的空间,赋值时会复制一份值。对于基本数据类型的参数传递,是将值复制一份传递给方法,方法处理时不会改变原来的值。
//值类型示例
int a = 1;
int b = a;
b = 2;
System.out.println(a); //输出1,值没有改变
System.out.println(b); //输出2
引用类型存储在堆中,变量只是指向对象的引用,对象本身的实际数据存储在堆中。当多个变量指向同一个对象时,它们实际上是共享同一个数据。对于引用类型的参数传递,是将引用复制一份传递给方法,方法处理时可以改变原来对象的内容。
//引用类型示例
String s1 = "hello";
String s2 = s1;
s2 = "world";
System.out.println(s1); //输出hello,值没有改变
System.out.println(s2); //输出world
在实际开发中,通常会使用到引用类型,因为它们可以更灵活地处理数据。例如对于一个学生对象,除了基本信息(如姓名、年龄)外,还可以包含一些列表(如选课记录),这时候就需要使用引用类型。