包装类概述、装箱与拆箱
文章目录
- 包装类
- 概述
- 装箱与拆箱
- 装箱
- 拆箱
- 自动装箱与自动拆箱
- 基本类型与字符串类型之间的相互转换
包装类
概述
基本数据类型使用方便,但是没有对应的方法来使用这些数据,因此我们可以使用一个类,把基本数据类型包装起来,这个类就叫做“包装类”。在包装类中可以定义一些基本的方法,来操作基本类型的数据。
基本数据类型 | 对应的包装类(java.lang包) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
装箱与拆箱
装箱:从基本类型转换为包装类对象
拆箱:从包装类对象转换为对应的基本类型
以Integer类为例:
装箱
构造方法:Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。传递的字符串,必须是基本类型的字符串,否则会抛出异常 "100" 正确 "a" 抛异常静态方法:static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。static Integer valueOf(String s) 返回保存指定的 String 的值的 Integer 对象。
拆箱
成员方法:int intValue() 以 int 类型返回该 Integer 的值。
public class Demo01Integer {public static void main(String[] args) {//装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)//构造方法Integer in1 = new Integer(1);//方法上有横线,说明方法过时了System.out.println(in1);//1 重写了toString方法Integer in2 = new Integer("1");System.out.println(in2);//1//静态方法Integer in3 = Integer.valueOf(1);System.out.println(in3);//Integer in4 = Integer.valueOf("a");//NumberFormatException数字格式化异常Integer in4 = Integer.valueOf("1");System.out.println(in4);//拆箱:在包装类中取出基本类型的数据(包装类->基本类型的数据)int i = in1.intValue();System.out.println(i);}
}
自动装箱与自动拆箱
概念:基本类型的数据和包装类之间可以自动的相互转换
(JDK1.5之后出现的新特性)
自动装箱: 直接把int类型的整数赋值包装类
Integer in = 1; 就相当于 Integer in = new Integer(1);自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本数据类型,在进行计算
in+2;就相当于 in.intVale() + 2 = 3
in = in.intVale() + 2 = 3 又是一个自动装箱ArrayList集合无法直接存储整数,可以存储Integer包装类
ArrayList<Integer> list = new ArrayList<>();list.add(1); //-->自动装箱 list.add(new Integer(1));int a = list.get(0); //-->自动拆箱 list.get(0).intValue();
基本类型与字符串类型之间的相互转换
基本类型->字符串(String)
1.基本类型的值+"" 最简单的方法(工作中常用)
2.包装类的静态方法toString(参数),不是Object类的toString() 重载
static String toString(int i) 返回一个表示指定整数的 String 对象。3.String类的静态方法valueOf(参数)
static String valueOf(int i) 返回 int 参数的字符串表示形式。
int i1 = 100;String s1 = i1+"";System.out.println(s1+200);//100200String s2 = Integer.toString(100);System.out.println(s2+200);//100200String s3 = String.valueOf(100);System.out.println(s3+200);//100200
字符串(String)->基本类型
使用包装类的静态方法parseXXX(“字符串”);<Character类不能用>
Integer类: static int parseInt(String s)
Double类: static double parseDouble(String s)
int i = Integer.parseInt(s1);System.out.println(i-10);int a = Integer.parseInt("a");//报错NumberFormatExceptionSystem.out.println(a);
包装类概述、装箱与拆箱相关推荐
- 1.1 Java包装类、装箱和拆箱
在 Java 的设计中提倡一种思想,即一切皆对象.但是从数据类型的划分中,我们知道 Java 中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?于是 Java 为每种基本 ...
- java+包装类,装箱和拆箱_Java包装类,装箱和拆箱详解
下面要给大家讲到的就是Java内置包装类方面的知识,这章主要会讲到Java包装类装箱和拆箱方面的知识,一起来了解一下. Java为每种基本数据类型分别设计了对应的类,这就被叫做是包装类(Wrapper ...
- 包装类-自动装箱、拆箱
文章目录 包装类 自动装箱 自动拆箱 包装类 8 种基本数据类型: byte short int long float double char boolean 在 java 中,专门为这 8 种基本数 ...
- 包装类说明以及包装类的装箱和拆箱
一.包概念理解 在java程序中,包是用于存放类的容器,包名要全部小写(规范),在磁盘上显示为层层深入的文件夹.包的存在是为了更容易识别类资源,一个类名资源非常宝贵,为了能够识别不同的人所编写的相同类 ...
- 包装类(装箱与拆箱)
包装类(装箱与拆箱) 包装类有八种,分别对应基本数据类型(Byte,Short,Boolean,Integer,Long,Float,Double,Character),这八种都继承了Number,下 ...
- Java包装类、装箱和拆箱
Java 的设计中提倡一种思想,即一切皆对象.但是从数据类型的划分中,我们知道 Java 中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?于是 Java 为每种基本数据 ...
- 一、基础篇--1.1Java基础-包装类的装箱和拆箱
包装类:java是典型的面向对象编程,但是八种基本数据类型并不支持面向对象编程.基本类型的数据不具备对象的特性,没有属性和方法.沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单.有效地进行常规数据 ...
- 30、Java高级特性——Java API、枚举、包装类、装箱和拆箱
目录 课前先导: 一.Java API 1.API 2.Java API 3.Java API常用包 二.枚举类型 1.枚举 2.枚举类 3.代码演示 3.1 创建枚举类 3.2 创建测试类 4. ...
- Java 包装类 自动装箱和拆箱
包装类(Wrapper Class) 包装类是针对于原生数据类型的包装. 因为有8个原生数据类型,所以对应有8个包装类. 所有的包装类(8个)都位于java.lang下. Java中的8个包装类分别是 ...
- [JavaSE](BigDecimal,包装类、装箱、拆箱、二分查找、冒泡排序、递归)
✨✨个人主页:沫洺的主页
最新文章
- python数据统计 矢量图_用python中的矢量化解决方案计算max draw down
- 强势崛起的Python会在十年内取代Java吗?
- sshd_config配置详解
- [LinqPad妙用]-在Net MVC中反射调用LinqPad中的Dump函数
- 心语收集13:有时候我真想忘了你,只记得这个世界,然而,我常常忘了整个世界,只记得你。...
- 北京正研究“车路协同”模式,将打造自动驾驶测试专用道路
- scala type关键字用于起别名
- Modelsim SE 下载安装、注册详细教程
- JTAG Bypass命令案例解析
- 简约html5动态个人简历,HTML5 简约风格的程序员简历模板
- SAXReader的使用
- CF#446 Gluttony(思维题)
- 这2个PDF转Word免费不限页数工具很多人没用过
- PostgreSQL年龄的处理
- 阿里云服务器Windows系统试用和配置
- 同步锁 (synchronized)
- 用Python玩我的世界(1.环境搭建)
- Xamarin是无懈可击还是鸡肋?浅谈对Xamarin的学习
- 【沐风老师】3DMAX一键种草插件GrassScatter使用方法详解
- 最后一天了,四个关键字回顾程序员小跃的2020