写在最前
前言
- 如果没有static关键字修饰,那么一般来说我们如果不去new一个类的对象,那么这个类就并未分配到内存。只有new来创建对象的时候,内存才会分配。
- 但是如果现在有这么两种需求:1.只想分配内存,而不像考虑创不创建对象;2.希望某个方法不与从属于类的任意一个对象关联【也就是说即使不去new类的对象,也可以使用类的方法】(或者只希望和Class模板关联),那么就需要用到static修饰符。
Static修饰符基本用法
- 当使用static修饰之后,就意味着这个变量或者方法不再与包含它的类的任意一个对象产生联系!不需要再将对象new出来,然后才能调用对象的方法。
- 反之,非静态static的方法或者变量是与对象绑定的,(甚至就存在对象的内存布局的实例数据区)
- 静态变量和静态方法都可以用Class类名调用,也可以通过对象调用。
- static的变量在全局中只分配一片内存,所以一个类即使有多个对象,调用这个静态变量,得到的值是唯一的。