在java中,为什么新的运算符在数据类型之前没有用来分配内存?

前端之家收集整理的这篇文章主要介绍了在java中,为什么新的运算符在数据类型之前没有用来分配内存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我们需要new运算符来为对象分配内存,那么为什么我们不使用它
在数据类型之前分配内存?
class-name class-var =  new class-name();
new int a;

解决方法

>因为 James Gosling这么说….(或 Bjarne Stroustrup说的那样).实际上,这主要是语言设计的问题,而不是技术法则.
> javac隐藏了这些语义,并执行所谓的装箱/拆箱(并自动完成).这些类型可以作为值或“对象”(通常使用堆实现)存在.当上下文需要对象引用时,javac会发出一个Box指令,将int值移动到对象包装器(int – > Integer)并传递引用值.许多低级JVM操作码是为处理标量值而构建的,因为它们是为处理引用值(或仅引用)而构建的.

一个主要的例子是将int存储到集合中.它被装箱了.

但最后,问问为什么语言在语法上的作用就像问艺术家为什么要画一幅画.只是因为.语言是通过心血来潮和情绪来设计的,但在Java的情况下,new的语法是从C继承的,所以突发奇想可能是Bjarne Stroustrup’s.还要考虑Scala也是一种JVM语言,但它对于一些常见的想法却有着截然不同的语法.

关键在于编译器编写者明天可以决定“新Java”将成为一种新语言,在所有类型之前的所有大写字母中都需要NEW.无论如何,它都可以在不影响语言语义的情况下实现.

当然,选择背后有完善的设计和一致性,但选择仍然只是选择.在这种情况下,选择清楚地表明int是基本类型,而new只返回对象,而不是基元.所以这是一个很好的语法选择.

猜你在找的Java相关文章