引用数据类型(封装数据类型)
面向对象设计的数据类型;可看成类的方式存在,不能扩展,绝种的,没有子类。
- 整形: Byte ,Short, Integger,Long
- 浮点型:Float,Double
- 字符型: Character
- 布尔型:Boolean
小结:两个特殊:int—> Integer char —> character, 其他的都是将首字母大写。
比较:
- 数组比较,基础数据类型比较如果值相等返回的都是 ture,和数据无关。
1 | // 看见字符型 ---> ascii -->看出数字 |
- 引用数据类型和基础数据类型值比较相同的都是 true,比较都是==。
- 如果两个引用数据类型比较,那么就不用==而是 equals。
- 如果是同类型的引用数据类型比较,还是值比较都用 equals,== 就是内存地址比较。
1 | Integer aa = 10; |
基础数据类型跟封装数据类型的区别:
- 基础数据类型它是一种数据结构而已,它定义都是在堆内存中的。
- 封装数据类型它是一个类,它有方法和属性,供封装数据调用和转换,提供很多方法可以转换成对应的基础数据类型。
- 封装数据类型的原理还是基础数据类型,只不过它是一个常量类型的基础数据类型,通过它的结构函数可以发现它是一个常量。
==和 equals
equals:一定是封装类型比较,类和类的比较。
封装数据类型比较:不用==而是 equals
在开发过程中,一般都是用封装数据类型,基础数据类型只是在一些计算和返回的适合用的到。
全局变量:方法以外,类以内的变量都是全局变量。
在全局变量下:基础数据类型的默认值
- 整型:byte, short, int, long. 默认值是 0
- 浮点型:float, double 默认是 0.0
- char 默认值\u0000
- boolean 默认值 false
封装数据类型:默认值 null.因为是类。
eg: Integer a = null; // 空引用,在堆中没有开辟空间。
- 判断一个数据类型是否为空
- 其二,基础数据类型,不能应用于泛型。
1 | Integer a = 10; |
小结:封装数据类型
- 同类型比较时,如果数据类型不一致都是 false,反之 true。
- 如果同类型比较可以用==,它和 eqauls 是一个意思。
- 在开发工程中,封装数据类型的比较都用 eqauls 而不是==。
- 在开发中,时刻谨记,如果两个数字都相同,返回还是 false,那么就一定检测数据类型是否一致了。如果一致一定是 true,否则 false。
- String 类型:**== 内存地址比较;eqauls 值比较。**
拆装箱
封装数据类型和基础数据类型之间可以相互转换。
应用:值注入;数据类型转换等。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kirio!
评论