Java 中的包装类
Java 中的包装类
相信各位小伙伴们对基本数据类型都非常熟悉,例如 int、float、double、boolean、char 等。基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。。。,为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。
基本类型和包装类之间的对应关系:

包装类主要提供了两大类方法:
1. 将本类型和其他基本类型进行转换的方法
2. 将字符串和本类型及包装类互相转换的方法
我们以 Integer 包装类为例,来看下包装类的特性。
Integer 包装类的构造方法:

如下代码所示:

Integer包装类的常用方法:

Java 中基本类型和包装类之间的转换
基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦):

在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。
那什么是装箱和拆箱呢?我们分别来看下
装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
// 自动封箱/拆箱是JDK1.5的特性之一
// 将基本类型的数据直接赋值给了对应的引用类型的对象 --- 自动封箱
// 自动封箱在底层会默认调用Integer类身上的静态方法valueOf
Integer in = Integer.valueOf(i);
Integer in = i;

拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱
Integer in = new Integer(5);
// 将引用类型的对象直接赋值给了对应的基本类型的变量 --- 自动拆箱
// 自动拆箱在底层会默认调用对象身上的***Value()
// int i = in.intValue();
int i = in;

实例:
public class IntegerDemo2 {
public static void main(String[] args) {
// Integer i1 = Integer.valueOf
// 如果值不在-128~127范围内
// 底层的valueOf方法是调用了构造方法来返回一个新的对象
// 如果值在-128~127的范围内的时候
// 从cache数组中的对应下标位置上取值
Integer i1 = -125;
Integer i2 = -125;
System.out.println(i1 == i2);
Integer in = 400;
int i = 400;
// 当包装类和对应的基本类型在运算的时候会进行自动拆箱
System.out.println(in == i);
}
}
Java 中基本类型和字符串之间的转换
在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。
其中,基本类型转换为字符串有三种方法:
1. 使用包装类的 toString() 方法
2. 使用String类的 valueOf() 方法
3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串

再来看,将字符串转换成基本类型有两种方法:
1. 调用包装类的 parseXxx 静态方法
2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱

注:其他基本类型与字符串的相互转化方法都类似
实例:
public class IntegerDemo3 {
public static void main(String[] args) {
Integer in = new Integer("-284");
System.out.println(in);
int i = Integer.parseInt("259");
System.out.println(i);
Double dou = new Double("3.954");
System.out.println(dou);
// 不考虑大小写的情况只要不是true那么就是false
Boolean b = new Boolean("true");
System.out.println(b);
// NaN是唯一的一个值
// NaN与任何东西都不相等,包括自己本身
// System.out.println(Double.NaN == Double.NaN);
System.out.println(Double.isNaN(5.8 / 4.32));
}
}
运行结果:
-284
259
3.954
true
false
Character 方法
下面是Character类的方法:
| 序号 | 方法与描述 |
|---|---|
| 1 | isLetter() 是否是一个字母 |
| 2 |
isDigit() 是否是一个数字字符 |
| 3 |
isWhitespace() 是否是一个空格 |
| 4 |
isUpperCase() 是否是大写字母 |
| 5 |
isLowerCase() 是否是小写字母 |
| 6 |
toUpperCase() 指定字母的大写形式 |
| 7 |
toLowerCase() 指定字母的小写形式 |
| 8 |
toString() 返回字符的字符串形式,字符串的长度仅为1 |
对于方法的完整列表,请参考的 java.lang.Character API 规范。
Java 中的包装类的更多相关文章
- Java学习--Java 中的包装类
Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等.基本数据类型是不具备对象的特性的,比如基本类型不能调用方法.功能简 ...
- java中的包装类与装箱拆箱定义
JAVA 中int类型转String类型的通常方法,有三种: 1.String.valueOf(int i) 2.Integer.toString(int i) 3.i+"" ...
- 别说你不知道java中的包装类,wrapper type,以及容易在自动拆箱中出现的问题
很多时候,会有人问你,你知道什么是包装类吗? 或者高端一点问你你知道,wrapper type,是什么吗? 然后你就懵逼了,学了java很多时候都不知道这是啥. 其实问你的人,可能只是想问你,java ...
- 深入浅出 Java 中的包装类
前阵子,我们分享了<Java中的基本数据类型转换>这篇文章,对许多粉丝还是有带来帮助的,今天讲一下 Java 包装类的的由来,及自动装箱.拆箱的概念和原理. 什么是包装类型 Java 设计 ...
- java中Integer包装类的具体解说(java二进制操作,全部进制转换)
程序猿都非常懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往须要操作Integer,或者各种进制的转换等等.我今天就为大家具体解说一下Integer的使用吧.看代码: ...
- java中的包装类
每一个包装类都对应一种基本数据类型.包装类有:Integer.character.Byte.Short.Long.Floot.Double.Boolean这八种,分别对应的基本数据类型是:int.ch ...
- wsdl 关于nillable和minOccurs 在.NET和java中的不同
术语约定文章中会反复出现[值类型].[包装类型].[普通引用类型].[元素节点]和[元素取值]的表述1> [值类型]指的是java和.NET中的基本数据类型,如:int:2> [包装类型] ...
- java 中的常用类
Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等. 基本数据类型是不具备对象的特性的,比如基本类型不能调用方法.功能 ...
- Java 中你必须了解的常用类(8)
Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等.基本数据类型是不具备对象的特性的, 比如基本类型不能调用方法.功能 ...
随机推荐
- 我的第一个Windows服务
代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...
- hdu 6301 Distinct Values(贪心)题解
题意:长为n的串,给你m个区间,这些区间内元素不重复,问这样的串字典序最小为? 思路:用set保存当前能插入的元素,这样就能直接插入最小元素了.对操作按l排序,因为排过的不用排,所以两个指针L,R是一 ...
- JS判定注册表单的几个方式 及 Ajax进行用户名存在判定
最近感觉不赶紧把代码逻辑记一下梳理一下,再做的时候就容易进入"逻辑误区". 有个表单,简单点. <!DOCTYPE html> <!-- 注册表单验证,用户名格式 ...
- 重器--biomart
biomart 重器 biomaRt工具包的作用在于它可以轻松地完成的在多个生物学数据库上繁琐地检索,获取相关数据在不同数据库间的关联.
- Ubuntu终端常用的快捷键,光标移动到开始位置
光标操作,实用 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 删除 Ctrl+k 删除此处至末尾的所有内容 Ctrl+u 删除此处至开始的所有内容 删除单个 Ctrl+d 删除当前 ...
- hdu 6386 Age of Moyu (重边判断)
本来用一个map判重边结果T了, 实际上可以直接给边上打标记即可 int n, m; struct _ {int to,w,vis;}; vector<_> g[N]; int dis[N ...
- word问题禁止宏
[在此处输入文章标题] 解决Word2010关闭文档时提示:"您正在试图运行的函数包含有宏或需要宏支持的内容" http://www.cnblogs.com/rhxuza1993/ ...
- windows下查看端口是否被占,以及端口被哪个程序占用
如何查看端口被是否被占用 在 “ 命令提示符 ” 中输入 “netstat -an”, 即可显示本机所有开放端口.下表是具体的说明. 数据列 说明 propo 指连接使用的协议名称 local add ...
- 互评Alpha版本
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2323] 队名:二次元梦之队 组长:刘莹莹 组员:周昊 潘世维 王玉潘 赵美增 ...
- Http协议——Header说明
下图是我用IE的开发人员工具截取的一个Http Request请求的Header. 下图是我用IE的开发人员工具截取的一个Http Response的Header. header常用指令 header ...