Fork me on GitHub

引用型变量==和equals那些事儿

好了,在前面这段时间的疯狂突击工作后,暂时告一段落,接下来的模块过了今天再继续开发(我不管我今天就是不想烧脑学习了,就是想休息一天!!!!!),现在对Java不太懂得点进行查漏补缺学习。

一、java变量

变量分为两种,基本型的变量和引用型的变量

1. 基本型的变量:类似于int、char、double等类型的变量,这类成为基本型变量,我们要使用这类变量时需要为此变量进行一个初始值赋值才可以。这几种类型在Java中也被称为基本数据类型。基本数据类型是CPU可以直接进行运算的类型。Java定义了以下几种基本数据类型:

整数型类型:int、short、long、byte

浮点类型:double、float

字符类型:char

布尔类型:bool

2. 引用型变量:除了上方列出来的基本数据类型变量外,其他类型例如String类型都成为引用型变量。引用类型的变量类似于C语言的指针,它内部存储一个“地址”,指向某个对象在内存的位置,就String来看,我们一般有以下两种十分相似的写法:

String para = "string" ;
        String param = "string" ;
        if(para.equals(param)){
            System.out.println("param和para匹配成功");
        }else {
            System.out.println("param和para匹配失败");
        }

此时输出结果是:

紧接着再执行下述代码:

String para = "string" ;
        String param = "string" ;
        if(para == param){
            System.out.println("param和para匹配成功");
        }else {
            System.out.println("param和para匹配失败");
        }

执行结果如下:

然后发现两次执行结果不一样,这就是引用型变量和基本型变量的区别所在了。

在我们使用引用型变量时,两个引用型变量对比如果用equals,表示要比较的是两个变量代表的值是否相等,而用==时表示两个引用型变量所指地址是否想等,所以这时即使两个变量代表的值相等,也有可能会出现两个变量匹配失败的结果。

至此,结束。

posted @ 2021-01-20 15:36  叶语婷  阅读(188)  评论(0编辑  收藏  举报