特点详解:
被类所有对象共享:
比如一个User(类),你首先new了一个User1(User类的对象),然后你再new了一个User2,User类中成员变量只要添加了static关键字,User1添加的数据,User2也可以访问到同样的数据
优先与对象创建:
比如你的User(类),中间的一个成员变量被static修饰,那么只要User加载,这个变量就已经初始化完成,有默认值了,也就是说在 User u = new User之前就可以通过User.(该成员变量名)就可以获取到初始值了
static的作用:
比如一个类中创建了一个数组进行数据存储(包含new关键字),一个方法先去添加了一个“a”, 然 后第二个方法需要判断里面有没有"a",如果有,第二个方法将返回false,但是创建的这个数组没有添加static关键字,也就是说,两个方法都有创建数组的过程,那么第一个方法和第二个方法他们操作的数组就不是同一个,也就无法得到正确的判断结果
注意事项第一点:
是因为静态方法跟着类加载一起加载了,如果在该方法使用到了该类的成员变量,成员变量都没有开始加载,所以肯定会报错
注意事项第三点:
因为this表示成员方法,而静态方法跟类一起加载了,此时没有被static修饰的成员变量还没有来得及加载,所以会报错