包装类

包装类

基本类型存在栈空间里

包装类是一个引用类型,存放在堆中

包装类将基本数据类型包装在一个对象中

8种包装类提供不同类型间的转换方式:

Number父类中提供的6个共性方法。

parseXXX()静态方法。(将字符串转换成基本类型)
valueof()静态方法。(将基本类型转换成引用类型)

public class Application {
public static void main(String[] args) {
int num=10;
//装箱
Integer integer = new Integer(num);
Integer integer1=Integer.valueOf(num); //将整型转换成引用类型
//拆箱
int num2=integer1.intValue(); //将引用类型转换为整型
}
}

基本类型和字符串之间的转换

通过基本类型封装对象的parsXXX()方法进行字符串向基本数据类型的转换

public class Common_Class {
public static void main(String[] args) {
//将基本类型转换成字符串
//1.通过“+”号连接
//2.通过toString()方法
int num=10;
String s1=num+"";
String s2=Integer.toString(num);
String s3=Integer.toString(num,16); //toString()的重载方法,此处是将整型转换成16进制表示后,再变成字符串类型
System.out.println(s1+" "+s2+" "+s3);
//将字符串转换成基本类型
//通过parseXXX()方法进行转换
int num_a=Integer.parseInt(s1); //将字符串s1转换成整型
float num_b=Float.parseFloat(s1); //将字符串s1转换成浮点类型
}
}

:boolean类型的字符串转换成基本类型的时候,只有字符串"true"会转换成boolean类型的true,其他的boolean类型的字符串都会转换成false

Integer整数缓冲区

Java预先创建了256个常用的整数包装类型对象

(缓冲区中的数为-128~127,如果新创建的引用类型数据在这个区间内,则直接在堆空间中取这个数映射到栈空间中,如果不在这个区间内则在堆空间中新开辟一个空间)

注:只有通过valueof()方法定义的整型引用类型才会有缓冲区

public class Integer_Demo {
public static void main(String[] args) {
//通过实例化一个引用类型对象,没有缓冲区,所以输出false
Integer int1=new Integer(127);
Integer int2=new Integer(127);
System.out.println(int1==int2); //等于号是比地址equals()方法比的是字符串的值
/*Integer.java文件中的valueof()方法
public static Integer valueOf(int i) {
if (i >= Integer.IntegerCache.low && i <= Integer.IntegerCache.high)
return Integer.IntegerCache.cache[i + (-Integer.IntegerCache.low)];
return new Integer(i);
}*/
//只有通过valueof()方法定义的引用类型才会有整型缓冲区
//128不在整型缓冲区提供的区间内,输出false
Integer int3=Integer.valueOf(128);
Integer int4=Integer.valueOf(128);
System.out.println(int3==int4);
//111在整型缓冲区提供的区间内,所以输出true
Integer int5=Integer.valueOf(111);
Integer int6=Integer.valueOf(111);
System.out.println(int5==int6);
}
}

整型缓冲区映射图

posted @   望穿先生  阅读(23)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示