引用数据类型

引用数据类型

​ 基础数据类型-值传递--不会被回收

​ 引用数据类型---进行引用传递---对象new 数组 字符串常量池 存储在堆中---gc垃圾回收机制

​ null 空类型 数组和引用数据类型的默认值都是null

​ Object ----所有对象的顶级父类

​ 面向对象设计的数据类型 以类的方式存在 他们不能扩展 没有子类

​ 整型: Byte Short Integer Long

​ 浮点型:Float Double

​ 字符型: Character

​ 布尔型: Boolean

​ 两个特殊: Integer Character 其他的吧首字母大写

在封装数据类型的比较中不管哪种比较 都会先进行类型比较在进行值比较

== 类型比较

eqauls 值比较(同数据类类型比较才为真)

​ 引用数据类型和基础数据类型他们值相等比较都是返回true

​ 如果两个都是不同引用数据类型 ==比较 会编译不通过 语法错误 需 要用equals 去进行比较

​ 如果是同类型的引用数据类型比较值比较用equals 内存地址比较 ==

如果两个引用之间没有父子继承关系,他们的变量不能用==进行比较

boolean 不能和其他任何一种数据类型比较

基础数据类型和封装数据类型区别:

​ 基础数据类型只是一种数据结构定义后都在堆内存中

​ 封装数据类型是一个类有方法和属性供我们使用可以转换成基础数据类型封装数据类型原理还是基础数据类型通过它的构造函数可以发现他是一个常量

常量:只能赋值不能修改

在开发过程中,我们都是用封装数据类型,基础数据类型只是在一些计算和返回的时候用

全局变量:方法以外,类以内的变量都是基础变量

在全局变量下基础数据类型默认量

​ 整型:byte short int long 默认值为0

​ 浮点型:float, double 默认值为0.0

​ char:\u00000

​ boolean: false

封装数据类型默认值都为null 因为他是类

基础数据类型不能应用于泛型

public class Test02 {
	public static void main(String[] args){
		int a = 10;
		int f = 10;
		float b = 10.0f;
		Integer c = 10;
		Float e = 10.0f;
		Float d = 10f;
		System.out.println(a==b);//true
		System.out.println(a==c);//true
		System.out.println(a==f);//true
		System.out.println(a==e);//true
		//System.out.println(e==c);不能比较  编译不通过
		System.out.println(e==d);//false
		System.out.println(e.equals(a));//false
		System.out.println(e.equals(b));//true
		System.out.println(e.equals(d));//true
		System.out.println(e.equals(c));//false
	}

}
//引用数据类型 Integer 进行值比较时在范围-128~127之间返回true其他返回false这是因为在整形数据类型中源代码有一个byte数
组的缓存   引用数据类型的值比较要用equals

instanceOf  判断变量是什么引用数据类型(与javascript  中的typeof作用相同)
格式 :数据类型 变量 = instanceOf 数据类型或者他的父类
eg:Integer a =1;
System.out.println(a instanceOf Integer)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值