加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 03:09:09 所属栏目:Java 来源:网络整理
导读:如果我们需要new运算符来为对象分配内存,那么为什么我们不使用它 在数据类型之前分配内存? class-name class-var = new class-name();new int a; 解决方法 因为 James Gosling这么说….(或 Bjarne Stroustrup说的那样).实际上,这主要是语言设计的问题,而不
如果我们需要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只返回对象,而不是基元.所以这是一个很好的语法选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读