每日一问:简述Java中基本数据类型及封装类型

每日一问:简述Java中基本数据类型及封装类型


Java中8种基本数据类型

八种基本数据类型
整数型:byte、short、int、long;
浮点型:float、double;
布尔型:boolean;
字符型:char;

对应的封装类

对应的封装类:Byte、Short、Integer、Long、Float、Double、Boolean、Character。

在这里插入图片描述

区别

  • 定义不同。封装类是对象,基本数据类型不是;
  • 赋值不同。封装类需要先new初始化再赋值,基本数据类型可以直接赋值,某些集合类型必须使用包装类,不能使用基本数据类型,如ArrayList
  • 初始值不同。包装类初始值默认为null,基本数据类型根据类型不同而值不同;
  • 存储方式和位置不用。封装类分拆引用和实例,引用存储在栈(stack),具体实例存储在堆(heap),基本数据类型存储在栈中(stack)

原始数据类型在传递参数时都是按值传递,封装类都是按引用传递。

默认声明的小数是double类型的,因此对float类型的变量进行初始化时需要进行类型转换。

float类型变量有两种初始化方法:float f = 1.0f 或者 float f =(float) 1.0 。

"=="和"equal()"方法:

  • 基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较,因此Integer(0)会自动拆箱为int类型再进行比较,显然返回true。
  • 两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关。
  • 两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true。
  • 基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,再进行比较。

猜你喜欢

转载自blog.csdn.net/u014657752/article/details/125317941
今日推荐