14.Java包装类
转载请保留原文链接: http://dashidan.com/article/java/basic/14.html
14.Java包装类
Java语言是一个面向对象的语言,但Java中的基本数据类型却是不面向对象的. 这在实际使用时存在很多的不便.
为了解决这个不足(例如:集合类中只能存放对象, 不能存放基本类型数据), 在设计类时为每个基本数据类型设计了一个对应的类进行代表, 这样八个和基本数据类型对应的类统称为包装类(Wrapper Class), 也翻译为外覆类或数据类型类.
① 包装类对应表
| 基本数据类型 | 包装类 |
| byte | Byte |
| boolean | Boolean |
| boolean | Boolean |
| short | Short |
| char | Character |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
在这八个类名中,除了Integer和Character类, 其它六个类的类名和基本数据类型相比, 只是类名的第一个字母大写.
② 包装类的使用
对于包装类说,这些类的用途主要包含两种:
作为和基本数据类型对应的类类型存在,方便涉及到对象的操作.
包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法.
由于八个包装类的使用比较类似,以最常用的`Integer`类为例, 介绍包装类的应用.
1.实现int和Integer类之间的转换
使用Integer类的构造方法和intValue()方法实现这些基本类型和包装类之间的相互转换.
代码示例:
/** 将int类型转换为Integer类型*/int intNum = 10;Integer integer = new Integer(intNum);/** 将Integer类型转换为int类型*/int intValue = integer.intValue();2.Integer类常用方法
parseInt方法 该方法的作用是将字符串转换为对应的数值.
代码示例:
如果字符串都包含的不是都是数字字符,则程序执行将出现异常报错.
toString方法 该方法的作用是将int类型转换为对应的String类型.
代码示例:
int m = 1000;String s = Integer.toString(m);//将int值转换为特定进制的字符串:整数转化为字符串 有2种方式:Integer.toString()方法和整数 + ""方式, 应该用那种呢? 先放结论: 用整数 + ""方式实现.
附带真像的代码:
package com.dashidan.lesson13;/*** 大屎蛋教程网-dashidan.com* <p>* Java教程基础篇: 13. Java包装类* 整数转化为字符串*/public class Demo2 {public static void main(String[] args) {int count = 100000;long t1 = System.currentTimeMillis();System.out.println("");for (int i = 0; i < count; i++) {Integer in = new Integer(100);String s1 = in.toString();}long t2 = System.currentTimeMillis();System.out.println(" t2 - t1 " + (t2 - t1));for (int i = 0; i < count; i++) {String s2 = 100 + "";}long t3 = System.currentTimeMillis();System.out.println(" t3 - t2 " + (t3 - t2));}}输出:
t2 - t1 12 t3 - t2 1`整数 + ""`方式比Integer.toString()的方式快了10倍左右.
③ 自动装包/拆包
JDK自1.5(5.0)版本引入了自动拆装箱(Autoboxing/unboxing)的语法, 也就是在进行基本数据类型和对应的包装类转换时, 系统将自动进行,大大方便了代码的书写.
/** int类型会自动转换为Integer类型*/int n = 12;/** Integer类型会自动转换为int类型*/Integer m = n;代码示例:
package com.dashidan.lesson13;/*** 大屎蛋教程网-dashidan.com* <p>* Java教程基础篇: 13. Java包装类*/public class Demo1 {public static void main(String[] args) {/** 将int类型转换为Integer类型*/int intNum = 10;Integer integer = new Integer(intNum);/** 将Integer类型转换为int类型*/int intValue = integer.intValue();System.out.println(" intNum " + intNum + " intValue " + intValue);/** 将字符串"666"按照十进制转换为int,则结果为666*/int n0 = Integer.parseInt("666");int n1 = Integer.parseInt("666", 10);/** 将字符串"12"按照十六进制转换为int,则结果为18*/int n2 = Integer.parseInt("12", 16);/** 将字符串"FF"按照十六进制转换为int,则结果为255*/int n3 = Integer.parseInt("FF", 16);System.out.println("n0 : " + n0 + " n1: " + n1 + " n2: " + n2 + " n3: " + n3);/** int类型会自动转换为Integer类型*/int n = 12;/** Integer类型会自动转换为int类型*/Integer m = n;if (m == n) {System.out.println(m == n);}}}输出:
intNum 10 intValue 10 n0 : 666 n1: 666 n2: 18 n3: 255 true④ 相关文章
Java从入门到精通目录
转载于:https://blog.51cto.com/13412341/1974174
总结
以上是生活随笔为你收集整理的14.Java包装类的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: MongoDB 文档的更新操作
- 下一篇: Java课程作业02