Bug*_*ggy 5 java primitive wrapper
我在网上搜遍了所有的答案,但所有答案都只是差异所在.我知道不同之处,但我不明白他们的应用程序的差异.
例如,假设我们必须采用两个浮点值,如果我们使用double,我们可以很容易地比较使用a==b,而如果我们使用Double,我们将不得不使用a.equals(b).
你可以在博客上找到它
1.首先
Double是引用类型,因此您可以将其用作模板参数
例如 :
public class Tmp<T> {
public Tmp() {
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想创建一个像那样的类.
然后你必须传递引用类型,同时创建in的对象.例如
new Tmp<Integer>()
Run Code Online (Sandbox Code Playgroud)
如果您创建对象,您将收到错误:
new Tmp<int>()
Run Code Online (Sandbox Code Playgroud)
2.第二
只有因为Wrapper类才可以进行通用数据类型编程.
例如,波纹管方法接受任何类型的数字(Byte, Integer, Double, Short, Float, Long, BigDecimal, BigInteger, AtomicInteger, AtomicLong)并返回该Integer数字的添加.
public Integer add(Number a, Number b){
return a.intValue() + b.intValue();
}
Run Code Online (Sandbox Code Playgroud)
3.第三
早期版本的Java不支持AutoBoxing和AutoUnboxing.因此,如果您使用该版本的Java,那么您可以轻松区分这两者.
例如,如果您使用Java 1.4或更早版本,则:
Integer a = 1; // Auto Boxing(Not Works)
Integer a2 = new Integer(2); // Boxing (It Works)
Run Code Online (Sandbox Code Playgroud)
第四
两者的存储也不同原始类型存储在Stack引用类型存储的位置Heap
5.第五
您可以使用该类的功能,例如将字符串解析为Integer,Double等,并使用相同的同意.
以下是Integer课程的功能和同意
6.第六
您可以Integer在无法进行序列化时进行序列化int
7.第七
您可以Integer作为RMI方法传递,但同样不可能int
注意:两个Integer及int可在实际上里面RMI说法另一个对象的一部分,Integer它们存储在值类int.
8.第八
变量int是可变的(事实并非如此final int),而变量Integer是不可变的.当我们更改值时,它将创建新对象.
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |