什么是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; } }

(0)

相关推荐

  • java中对象和对象的引用

    在Java中,有一组名词经常一起出现,它们就是"对象和对象引用",很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然. 操作方法 01 1.何谓对 ...

  • java中引用的概念(JAVA的引用调用)

    Java中为什么没有指针?我们都知道Java与c/c 有个显著的区别就是c/c 有指针的使用,而Java中没有用到指针.之所以Java没有指针的使用(没有显示的使用指针,内部实现机制肯定是有指针的), ...

  • JAVA的值传递和引用传递区别(java值传递和引用传递例子)

    学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java ...

  • java 中堆和栈的区别方法

    一直以来对java中堆和栈都有点模糊:现在终于搞明白啦 特点: 1. 栈的特点是 : 容量小 速度快 适合存放小型数据 如基本数据类型和对象类型的引用 在栈中变量直接指向存放变量值的空间 对于对象引用 ...

  • java中继承到底指继承的什么

    java中的继承 操作方法 01 1.java类中继承的关键字是extends,一般说子类继承了父类 例如:父类是Animals.java       子类是Cat.java 声明子类的写法是:pub ...

  • java中的数组怎么学习

    java中的数组是存储多个变量元素的东西,这多个变量的数据类型要一致.数组可以存储基本数据类型,也可以存储引用数据类型.数组的格式:1.数据类型[]数组名             2.数据类型数组名[ ...

  • java中equal与==的区别

    介绍一下java中==和equals方法的区别.在初学java时需要弄清楚这个问题,以免在今后在编码过程中出现一些低级错误. 操作方法 01 首先,在eclipse中运行图示所示代码,通过结果对&qu ...

  • 怎样区分java中的基本数据类型和引用类型?

    怎样区分java中的基本数据类型和引用类型? 操作方法 01 1.java中基本数据类型一共有8个. 基本数据类型在内存中只有一块空间,里面存着数值. 例如:int a=0;就是基本数据类型. 02 ...

  • Java中final、finally、finalize的区别

    Java中final.finally.finalize的区别与用法,困扰了不少学习者,下面我们就这个问题进行一些探讨,希望对大家的学习有所帮助. 操作方法 01 简单区别: final用于声明属性,方 ...

  • java中的常量定义 final 的问题解决方法

    Java 中我们常常需要定义一些常量ID,ID值为连续不重复值 方法1:, 方便的定义,方便增减ID 非常方便, 程序保证不会有重复的ID public static class HandleMess ...