我在网上搜索了它,但所有的答案只是差异。我知道不同之处,但我不了解他们的应用程序的差异。例如,假设我们必须采用两个浮点值,如果我们使用double,则可以使用a==b
轻松进行比较,而如果使用Double,则必须使用a.equals(b)
。原始数据类型和包装数据类型的用法有什么区别,以及包装数据类型的需要是什么?
回答
幕后还有更多。其中一个原因是集合API是如何在Java开发...
想想看,你就不能做到像什么:
List<int> myList
在Java中
。您将需要该包装
List<Integer> myList
,因为集合与对象,而不是基元工作。
在另一方面,包装是对象,提供开发者一个很好的组方法/常数,使“更快,更简单”的一些操作,例如:
int x = 17;
现在,由于你可以做包装:
String pars= Integer.toBinaryString(x);
pars= Integer.toHexString(x);
Integer.MAX_VALUE;
Integer.highestOneBit(x);
如果没有,你会得到在颈部疼痛,因为原始x
已经没有多少有助于你做到这一点。
在注意,这里有一些“Primitive Collections for Java”的实现:http://pcj.sourceforge.net –
当您使用Collections时,您必须使用对象而不是基元。
List<double> list = new ArrayList<double>; // not allowed
List<Double> list = new ArrayList<Double>; // allowed
Map<double, String> map = new HashMap<double, String>(); // not allowed
Map<Double, String> map = new HashMap<Double, String>(); // allowed
或者如果你想让你的Double
可以为空。可用于例如与Hibernate的实体和DTO or POJO
private int number; // default: 0
private Integer number; // default: null
Double
允许你做快速投
double.intValue();
double.toString();
你可以找到它blog
1.首先
Double是引用类型,因此您可以将其用作模板arg ument
例如:
public class Tmp<T> {
public Tmp() {
}
}
如果你想创建这样一个类。
然后你必须通过引用类型,同时创建in的对象。 例如
new Tmp<Integer>()
如果你创建了对象,你会得到一个错误:
new Tmp<int>()
2.第二
因为包装类只有它是可以做到的通用数据类型的编程。
例如波纹管方法接受任何类型的数字(Byte, Integer, Double, Short, Float, Long, BigDecimal, BigInteger, AtomicInteger, AtomicLong
)并返回Integer
加上该数字。
public Integer add(Number a, Number b){
return a.intValue() + b.intValue();
}
3.第三
在Java的早期版本是不支持自动装箱和AutoUnboxing。 因此,如果您使用该版本的Java,那么您可以轻松区分两者。
例如,如果您使用Java 1.4或更早随后版本:
Integer a = 1; // Auto Boxing(Not Works)
Integer a2 = new Integer(2); // Boxing (It Works)
4.第四
两者的储存也是不同的原始类型存储在Stack
而引用类型是在商店Heap
5.第五
您可以使用该类的功能,如将字符串解析为整数,双精度等,并使用相同的同意。
这里是Integer
类
6的功能,并同意第六
可以序列Integer
而这是不可能的int
7.第七
您可以通过Integer
为RMI方法,但同样是不可能的int
注:它们存储在int
值Integer
类里面其实RMI说法另一个对象的两个Integer
和int
可兼职。
8.第八
的int
变是可变的(这是不与final int
的情况下),而Integer
是不可变的。当我们改变这个值的时候它会创建一个新的对象。
- 1. 原始类型和包装类之间的主要区别是什么?
- 2. Haskell中的类型和数据类型有什么区别?
- 3. Rails数据类型有什么区别?
- 4. 最佳实践:使用什么,包装类或原始数据类型?
- 5. 为什么包装类不继承的基本数据类型?
- 6. jquery中的数据和数据类型有什么区别?
- 7. Java ArrayList:添加原始类型或其包装类:有什么区别?
- 8. 基元类和基元数据类型有什么区别?
- 9. 哪个更好?原始数据类型或包装类?
- 10. SSE数据类型和原始类型
- 11. javascript中的原始数据类型和引用数据类型
- 12. Oracle中长和长的原始数据类型有什么区别?
- 13. sqlalchemy的数据类型中的Varchar和String有什么区别?
- 14. COBOL包装的数据类型:Type = P5
- 15. 装配类型 - 有什么区别
- 16. 什么是数据类型以及如何初始化它?
- 17. 什么类和数据类型
- 18. Weblogic 10.0.0禁用包装数据类型
- 19. cl_datatype和通常数据类型之间的区别是什么
- 20. 原始类型和包装类
- 21. Cassandra数据类型中的INT和VARINT有什么区别?
- 22. 创建结构的“数据”和“类型”有什么区别?
- 23. webassembly数据类型中的uint32和i32有什么区别?
- 24. 包装原始数据类型的更改值
- 25. 什么是列数据类型Sharepoint列数据类型中的业务数据?
- 26. 什么类型的数据可以类类型存储?
- 27. “流类型”套接字和“数据报”套接字类型有什么区别?
- 28. 什么类型的数据库是data.frame?
- 29. 这是什么类型的数据库?
- 30. clock()的数据类型是什么?
希望上漂浮在''==比较仅仅是一个例子:) http://stackoverflow.com/questions/1088216/whats-wrong-with-using-to-compare-floats-in-java – jensgram