什么是JAVA中的引用? JAVA引用的概念
引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用。其实GC时主要看这个对象是否有引用指向该对象。按照这种引用的强弱的关系, 从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
操作方法
- 01
引用和指向 new Hero(); 代表创建了一个Hero对象但是也仅仅是创建了一个对象,没有办法访问它为了访问这个对象,会使用引用来代表这个对象 Hero h = new Hero(); h这个变量是Hero类型,又叫做引用=的意思指的h这个引用代表右侧创建的对象“代表” 在面向对象里,又叫做“指向” public class Hero { String name; //姓名 float hp; //血量 float armor; //护甲 int moveSpeed; //移动速度 public static void main(String[] args) { //创建一个对象www.mingduan.net new Hero(); //使用一个引用来指向这个对象 Hero h = new Hero(); } }
- 02
多个引用,一个对象 引用有多个,但是对象只有一个。 在这个例子里,所有引用都指向了同一个对象。 对象就像 "房产", 引用就像"房产证" 房产证的复印件可以有多张,但是真正的"房产" 只有这么一处
- 03
一个引用,多个对象 第8行,引用garen指向新创建的对象(对象1) 第9行,同一个引用garen指向新创建的对象(对象2) 这个时候,对象1,就没有任何引用指向了 换句话说,就没有任何手段控制和访问该对象,那么该对象就变得没有意义。 package charactor; public class Hero { public String name; protected float hp; public static void main(String[] args) { Hero garen = new Hero(); garen = new Hero(); } }
- 04
如代码,问题: h4所指向的对象和h2所指向的对象,是否是同一个对象? package charactor; public class Hero { public String name; protected float hp; public static void main(String[] args) { Hero h1 = new Hero(); Hero h2 = new Hero(); Hero h3; Hero h4; h3 = h1; h4 = h3; } }