博客
关于我
Java包装类-自动封箱拆箱
阅读量:354 次
发布时间:2019-03-04

本文共 839 字,大约阅读时间需要 2 分钟。

Java中的包装类

包装类是Java中用于处理基本数据类型的对象形式,允许开发者在代码中使用对象而不是原始数据类型。这些包装类不仅提供了对应的数据类型操作,还支持类型转换和字符串解析。

1. Java中的包装类

Java提供了多个包装类,每个包装类对应一个基本数据类型,例如Integer对应int,Long对应long。这些包装类都是抽象类Number的子类,继承了Number的抽象方法,确保所有包装类都具备统一的处理方式。

2. 构造方法

包装类可以通过两种方式构造:使用new关键字或调用静态方法valueOf。例如:

Integer i = new Integer(10);Integer i = Integer.valueOf(10);

3. 类型转换

包装类和基本数据类型之间可以互相转换:

  • 将包装类转换为基本数据类型,调用相应的intValue()等方法。
  • 将基本数据类型转换为包装类,使用相应的valueOf方法或静态方法。

4. 字符串解析

包装类提供parseXXX方法,用于将字符串解析为对应的数据类型:

Double.parseDouble("123.43");Integer.parseInt("123");

5. 自动装箱与拆箱

Java支持自动装箱和拆箱:

  • 装箱:将基本数据类型自动转换为包装类,编译器调用valueOf方法。
  • 拆箱:将包装类自动转换为基本数据类型,通过调用intValue等方法。

6. 关于对象引用地址的思考

在Java中,两个相同整数值的包装类对象可能有不同的引用地址,原因在于JVM的内存管理机制。对于-128到127之间的整数,JVM会预先将这些值的对象存储在方法区的常量池中,重复引用时会直接使用同一对象。超过该范围的整数值则会在堆中创建新对象,导致引用地址不同。

通过理解这些机制,可以更好地优化代码性能和内存使用。包装类提供的便利方法和自动装箱拆箱机制使代码更加简洁高效,尽管背后的细节对性能和内存管理有重要影响。

转载地址:http://vmeq.baihongyu.com/

你可能感兴趣的文章
npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
查看>>
NR,NF,FNR
查看>>
nrf开发笔记一开发软件
查看>>
NSDateFormatter的替代方法
查看>>
NSOperation基本操作
查看>>
NSSet集合 无序的 不能重复的
查看>>
NT AUTHORITY\NETWORK SERVICE 权限问题
查看>>
ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
查看>>
nullnullHuge Pages
查看>>
numpy 用法
查看>>
Numpy如何使用np.umprod重写range函数中i的python
查看>>
oauth2-shiro 添加 redis 实现版本
查看>>
OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
查看>>
OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
查看>>
OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
查看>>
OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
查看>>
OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
查看>>
OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
查看>>
OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
查看>>
OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
查看>>