Java中的static 静态
2021-03-07 11:30
标签:用法 http static代码块 new 技术 内存 共享 出现 代码 最近实训结束了,在实训答辩的时候,我讲的知识点是static 但是自己就看了一个晚上,也没怎么理解,答辩的时候老师还跟我讲了一下! static 的优点 : 1、对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份。 2、可以直接被类名调用。 细说一下这两个优点: 第一:节省空间,这个static的变量会在程序执行的时候,单独分配一个地址内存!不是静态修饰的变量,只有在new的时候才会分配地址! 第二: static的内存是存放在栈里边的 , new出来的内存是存放在堆里边的 ; 缺点: 1、生命周期过长; 这个static 相当与一个“全局变量” 2、造成代码的耦合度过高 3、访问出现局限性,只能访问静态。在静态方法中不能访问非静态的变量 下面这个是某博主的图片,就根据这个图片说一下: str1 是静态的,str2不是静态的, print1不是静态的,print2是静态的代码块 根据我们上面的哪句话,可以看到print2里边报错了 , 静态方法调用了非静态的变量str2 其实它的报错原理很简单,就是内存问题 我们知道,static在类加载的时候就分配内存了,其他的是在new的时候才分配内存 加载print2的时候,发现str2是非静态的,你没有new它,它没内存啊,你怎么能输出呢!这不是空指针异常吗! 使用的时候把握住这几点: 1、static代码块只能访问static变量 2、非static都可以访问 用法可以参考这篇博客 Java中的static 静态 标签:用法 http static代码块 new 技术 内存 共享 出现 代码 原文地址:https://www.cnblogs.com/Li-ningning/p/14261566.html
上一篇:Java包机制