浅谈Java的包装类
一、什么是Java包装类
所谓Java包装类,就是将Java中的8种基本数据类型分别包装成为类的形式。包装类与基本数据类型的对应关系如下表所示。
|
基本数据类型 |
包装类 |
|
byte |
Byte |
|
short |
Short |
|
int |
Integer |
|
long |
Long |
|
float |
Float |
|
double |
Double |
|
char |
Character |
|
boolean |
Boolean |
其中,Byte、Short、Integer、Long、Float、Double是Number的子类,Character和Boolean是Object的子类。
二、为什么会有Java包装类
Java是一门面向对象的编程语言,提倡“一切皆对象”,而Java中的基本数据类型却不是对象,这就导致当我们要对基本数据类型进行操作的时候会存在诸多不便,比如说,我们要将整型数据转换为字符串,或者将字符串转换为整型、浮点型数据,或者获取某个整数的二进制、八进制、十六进制等等,都需要我们站在对象的角度进行操作,因此将基本数据类型包装成类,以便把基本数据类型当做对象来进行处理。
三、装箱与拆箱——实现基本数据类型与包装类之间的相互转换
基本数据类型和包装类之间的转换是通过装箱与拆箱来实现的。包装类提供了装箱和拆箱的方法,例如:
通过包装类的构造方法,我们可以实现装箱
Integer a = new Integer(6);//装箱
通过包装类的拆箱方法,我们可以实现拆箱
Float a = new Float(66.6f);//装箱
float b = a.floatValue();//拆箱
在JDK1.5之前,装箱与拆箱需要通过以上方式手动实现,在JDK1.5之后,Java提供了自动装箱和拆箱机制,例如:
Integer i = 60; //自动装箱
Float f = 66.6f;//自动装箱
int a = i;//自动拆箱
Float b = f;//自动拆箱
四、包装类的应用
在实际应用中,通过包装类,我们可以将字符串变为基本数据类型,例如:
int i = Integer.parseInt(“123”);//将”123”装换为int类型的数据
float f = Float.parseFloat(“456”);//将”456”转换为float类型的数据
也可以将基本数据类型变为字符串,例如:
String s = Integer.toString(123);//将123装换为字符串
还可以进行二进制、八进制、十进制、十六进制之间的转换,例如:
int m = 10;
String binaryString = Integer.toBinaryString(m);//获取m的二进制形式
String hexString = Integer.toHexString(m);//获取m的十六进制形式
String octalString = Integer.toOctalString(m)//获取m的八进制形式
除此之外,包装类提供的API还可以完成很多操作。
五、总结
Java的包装类是站在面向对象的角度上对基本数据类型的封装,是为了在程序中用面向对象的思想去操作基本数据类型。
浅谈Java的包装类的更多相关文章
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- 浅谈Java中的equals和==(转)
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...
- 浅谈Java中的对象和引用
浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...
- 浅谈Java中的equals和==
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...
- 浅谈JAVA集合框架
浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...
- 浅谈java性能分析
浅谈java性能分析,效能分析 在老师强烈的要求下做了效能分析,对上次写过的词频统计的程序进行分析以及改进. 对于效能分析:我个人很浅显的认为就是程序的运行效率,代码的执行效率等等. java做性能测 ...
- 浅谈Java中的深拷贝和浅拷贝(转载)
浅谈Java中的深拷贝和浅拷贝(转载) 原文链接: http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: ...
- !! 浅谈Java学习方法和后期面试技巧
浅谈Java学习方法和后期面试技巧 昨天查看3303回复33 部落用户大酋长 下面简单列举一下大家学习java的一个系统知识点的一些介绍 一.java基础部分:java基础的时候,有些知识点是非常重要 ...
- 浅谈Java中的深拷贝和浅拷贝
转载: 浅谈Java中的深拷贝和浅拷贝 假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(bool ...
随机推荐
- HackerRank "Poisonous Plants"
I had the same BFS idea as one of the AC code this: because dying pattern is spead from the initial ...
- elixir学习
安装 brew install elixir atom配置 language-elixir atom-elixir elixir的shell iex :erlang.system_info(:otp_ ...
- postgresql数据库文件目录
不同的发行版位置不同 查看进程 ps auxw | grep postgres | grep -- -D 找到默认的目录 /usr/lib/postgresql/9.4/bin/postgres -D ...
- oracle学习笔记(一)配置监听
服务器端: 监听器 lsnrctl 启动监听 lsnrctl start [LISTENER] 查看监听 lsnrctl status 或者 lsnrctl service C:\Docu ...
- RMQ问题ST算法 (还需要进一步完善)
/* RMQ(Range Minimum/Maximum Query)问题: RMQ问题是求给定区间中的最值问题.当然,最简单的算法是O(n)的,但是对于查询次数很多(设置多大100万次),O(n)的 ...
- 黄聪:优化清理WordPress数据库wp_options表(缩小autoload体积)
使得wp_options表变得庞大的重要原因:无用的RSS Feed Cache.如果你在wp_options表中发现了大量option_name包含“_transient”的数据,那就是它没跑了.先 ...
- HDU 1532 Drainage Ditches EK算法 flod算法
题意:输入m n, m是边数,n是点数. 接下来m行: 起点,终点,容量.求以 1 为源点, n为汇点的最大流. #include<stdio.h> #include<string. ...
- 网页设计中常用的Web安全字体
但多数情况下,考虑各个因素的影响我们还是在尽量充分利用这些默认调用的字体实现CSS的编写,这里整理了19个Web安全字体,让你无需任何顾虑的情况下畅快使用. 1, Arial 微软公司的网页核心字体 ...
- 深入理解Javascript
http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 1.编写高质量JavaScript代码的基本要点 2.Javascript函数 ...
- Configuration problem: Only one AsyncAnnotationBeanPostProcessor may exist within the context.
去配置文件中找 , 某个配置文件被引用了两次以上.移除后保留一个即可.如下即可产生上述问题 <import resource="classpath:testContext-curren ...