Java的封装类型和原始类型的区别?那种性能好?

时间:2023-01-20 21:55:53
Java的封装类型和原始类型的区别?那种性能好?

Java的封装类型和原始类型的区别?在JavaWeb程序当中,pojo(javabean)实体类中,是声明为封装类型好还是原始类型好?(比如:int-Integer)  
例如:  
复制代码
public class User{
private int id;
private Integer id1;
}
 
int 默认初始化为0;Integer初始化为null;  
如果在web前端通过ajax请求到后台的时候,参数传递为 id=&di1=  
后台获取参数值时:  
id=1  
id1=null  
然后,保存到数据库时,Integer是不是要拆包为int类型?  
请问声明为那种类型更好,更适合程序的处理和性能?  
 
请问各位Java大神分析分析,求指导!

原求助地址:http://bbs.ibeifeng.com/read-htm-tid-65299.html

10 个解决方案

#1


我也没有仔细推敲过
但是觉得有以下几个方面:
1. 如果这个字段可以为空,那么就用封装类型,这样的话可以得到NULL ,而不是 0 或者其他值
2. 如果使用封装类型的话,在做po的比较的时候 ,特别是该属性的比较的时,一定要用equals或者用他们的 value来比较, 因为是对象
3. 其实还是根据实际情况来做判断 没有优劣 只有适不适合

#2


若说性能好,理论上来说当然基本类型的性能更好,但是这个在一般的应用中都是可以忽略不计的。

#3


封装类型数据提供了一些方法,基本数据类型没有

#4


如果值有可能是空  就必须用包装类型

#5


显然原始类型性能更好

#6


引用 1 楼 hardycheng 的回复:
我也没有仔细推敲过
但是觉得有以下几个方面:
1. 如果这个字段可以为空,那么就用封装类型,这样的话可以得到NULL ,而不是 0 或者其他值
2. 如果使用封装类型的话,在做po的比较的时候 ,特别是该属性的比较的时,一定要用equals或者用他们的 value来比较, 因为是对象
3. 其实还是根据实际情况来做判断 没有优劣 只有适不适合


一般确实需要考虑,像null很容易引起调用出现空指针的问题,但是封装的类型就有很多可用的方法,所有有时候是需要把两者结合的,可以定义成基本类型,在需要方法时进行转化,也挺好的

#7


声明为基本类型的吧,这样性能会比较好,确实需要用到封装类型的方法的时候转换一下类型就行,这种转换很方便。
int i;
Integer it;
i = 0;
it =  new Integer(i); // 对i进行封装

#8


性能肯定是基本变量操作更快一些,但是在java中是以面向对象为中心的,有些操作必须建立在对象上才能有意义!

#9


我们通常的习惯是使用原始类型,不存在性能问题。那么封装类型和原始数据类型有什么区别呢?是因为封装数据类型提供了collections的一些方法

#10


用原始类型快,之所以有wrapper,是因为collection只认对象,不认原始类型变量。

#1


我也没有仔细推敲过
但是觉得有以下几个方面:
1. 如果这个字段可以为空,那么就用封装类型,这样的话可以得到NULL ,而不是 0 或者其他值
2. 如果使用封装类型的话,在做po的比较的时候 ,特别是该属性的比较的时,一定要用equals或者用他们的 value来比较, 因为是对象
3. 其实还是根据实际情况来做判断 没有优劣 只有适不适合

#2


若说性能好,理论上来说当然基本类型的性能更好,但是这个在一般的应用中都是可以忽略不计的。

#3


封装类型数据提供了一些方法,基本数据类型没有

#4


如果值有可能是空  就必须用包装类型

#5


显然原始类型性能更好

#6


引用 1 楼 hardycheng 的回复:
我也没有仔细推敲过
但是觉得有以下几个方面:
1. 如果这个字段可以为空,那么就用封装类型,这样的话可以得到NULL ,而不是 0 或者其他值
2. 如果使用封装类型的话,在做po的比较的时候 ,特别是该属性的比较的时,一定要用equals或者用他们的 value来比较, 因为是对象
3. 其实还是根据实际情况来做判断 没有优劣 只有适不适合


一般确实需要考虑,像null很容易引起调用出现空指针的问题,但是封装的类型就有很多可用的方法,所有有时候是需要把两者结合的,可以定义成基本类型,在需要方法时进行转化,也挺好的

#7


声明为基本类型的吧,这样性能会比较好,确实需要用到封装类型的方法的时候转换一下类型就行,这种转换很方便。
int i;
Integer it;
i = 0;
it =  new Integer(i); // 对i进行封装

#8


性能肯定是基本变量操作更快一些,但是在java中是以面向对象为中心的,有些操作必须建立在对象上才能有意义!

#9


我们通常的习惯是使用原始类型,不存在性能问题。那么封装类型和原始数据类型有什么区别呢?是因为封装数据类型提供了collections的一些方法

#10


用原始类型快,之所以有wrapper,是因为collection只认对象,不认原始类型变量。