包装类
包装类
基本类型存在栈空间里
包装类是一个引用类型,存放在堆中
包装类将基本数据类型包装在一个对象中
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); } }
整型缓冲区映射图
本文来自博客园,作者:望穿先生,转载请注明原文链接:https://www.cnblogs.com/wangchuanxiansheng/p/15839458.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理