一.
1.类的静态属性会加载到方法区,非static加载到堆里面去?
答:非static是加载到实例对象的堆内存里面的,不会加载到方法区;
每个实例实例化后,都会捞一份非static的类属性到自己的实例对象内存空间里面去;类的静态属性是加载到方法区的静态域里面的
- 静态属性(静态方法) 是随着类的加载而加载到内存里面的,非静态属性(非静态方法) 是随着实例对象的创建出来而加载到内存里面的
注:类的加载到内存这个行为是在实例创建出来之前进行的
详解:https://zhidao.baidu.com/question/75505762.html
https://www.cnblogs.com/kaililikai/p/5887376.html
https://blog.csdn.net/weixin_42518042/article/details/88378359
https://blog.csdn.net/shenshaoming/article/details/91044269
2.非静态属性,不可以通过类名去调用,只有静态属性可以通过类名去调用;
静态属性也可以通过实例对象去访问和修改值
- 一个类Person静态属性名称叫做name
Person p1 = new Person ()
p1.name = "alw" //这里是改动了类空间里面的name,p1不会在自己内存里面新建一个属性name
详解:https://zhidao.baidu.com/question/876586640367685972.html