这个问题是一个问题的延续如何使用“”来初始化字符串? https://stackoverflow.com/questions/17489250/how-can-a-string-be-initialized-using/17489410
我想提请您注意,即使Integer
, Double
, Character
, Float
, Boolean
包装类也可以用同样的方式声明String
声明如下:
String s = "Test string"
Integer i = 10; //valid
Double d = 10.00; //valid
Boolean b = true; //valid
这些班级是否也受到像String
class.
正如我在之前的回答中指出的(如何使用“”来初始化字符串? https://stackoverflow.com/questions/17489250/how-can-a-string-be-initialized-using/17489410)
是的,要保留primitive
OOP 中的类型,设计者在之间建立了桥梁primitives
and Object's
with Wrappers
并且他们有特殊的待遇。
原因很清楚文档中解释了 http://docs.oracle.com/javase/tutorial/java/data/numberclasses.html.
然而,使用对象代替基元是有原因的,并且 Java 平台为每种基元数据类型提供了包装类。这些类将原语“包装”在对象中。通常,包装是由编译器完成的 - 如果您在需要对象的地方使用原语,编译器会为您将原语装箱在其包装类中。同样,如果您在需要基元时使用数字对象,编译器会为您取消装箱该对象。有关更多信息,请参阅自动装箱和拆箱 http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
We use primitives
在我们的程序中广泛使用,因此允许像这样的语法可能是一个设计决策
Integer i = 10; //primitive style
Then memory
分配于compile
时间本身i因为它是一个primitive
类型,当他们发现Wrapper
类型声明带有Assignment operator
=
语法方面,这更方便和快乐(至少对我来说:))。
比起写作,
Integer i = new Integer(10); //Object creation style
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)