Java包装类
2016-03-31 16:49
316 查看
包装类是比较容易被人忽视的一个东西
1、JAVA为什么会有这个东西
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。
2、它是啥
包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:
基本类型 包装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可。
3、区别:
基本类型一般都是把值放在栈空间的,而包装类是栈空间放地址,值放在这个地址指向的堆空间:
int i = 5;//直接在栈中分配空间
Integer i = new Integr(5);//对象是在堆内存中,而i(引用变量)是在栈内存中
比如: Integer 的默认值是 null,int的默认值0
4、它有哪些主要功能
这些类的用途主要包含两种:
作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。
包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
(其他后文提到的一些特性其实也属于这两种)
5、一般人会在什么时候注意、用到它
当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的外覆类了。Java中每种基本类型都有相应的外覆类。
面试题里考你自动拆装箱的时候
6、它的一大特点、难点:自动拆装箱
用不着先不管,暂时跳过,(好像也不难)。。
可以参考:
http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html
https://www.zhihu.com/question/27194744?sort=created
7、一个诡异
没有方法可以直接改变一个Integer对象的值,只能重新初始化一个新的
这个其实是我这次研究这个东西的主要目的,后来发现真的不可以
网上直接提这个的很少,有一些评论里提到了,然后我确实在JAVA7的API里找不到接口
1、JAVA为什么会有这个东西
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。
2、它是啥
包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:
基本类型 包装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可。
3、区别:
基本类型一般都是把值放在栈空间的,而包装类是栈空间放地址,值放在这个地址指向的堆空间:
int i = 5;//直接在栈中分配空间
Integer i = new Integr(5);//对象是在堆内存中,而i(引用变量)是在栈内存中
比如: Integer 的默认值是 null,int的默认值0
4、它有哪些主要功能
这些类的用途主要包含两种:
作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。
包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
(其他后文提到的一些特性其实也属于这两种)
5、一般人会在什么时候注意、用到它
当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的外覆类了。Java中每种基本类型都有相应的外覆类。
面试题里考你自动拆装箱的时候
6、它的一大特点、难点:自动拆装箱
用不着先不管,暂时跳过,(好像也不难)。。
可以参考:
http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html
https://www.zhihu.com/question/27194744?sort=created
7、一个诡异
没有方法可以直接改变一个Integer对象的值,只能重新初始化一个新的
这个其实是我这次研究这个东西的主要目的,后来发现真的不可以
网上直接提这个的很少,有一些评论里提到了,然后我确实在JAVA7的API里找不到接口
相关文章推荐
- maven安装以及eclipse配置maven
- RxJava简单应用 基础篇
- Spring4与Quartz整合时找不到spring-context jar包中quoart包
- synchronized
- 建立一个Hello World级别的Spring项目
- 【Java】 JTextField文本框实时监控
- 常用DOS命令
- Spring Bean 创建过程
- Java解决火狐浏览器使用uploadify上传报错302以及报IO error错问题
- Java中的wait()方法与notify(),notifyAll()方法
- Web必知必会Cookie与Session
- Java多线程模拟实现消费者生产者问题
- Java的动态代理
- [Java]数据存储(栈,堆,常量池)
- 【eclipse】No enclosing instance of type A is accessible. Must qualify the allocation with an enclosing instance of type A
- SpringWeb ContextLoaderListener 初始化过程
- 认识java中的堆和栈
- SpringMVC DispatcherServlet 初始化过程
- java后台通过url获取返回数据
- java#2servlet