LinZP101 2021-03-11 13:43 采纳率: 57.1%
浏览 150
已采纳

既然变量已经设置了static修饰为什么还要new

静态变量不是在类加载的时候就加载进内存了吗?为什么还要new,new了的还与之前的一样吗?

  • 写回答

4条回答 默认 最新

  • 三岁丫 2021-03-11 14:21
    关注

    你可能不太理解 static 关键字的作用。它是一个修饰符,如果有一个变量或者方法,你希望不通过 new 对象就可以直接调用的话,那么就可以修饰为 static。

    可以打个比方,你可以这么想 static 是标示所修饰的内容要放在一个类盒子里,而这个盒子是类加载的时候创建的,每个类都唯一。而如果不修饰 static 的话,是标示所修饰的内容是和对象放在一个对象盒子里的,在创建对象的时候才会创建这个盒子,同一个类可以有很多对象盒子

    所以如果不需要 new 就可以使用 static 修饰的内容(因为类加载完之后就已经放到盒子里了)。所以 static 和 new 的作用你要分清楚,这两个关键字的作用没有任何交集。

    注:例子只是方便理解,底层并不是这样。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?