静态和非静态的区别

时间:2021-10-01
本文章向大家介绍静态和非静态的区别,主要包括静态和非静态的区别使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

静态和非静态的区别

1)、在非静态类中,既可以有实例成员(非静态成员),也可以有静态成员

2)、在调用实例成员的时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员名;

总结:

静态成员必须使用类名去调用,而实例成员使用对象名调用。
静态函数中,只能访问静态成员,不允许访问实例成员。
实例函数中,既可以使用静态成员,也可以使用实例成员。
静态类中只允许有静态成员,不允许出现实例成员。

使用:

1)、如果你想要你的类当做一个"工具类"去使用,这个时候可以考虑将类写成静态的。
2)、静态类在整个项目中资源共享。
只有在程序全部结束之后,静态类才会释放资源。

堆 栈 静态存储区域

释放资源。GC Garbage Collection垃圾回收器

关于占用内存

静态的东西在类加载的时候,会在内存中开辟空间,实例成员不会,所以在静态类或者方法里无法访问到实例成员,所以静态方法里面只能访问静态字段或者属性。
静态类已分配固定的内存空间,非静态类在每new一个新对象要在内存中重新开辟空间,所以静态类不能实例化
静态类会在程序初始化运行时创建完所有字段和方法,而非静态类则会在实例化时创建所有字段和方法
类是不占内存的,只有对象是占内存的,静态类也是占内存的

内存有
堆,栈,静态存储区域(静态资源全部都放在静态存储区域,在项目中任意地方都可以访问)

原文地址:https://www.cnblogs.com/fhzmasl/p/15359917.html