【Java】-- 对象和对象引用


在整理运算符的时候看到了这句话,觉得比较重要又是以前没注意到的,所以就单独记下来了

Java 中一切都是对象,但操作的标识符实际是对象的一个引用

我们知道,在 Java 中万物皆对象 的说法,但是有一个问题,既是对象引用

《Java编程思想》:

“每种编程语言都有自己的数据处理方式。有些时候,程序员必须注意将要处理的数据是什么类型。你是直接操纵元素,还是用某种基于特殊语法的间接表示(例如C/C++里的指针)来操作对象。所有这些在 Java 里都得到了简化,一切都被视为对象。因此,我们可采用一种统一的语法。尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“引用”(reference)”

从上面可以看出对象的引用可以看做是 C 语言中的指针,引用指向对象

Person person = new Person("张三");

对于上面代码中的张三 ,我们知道这是一个对象,那问题来了,person 又是什么呢,也是对象?不,这是对象引用了,它指向 张三 这个对象

可以拆开来理解

Person person;                   // 声明一个对象引用
person = new Person("张三");      // 引用指向对象


例子

看下面的实例,输出来的是什么呢

public class Test {

    public static void main(String args[]) {
        Integer n1 = new Integer(2);
        Integer n2 = new Integer(2);
        System.out.println(n1 == n2);
        System.out.println(n1 != n2);
    }
}

大多数人,包括开始的我,都会觉得应该输出为 True,False,但是实际上,n1,n2只是引用,他们指向的对象是不相同的(虽然对象的内容一样),所以n1,n2是不相等的,应该输出 False, True

但如果向比较n1,n2对象的内容呢,在 Java 中,提供了一个 equal() 方法,可以进行此类操作

public class Test {

    public static void main(String args[]) {
        Integer n1 = new Integer(2);
        Integer n2 = new Integer(2);
        System.out.println(n1.equals(n2));
    }
}

此程序输出 True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值