关于Java包装类的理解

时间:2022-04-23 15:43:55

在学习了一段时间的Android之后,深知在Java基础体系中部分知识的缺失而使我在学习过程中碰到了许多不能理解的概念,就在最近,我打算重新学习Java语言的一些基础,就我现在大概几个星期系统的学习,Java语言体系大概分为几个方面:

1.常量与变量
2.运算符
3.条件控制语句
4.数组
5.方法
6.面向对象的概念
7.封装
8.继承
9.多态
10.异常处理
11.String字符串
12.包装类

我是通过慕课网进行学习的,里面的Java语言是比较系统的
(以下是链接!!!)
http://www.imooc.com/course/programdetail/pid/31
在这里我就不分开讲了,今天主要讲的是Java中一个很重要的部分–包装类
我将包装类分为几个部分:
1.什么是包装类
2.基本类型与包装类之间的转换
3.基本类型与字符串之间的转换

1.什么是包装类

在我们学习常量与变量的部分时,要声明一个变量的话,应该怎么做?
变量类型 变量名 = 变量值;
我们要先声明变量需要一个变量类型–也就是数据类型,还有变量名,然后再进行初始化
那么这里有一个知识点:数据类型
数据类型分为两个:基本数据类型与引用数据类型
基本数据类型包括:数值型,字符型与布尔型
引用数据类型包括:类,数组与接口
那么在我们声明变量所使用的Int,double,float,char,boolean…都是属于基本类型的
(在这里关于堆栈内存问题不进行讨论!!!)
咦,那么我们命名字符串的时候所使用的String是什么?
String是声明一个字符串的数据类型,但是跟其他的比如Int,double有什么区别呢?
String在数据类型中是属于引用类型,是Java为了方便程序员进行操作所定义的一个类,String所声明的变量,就是创建了一个对象,它可以使用String类中的一些内置方法,但是,声明Int,double的变量,只是一个变量并不具有对象的性质。
那么声明Int,double这些基本类型可不可以创建对象呢
Java为Int,double,float,char等数据类型定义了对应的包装类
这些包装类可以为数值型,字符型与布尔型创建对象,使其具有对象的性质,并且可以调用一些方法
以下是基本类型与所对应的包装类:

关于Java包装类的理解

2.基本类型与包装类之间的转换

那么基本类型可以转换为包装类吗?应该怎么转换呢?
那么基本类型是可以转换为包装类的,那么我们将分为两个方面解说:
(1)基本类型转换为包装类
(2)包装类转换为基本类型
那么在这里还有一个概念,Java后续版本中加入了装箱与拆箱
那么这里该怎么理解装箱跟拆箱?
装箱是指基本类型转换为包装类,使其具有对象的性质
拆箱是指包装类转换为基本类型的值
(1)基本类型转换为包装类,也就是装箱
装箱也分为两个,一个是手动装箱,一个是自动装箱
那么我们从代码来理解

int a = 0;
Integer b = new Integer(a);//手动装箱
Integer c = a;//自动装箱

那么怎么理解呢
手动装箱的意思,就是你必须手动的new一个对象
那么自动装箱,就是程序默认将其自动的创建一个对象

(2)包装类转换为基本类型
拆箱也分为两个,手动拆箱与自动拆箱

Double d = 9.2;
double e = d.doubleValue();//手动拆箱
double f = d;//自动拆箱

这个跟上面同理
手动与自动的将包装类转换为基本类型

3.基本类型与字符串之间的转换

String类中内置的方法很多,所以会有时候我们会选择将基本类型转换为字符串然后使用内置的方法
那么这里我们也分为两个方面:
(1)基本类型转换为字符串
(2)字符串转换为基本类型

(1)基本类型转换为字符串
基本类型转换为字符串的方法有三种方法:
①使用包装类中的toString()方法
②使用String类的valueOf()方法
③加入空字符

String i = Integer.toString(h);//使用包装类中的toString()方法
String i = String.valueOf(h);//使用String类的valueOf()方法
String i = h + "";//加入空字符

(2)字符串转换为基本类型
包装类转换为基本类型有两种方法:
①使用包装类中的parseXXX()方法
②使用包装类中的valueOf()方法

int j = Integer.parseInt(i);//使用包装类中的parseXXX()方法
int j = Integer.valueOf(i);//使用包装类中的valueOf()方法

关于基本类型与字符串之间的转换就不多说原理了,这个主要还是转换方法需要知道
这里我们需要理解的包装类中主要的包装类的原理与转换

因为是小白,所以我的理解有点浅,希望各位前辈大神轻喷。