为什么在Java中原始数据类型不能为“ null”?

声明任何原始类型的数据(例如int或)时,double它们会初始化为00.0。为什么我们不能将它们设置为null



森林海
浏览 1104回答 3
3回答

弑天下

基本类型就是数据。另一方面,我们所谓的对象只是指向数据存储位置的指针。例如:Integer object = new Integer(3);int number = 3;在这种情况下,object它只是指向值恰好为3的Integer对象的指针。也就是说,在存储变量对象的内存位置,您所拥有的只是对数据实际位置的引用。number另一方面,存储的存储位置直接包含值3。因此,您可以将设置object为null,但这仅表示该对象的数据为null(即未分配)。您不能将int设置为null,因为该语言会将其解释为值0。希望有帮助!

Helenr

因为Java中的原始数据类型不是Objects。您始终可以使用包装器类之一来创建一个Object。八个原始数据类型中的每一个都有其对应的包装器:字节: java.lang.Byte短: java.lang.Short整数: java.lang.Integer长: java.lang.Long浮动: java.lang.Float双: java.lang.Double布尔值: java.lang.Boolean烧焦 java.lang.Character如果您对整个结构感兴趣,则可以从此处开始(原始数据类型)。

aluckdog

对象比基本方法涉及更多的开销。以下测试显示int的执行速度比Integer快10倍。int n;EtmPoint point1 = etmMonitor.createPoint("test:objects");for (n = 0; n < 1000000; n++) {&nbsp; &nbsp; Integer t = 0;&nbsp; &nbsp; t = 10;&nbsp; &nbsp; t = 11;}point1.collect();EtmPoint point = etmMonitor.createPoint("test:primitives");for (n = 0; n < 1000000; n++) {&nbsp; &nbsp; int t = 0;&nbsp; &nbsp; t = 10;&nbsp; &nbsp; t = 11;}point.collect();etmMonitor.render(new SimpleTextRenderer());这就是.net实现可空基元的原因,不幸的是Java没有可空基元。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java