码迷,mamicode.com
首页 > 编程语言 > 详细

浅谈Java中的数据类型

时间:2018-06-14 11:41:35      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:prim   array   分享   highlight   com   包装类   包装   box   new   

主要内容来自MIT6.031 Software Construction课程及HIT 软件构造课程。

 

Java的数据类型有两种,分为基本数据类型(primitive types)及对象数据类型(object types)。例如int ,float,boolean等类型就是基本数据类型,而String ,Integer ,BigInteger等类型就是对象数据类型。

下面介绍一下这两点的异同:

技术分享图片

基本数据类型都是不可变的(Immutable),而对象数据类型一些是可变的(mutable),一些则不是。基本数据类型存储在栈(Stack)中,而对象数据类型存储在堆(heap)中,由Java的垃圾收集机制管理(garbage collector)。基本数据类型通常不能实现一些复杂的表述,而对象数据类型则可以以泛型的形式表示一些复杂概念。基本数据类型一般来时花费很小,而对象数据类型花费较大。

 

对象数据类型里还有一种由基本数据类型的封装的包装数据类(Boxed primitive),例如 Boolean , Integer,Short,Long,Float。主要是在Collection中使用。一般不要主动去使用包装类,因为这样做的代价很高。需要编译器做出自动转换。

例如:

List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);


/////////
list.add(Integer.valueOf(1));
list.add(Integer.valueOf(2));

我们通常会选择第一种写法,但这样其实是一种代价更高的写法。因为1和2根本不是对象,编译器进行了自动转换,降低了效率。下面的写法才是效率更高的一种写法。

浅谈Java中的数据类型

标签:prim   array   分享   highlight   com   包装类   包装   box   new   

原文地址:https://www.cnblogs.com/siren27/p/9181117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!