Java基础-复习01-数据类型

一. 基本数据类型

  • byte - 1 - 8bit - 0
  • short - 2 - 16bit - 0
  • int - 4 - 32bit - 0
  • long - 8 -64bit - 0L
  • float - 4 -32bit - 0.0f
  • double - 8 - 64bit - 0.0d
  • char - 2 -16bit - \u0000
  • boolean - true(1) or false(0) - 1bit - false

问题1:Java中boolean类型占用多少个字节?
boolean只有true或false,即1或0,可以用1bit存储,但计算机处理数据的最小单位是1个字节,1个字节等于8位,实际存储的空间官方没有明确规定。

二. 包装类

  • Byte
  • Short
  • Integer
  • Long
  • Float
  • Double
  • Character
  • Boolean

装箱:基本类型 → 包装类

int i1 = 1;
//Integer i2 = new Integer(i1);
Integer i2 = Integer.valueOf(i1); //手动装箱

拆箱:包装类 → 基本类型

int i3 = i2.intValue(); //手动拆箱

基本类型与其对应的包装类间进行赋值时使用自动装箱(Autoboxing)与自动拆箱(Unboxing)完成

int i1 = 1;
Integer i2 = i1; //自动装箱
int i3 = i2;//自动拆箱

问题2:new Integer(127) 、 Integer.valueOf(127)、 Integer.valueOf(128)的区别?

/*new Integer()每次新建一个对象*/
/*Integer.value()首先创建并使用Integer缓存池(-127~128)中的对象,重复调用会取得同一
对象的引用,如果赋值超出缓存池,则valueOf()方法给缓存池new新对象,因此地址值改变*/
Integer x1 = new Integer(127);
Integer x2 = new Integer(127);
System.out.println(x1 == x2); //false
Integer x3 = Integer.valueOf(127);
Integer x4 = Integer.valueOf(127);
System.out.println(x3 == x4); //true
Integer x5 = Integer.valueOf(128);
Integer x6 = Integer.valueOf(128);
System.out.println(x5 == x6); //false

三. 引用数据类型

引用类型指向一个对象,指向对象的变量是引用变量,如

Person p = new Person("name"); //引用类型Person的引用变量p指向new出的Person对象

引用变量被声明类型后不能再改变类型,对象、数组均为引用数据类型,默认值为null

四. 数据类型的转换

1. 自动类型转换

运算时,先转换为同类型(低转高),再计算
低 byte, char, short -> int -> long -> float -> double 高,boolean无法类型转换

2. 强制类型转换

容量大的类型转换为容量小的类型时必须使用强制类型转换

/*强制类型转换要注意两点:精度损失、数据溢出*/
double i1 = 70.5; //浮点类型默认是double,可以不加d,float必须加f,如70.5f
int i2 = (int)i1; //70,精度损失,浮点数到整数的转换是直接舍弃小数得到

int i3 = 128byte i4 = (byte)i3; //溢出,byte一个字节,取值范围-128~127

3. 各类转换

List转int数组

List<Integer> list = new ArrayList<>();
list.stream().mapToInt(Integer::valueOf).toArray();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值