首页 > java 类型是直接使用基本类型还是就干脆直接用java.lang的类型

java 类型是直接使用基本类型还是就干脆直接用java.lang的类型

比如:

Integer => int
Boolean => boolean
...


一般都是直接使用基本类型的,很少用封装的,除非有需要


jdk 1.5 中。 出现了自动拆箱,装箱的机制。为的就是迎合 java 的核心思想,一切皆对象。
所以开发中,如果对性能不是要求很高的话,建议使用java.lang包中的包装类。


上面都说了许多,我说一个比较重要的一点,

Long i,long i 分别递加 ,分别运行一百万次,就会发现所需的时间相差非常非常大!
这是由于 Long对象运算时每次构造一个新的Long对象装long实例


在32位系统中 存储一个Integer类型的开销:
32位存储对象引用
32位存储对象标记信息:对象状态等
32位存储对象的锁信息
32位存储int值信息
也就是说,初始化一个Integer对象需要开销128位内存空间

而一个普通int类型数据,只需要32位的信息。

在这样的情况下,你觉得优先考虑用什么呢?


int是基本类型,Integer是对象,这是二者本质区别,具体使用见下图。


除非必要,不然一律使用基本类型。

  1. 避免类型转换带来的问题(特别是有些隐式转换增加了排除问题的难度)。比如转化后精读缺少,空指针等问题。
  2. 基本类型的存放在栈中,读写速度快。虽然这点速度很不明显.
  3. 基本类型是通过值传递。好处是通过参数传递的时候,在方法内部改写了参数的状态值,不会影响到外部的参数。而且在并发中也比较好控制。

尽量使用原生类型。需要传引用或者放进容器中就用包装器。


两个原则:

  1. 在需要使用对象的时候用 boxed 类型,在不需要对象的地方尽量使用 unboxed 类型

  2. 在整个程序中,尽可少的进行 boxed <==> unboxed 转换,换句话说,就是在必须转换的时候才转换


  1. 很多时候是只能用Integer,如List<Integer>。

  2. 临时变量用int,如for(int i=0;;)

  3. 和其他变量对齐,如下代码看到就要吐血。

class O{
    int i;
    Integer j;
}

看你需要使用null不,需要就用包装类型吧


根据具体需要吧,不过我个人总是优先选择使用基本类型,因为这样比较占用的空间会更小,相对于包装类型来说,他们的构建速度也更快,比较包装类型是对象嘛,其次对于包装类都提供了能够从基本类型构造包装类型的静态方法,因此如果又需要使用包装类型,随即转化就行。


分不同场景吧


能用基本尽量用基本类型,如果需要用到包装类的时候再去转换吧


具体场合具体用。

一般bean里面基本类型即可。

如果字段涉及对象。那就用包装类型。

【热门文章】
【热门文章】