欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

14.Java包装类

发布时间:2025/3/20 java 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 14.Java包装类 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

转载请保留原文链接: http://dashidan.com/article/java/basic/14.html

14.Java包装类

Java语言是一个面向对象的语言,但Java中的基本数据类型却是不面向对象的. 这在实际使用时存在很多的不便.

为了解决这个不足(例如:集合类中只能存放对象, 不能存放基本类型数据), 在设计类时为每个基本数据类型设计了一个对应的类进行代表, 这样八个和基本数据类型对应的类统称为包装类(Wrapper Class), 也翻译为外覆类或数据类型类.

① 包装类对应表

包装类对应表
基本数据类型包装类
byteByte
booleanBoolean
booleanBoolean
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble

在这八个类名中,除了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方法 该方法的作用是将字符串转换为对应的数值.
    代码示例:

String s = "123";int n = Integer.parseInt(s);//将字符串"120"按照十进制转换为int,则结果为120int n = Integer.parseInt("120",10);//将字符串"12"按照十六进制转换为int,则结果为18int n = Integer.parseInt("12",16);//将字符串"ff"按照十六进制转换为int,则结果为255int n = Integer.parseInt("ff",16);

如果字符串都包含的不是都是数字字符,则程序执行将出现异常报错.

  • 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包装类的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。