为什么使用static,静态类,方法,变量的特点
static 静态的
public class Student {
String name;
double java;
double sql;
//以下成员不属于任何一个对象,而是属于整个类,随着类的加载而加载
static double avg_java;
static double avg_sql;
public void showInfo() {
System.out.println(name + "java成绩是" + java + "数据库成绩是" + sql);
System.out.println("平均分是"+avg_sql);
}
public static void main(String[] args) {
Student.avg_java =0;
Student st =new Student();
st.avg_java =0;
Student st2 =new Student();
st2.avg_sql =0;
}
}
为什么使用static
普通成员变量是每个对象都有的自己的属性
有些变量并不属于对象个体,而是属于整个类,是所有的对象所共享的
这一类变量我们要声明为static,静态的
静态变量和实例变量的区别?
静态变量存储在方法区,属于类所有.实例变量存储在堆当中,其引用存在当前线程栈.属于对象私有。需要注意的是从JDK1.8开始用于实现方法区的PermSpace被MetaSpace取代了.
特点
static表示静态的,在类的内部使用,可以修饰变量,方法,内部类
用static修饰的成员都属于类级别的成员,在类加载期间初始化,随着类的加载而加载,早于对象存在
静态的成员只有一份,所有对象共享
静态成员的访问,可以直接使用类名.静态成员的方式访问,也可以使用对象.静态成员的方式访问,访问的都是同一个值
静态的方法只能访问静态的成员变量,普通方法都可以访问,普通变量和静态变量
不可以在方法中定义静态变量
在编译时所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间,在类实例化为对象之前静态方法就已经存在于内存,即跟类的对象实例化没什么关系
当父类引用指向子类对象,只会调用父类的静态方法,此行为并不具有多态性!所以子类重写父类的静态方法,并没有实际意义!
__EOF__

本文链接:https://www.cnblogs.com/longmo666/p/13557238.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)