转载请保留原文链接: 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方法 该方法的作用是将字符串转换为对应的数值.
    代码示例:

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包装类相关推荐

  1. educoder实训平台java入门_educoder上的实训题目(学习-Java包装类之Byte类)

    学习-Java包装类之Byte类 编程要求 仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中完成 Byte 类与基本数据类型之间的转换,具体要求如下: 获取键盘第一次输入的 byt ...

  2. 近7000字长文详细讲解Java包装类,面试稳了

    零基础学习之Java包装类 概述 基本介绍 包装类的使用 装箱 介绍 代码示例 拆箱 介绍 代码示例 包装类常见的API 基本数据类型和字符串之间的转换 数据类型的最大值和最小值 转大小写 转进制 包 ...

  3. Java包装类与基本数据类型的自动 手动装箱与自动 手动拆箱

    Java包装类与基本数据类型的自动 手动装箱与自动 手动拆箱 **自动装箱与拆箱**,实现代码如下: /*** 装箱 : 基本数据类型-----> 包装类* 拆箱: 包装类-------> ...

  4. java+包装类,装箱和拆箱_Java包装类,装箱和拆箱详解

    下面要给大家讲到的就是Java内置包装类方面的知识,这章主要会讲到Java包装类装箱和拆箱方面的知识,一起来了解一下. Java为每种基本数据类型分别设计了对应的类,这就被叫做是包装类(Wrapper ...

  5. Java包装类及自动装箱、拆箱

    Java包装类 基本类型 大小 包装器类型 boolean / Boolean char 16bit Character byte 8bit Byte short /16bit Short int 3 ...

  6. Java 包装类型和基本数据类型的区别及分别什么时候应用

    Java是面向对象的编程语言,一切都是对象,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper cla ...

  7. 为什么需要java包装类,装箱拆箱,基本类型与字符串之间的转换,java数据类型

    为什么需要包装类? 首先,Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,将每个基本数据类型设计一个对应的类进行代表,这种方式增强了Java面向对象的性质. 其次,如果 ...

  8. Java包装类作为参数传递

    Java包装类作为参数传递 今天在回顾Java基础的时候发现了这么几行代码: public static void passReferenceValue(Boolean flg, Integer nu ...

  9. Java包装类的共同点

    渣渣海除了写点博客外,还有github哦,欢迎进去看看,如果有喜欢的,记得加个小星星哦. github地址:https://github.com/xuhaihan?tab=repositories 之 ...

最新文章

  1. 信息学奥赛一本通 2032:【例4.18】分解质因数
  2. 最近很热衷于研究相册效果:)
  3. 十大硬盘数据恢复软件简评
  4. 原理图端口符号_电气原理图与接线图的区别和联系
  5. 下载并安装IDA Pro 7.0
  6. 线性表表长是否要算入头结点
  7. c语言常量要const,C语言常量-C语言const-嗨客网
  8. [Unity][AssetBundle]本地其他项目AB包加载AB打包文件文件路径
  9. mysql 删除时间一个星期_我用财务管理系统花费一天时间做账,别人用一个星期也追赶不上...
  10. DGIOT物联网平台简介
  11. 【SQL数据库】数据库的创建、查询、插入等操作使用方法(结合黑皮书教材网站(db-book中的例子)在MySQL Workbench和shell中实现查询操作
  12. 数据结构与算法-二叉树
  13. 展现巨星风采!字母哥关键时刻挺身而出
  14. 网络云存储技术Windows server 2012 (项目七 存储服务器重复数据删除的配置与管理)
  15. python怎么换背景_python – 我如何在Mac OS X中编程改变背景?
  16. docker inspect container_name | grep Mounts -A 20
  17. 四则运算——结对项目报告
  18. 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。
  19. <动手学深度学习>之pytorch版本,配置d2lzh_pytorch包
  20. Vijos 捕风捉影

热门文章

  1. 全球及中国钒(V)蒸发材料行业发展动态分析及未来前景预测报告2021年版
  2. 安全中间件与应用服务间如用session
  3. 传递类型为参数的方法
  4. 发达国家农业模式-国际农民丰收节贸易会:全球农业未来
  5. 自定义requestAnimationFrame帧频
  6. linux面试题-基础题1
  7. Mysql 练习 总结
  8. 子元素的margin-top影响父元素原因和解决办法
  9. TEXTMETRIC 结构详解
  10. centos修改ip mac等