静态变量不是在类加载的时候就加载进内存了吗?为什么还要new,new了的还与之前的一样吗?
4条回答 默认 最新
- 三岁丫 2021-03-11 14:21关注
你可能不太理解 static 关键字的作用。它是一个修饰符,如果有一个变量或者方法,你希望不通过 new 对象就可以直接调用的话,那么就可以修饰为 static。
可以打个比方,你可以这么想 static 是标示所修饰的内容要放在一个类盒子里,而这个盒子是类加载的时候创建的,每个类都唯一。而如果不修饰 static 的话,是标示所修饰的内容是和对象放在一个对象盒子里的,在创建对象的时候才会创建这个盒子,同一个类可以有很多对象盒子。
所以如果不需要 new 就可以使用 static 修饰的内容(因为类加载完之后就已经放到盒子里了)。所以 static 和 new 的作用你要分清楚,这两个关键字的作用没有任何交集。
注:例子只是方便理解,底层并不是这样。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用