![]() |
1
1
TL;博士
当你分配一个
但有些特别的东西
是
当将一个原语指派给它的包装类的对象时发生:将原语自动装箱到对象中。这发生在前三行中,您在其中填充
如果您的环境受到如此严格的限制(内存有限),您应该
不
使用任何一个首字母大写类名:
当
细节
你需要了解 primitive types 和 object types . Java提供了两种 type systems 是的。基本值(请参见 Tutorial )是 不 面向对象。原语被设计成java是为了(a)不擅长oop的程序员学习新的java语言,(b)从具有类似类型系统的其他语言移植代码。( such as C )中。此外,原语的优点是占用很少的内存,并且使用起来很快。相反,对象需要更多的内存,并没有执行的速度快,但更灵活和复杂。 有些人认为,可以设计一种编程语言,使其兼有两者的优点,只公开对象类型,而用原始类型支持其中的一些类型,但是 不 Java(当前)做什么,所以这里我们将把这个话题放在一边。
Java在同一代码中混合了原语和对象类型。甚至每个数值原语都有等效的对象类型。注意字母大小写约定,其中小写表示基元类型,而大写表示对象类型。下面列出的每个初始cap类都是
如果我们已经有了原语,为什么还要麻烦包装类呢?与其他需要对象的代码兼容。最大的例子是 Java Collections Framework 是的。 最近几代Java添加 auto-boxing 通过在编译时生成转换代码来弥合类型系统之间的差距。自动装箱将原始数据类型转换为它们的匹配包装器类。 增加了自动装箱,使人类程序员的生活更容易,但在运行时为计算机提供更多的工作。装箱意味着查找匹配的类,实例化该类的对象,并将原始值的赋值赋给该对象。拆解意味着相反,必须从对象中提取值,并将其放置在原始人所在的内存中。 在许多应用程序中,通过装箱和解包增加的开销对应用程序的整体性能来说是可以忽略不计的。但是在更极端的情况下,大量的数字经常被处理,程序员可能会决定避免拳击,避免对象,只使用原语。
在上面三行中的每一行中,右边都有一个基本值被自动装箱到左边的一个对象中。Java的自动装箱功能使这种外观几乎看不见,因为在传统的计算机环境中,我们通常不关心与自动装箱有关的性能和内存的命中。但是,如果为受约束的环境编程,您可能希望避免
同样,我认为
虽然我不是在受限环境中编程的专家,但我猜你工作太辛苦了。我怀疑简单的Java数组持有
有关更多信息,请搜索堆栈溢出以查找此类问题, Why do we use autoboxing and unboxing in Java? 是的。
顺便说一下,
浮点
类型
trade away accuracy
为了执行的速度。他们是
不
适用于精确性很重要的事情,如跟踪资金。对于此类问题,请使用
|
![]() |
Rlyeh · 如何在python中对N个列表的元素求和? 2 年前 |
![]() |
Mr. Kisus · 如何删除数字对中的第二个数字 2 年前 |
![]() |
peter · 检查用户输入是否为数字,然后从切换到打印 6 年前 |
![]() |
Simon · 将整数拆分为单独的部分 6 年前 |
![]() |
Boby Marley · 如何在Javascript中求和 6 年前 |
![]() |
Manuel · 如何处理熊猫数据框中的小数 6 年前 |