java基础:基本类型变量和引用类型变量

一.引用变量的特点

  1. 对象是通过对象引用变量来访问的,该变量包含了对对象的引用。
  2. 假设我们自己定义一个类Circle,这个类是一种引用类型。该类类型的变量都可以引用该类的一个实例。
  3. 从表面上看,对象引用变量种似乎存放了一个对象;但是事实上,它只是存放了对该对象的引用。

二.基本类型变量和引用类型变量的区别


每个变量都代表一个保存了存储值的内存位置。声明一个变量时,就是在告诉编译器这个变量可以存放什么类型的值。

对于基本类型变量

  • 在内存中存储的是一个基本类型值。
  • 可以在栈中直接分配内存
  • 例如 int a=1; 变量a的值就是int值1;

对于引用类型变量

  • 对应内存所存储的值是一个引用,是对象的存储地址。
  • 对象的引用在栈中,对象实际存放在堆中。
  • 例如 Circle circle = new Circle(9)【参数表示半径】; 变量circle 的值保存的是一个引用,它指明这个Circle对象的内容存储在内存的什么位置。

三.基本类型变量和引用类型变量的赋值问题

1. 基本类型:将一个对对象的实际值赋给另一个变量。

i=1; 

j=2;

j = i; 就是将基本类型变量 i 的内容复制给基本类型变量 j。

2. 引用类型:将一个变量的引用赋给另一个变量

c1= new Circle(9); 

c2= new Circle(6); 

c2=c1;  就是将c2的引用赋给c1,赋值之后,变量c2和c1指向同一个对象。这个时候c1以前的引用对象不再有用,因此,现在它就称为垃圾。垃圾会占用内存空间。Java运行系统会检测垃圾并自动回收它所占据的空间,这个过程称为垃圾回收。

【注意:如果你不再需要某个对象,可以显式地给该对象的引用变量赋值为null。 如果该对象没有被任何引用变量所引用,Java虚拟机会自动回收它所占据的空间。】

你可能感兴趣的:(java,java)