从零学Java 包装类

本文详细介绍了Java中的包装类,包括其定义、创建包装类的原因、基本操作(装箱、拆箱及自动装箱/拆箱)、类型转换(字符串转基本类型、基本类型转字符串等),以及面试中常见的包装类相关问题。
摘要由CSDN通过智能技术生成

Java 包装类

1 什么是包装类?

基本数据类型所对应的引用数据类型。

2 为什么需要包装类?

1.基本类型功能比较弱。 2.Object可统一所有数据,包装类的默认值是null。

3 包装类对应

基本数据类型包装类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter

4 包装类的基本操作

4.1 装箱

装箱: 把基本类型转换成包装类型, 把数据从栈中放到堆里;

eg: 手动装箱

int n = 100;
//手动装箱
Integer integer = new Integer(n);

4.2 拆箱

拆箱: 把包装类型转换成基本类型, 把数据堆从中放到栈里;

eg: 手动拆箱

//手动拆箱
int m = integer.intValue();

4.3 自动装箱/拆箱

JDK 1.5之后,自动装箱、拆箱。基本数据类型和包装类自动转换

//自动装箱
Integer integer2 = 50;//Integer.valueOf();
//自动拆箱
int y = integer2; //integer.intValue();
面试题

eg:

Integer integer3 = 100;
Integer integer4 = 100;
Integer integer5 = 200;
Integer integer6 = 200;
//判断下面输出语句的结果
System.out.println(integer3 == integer4);
System.out.println(integer5 == integer6);

res:

true
false
整数缓冲区

Java预先创建了256个常用的整数包装类型对象。范围 -128 ~ 127

目的:提高效率,节省内存,实现对已创建的对象进行复用。

自动装箱是使用的是 Integer.valueOf(); 这个方法, 当包装的数据在-128 ~ 127 的范围内, 直接指向缓冲区中的对象,
若超出范围就 return new Integer();

因此, 在上面的面试题中, 当integer3和integer4的值为100时, 相当于同时指向了缓冲区中值为100的同一个整数包装类型对象,
所有当使用 == 比较时(引用数据类型为比较地址), integer3和integer4指向的地址相同, 返回值为true;

当数值超出缓冲区, 自动包装就会新new一个Integer对象, 所有integer5和integer6相当于两个新的Integer对象, 地址不同,
返回值为false;

5 包装类的类型转换

注意:需保证类型兼容,否则抛出NumberFormatException异常。

5.1 字符串转基本数据类型

eg:

//字符串转基本数据类型
String s = "100";
//注意:需保证类型兼容,否则抛出NumberFormatException异常。
int n = Integer.parseInt(s);

5.2 基本数据类型转字符串

5.2.1 方法一: +号字符串拼接

eg:

String s2 = 100 + "";
5.2.2 方法二: 使用提供的方法

eg:

String s3 = Integer.toString(n);

5.3 其他的转换

5.3.1 字符串转成boolean

注意: 只要字符串不是"true",都是false

eg:

//字符串转成boolean
boolean b1=Boolean.parseBoolean("true");//true
boolean b2=Boolean.parseBoolean("false");//false
boolean b3=Boolean.parseBoolean("xxx");//只要字符串不是"true",都是false
5.3.2 Character实现大小写转换

eg:

//Character实现大小写转换
System.out.println(Character.toUpperCase('a'));
System.out.println(Character.toLowerCase('A'));
5.3.2 Character实现大小写转换
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贰贰柒丶阿拽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值