大家好,我还是java的初学者,有没有人能给我解释一下,自动装箱和取消装箱之间有什么区别,什么时候使用?
//this is my sample code
ArrayList<Double> listOfDoubles = new ArrayList<Double>();
for(double i = 0.0; i <= 10.0; i += 0.5) {
listOfDoubles.add(Double.valueOf(i)); // this why we could use double value of?
}
对于doubles,Autoboxing意味着隐式(不需要强制转换,也不需要任何炫耀我们正在做的事情)将double值(基元类型)转换为double值(相应的对象类型)。
自动取消装箱则相反:隐式地将Double值转换为Double值。
当要将基元转换为对象或对象转换为基元时,可以使用它。通常,当希望在列表中存储double值时,列表不能存储基元,但可以存储对象,因此可以将double值转换为double值,并将其存储在列表中。而不是在程序中明确地说,“嘿,我的双倍,在你把它存放在能容纳双倍的地方之前,先把它做成双倍!”
仅仅因为现代Java不再需要它,就突然禁止它并破坏使用它的旧程序是没有意义的。
问题内容: 自动装箱是Java编译器在原始类型及其对应的对象包装器类之间进行的自动转换。例如,将int转换为Integer,将double转换为Double,依此类推。如果转换结果相反,则称为拆箱。 那么,为什么我们需要它?为什么要在Java中使用自动装箱和拆箱呢? 问题答案: 需要一些上下文来充分理解其背后的主要原因。 基元与类 Java中的原始变量包含值(整数,双精度浮点二进制数等)。由于这些
本文向大家介绍C#中什么是装箱和拆箱?相关面试题,主要包含被问及C#中什么是装箱和拆箱?时的应答技巧和注意事项,需要的朋友参考一下 答: 装箱:把值类型转换成引用类型 拆箱:把引用类型转换成值类型 装箱:对值类型在堆中分配一个对象实例,并将该值复制到新的对象中。 (1)第一步:新分配托管堆内存(大小为值类型实例大小加上一个方法表指针。 (2)第二步:将值类型的实例字段拷贝到新分配的内存中。 (3)
本文向大家介绍什么是装箱(boxing)和拆箱(unboxing)? (*)相关面试题,主要包含被问及什么是装箱(boxing)和拆箱(unboxing)? (*)时的应答技巧和注意事项,需要的朋友参考一下 Object是引用类型,但是它的子类Int32竟然不能去Object能去的“要求必须是引用类型” 的地方,违反了继承的原则,所以需要把Int32装在Object中才能传递。 装箱:从值类型接口
本文向大家介绍自动装箱和拆箱?相关面试题,主要包含被问及自动装箱和拆箱?时的应答技巧和注意事项,需要的朋友参考一下 自动装箱是Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。 比如:把int转化成 Integer,double转化成 Double,等等。反之就是自动拆箱。 原始类型: boolean,char,byte,short,int,long,float,double
问题内容: 这不是什么是装箱和拆箱的问题,而是 为什么 Java和C#之类的语言需要这样做? 我对C ++,STL和Boost非常熟悉。 在C ++中,我可以很容易地编写这样的内容, 我对Java有一定的经验,但是我真的很惊讶,因为我不得不写这样的东西, 我的问题是,为什么它应该是一个对象,在谈到泛型时在技术上很难包含原始类型? 问题答案: 在谈到泛型时,从技术上讲很难包括原始类型吗? 在Java