首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

8.49 优先运用基本数据类型代替封装对象类型

2013-08-16 
8.49 优先使用基本数据类型代替封装对象类型JDK5后基本数据类型都有一个对应的封装对象类型(boxed primiti

8.49 优先使用基本数据类型代替封装对象类型

JDK5后基本数据类型都有一个对应的封装对象类型(boxed primitive),如int对应Integer。两者区别包括:

1.基本数据类型仅有数据值,而封装对象类型可能具有相同的数据值但是却是不同的对象,如:

Long sum = 0L;//注意sum为Long类型for (long i = 0; i < Integer.MAX_VALUE; i++) {sum += i;}

?

以上代码每次计算过程,sum会先转换为long类型然后与i相加(因为i是long类型),计算结果会被转换为Long类型再赋给sum。即每次计算有2次转换过程,导致性能降低。

?

基本原则:

1.不要把基本数据类型和封装对象类型进行频繁比较(如上例的计算操作),否则会严重降低性能

2.注意当对两个封装对象类型进行“==”操作时,比较的是内存里两个对象是否相同,而不是比较对象拥有的数据值。应使用equals(), compareTo()比较封装对象类型的数据值

3.Collection,Map(特别是key值)所包含的元素仅能是封装对象类型,在添加、删除元素时不要使用基本数据类型的值

?

?

?

热点排行