目
录 
1.static静态的,可以修饰成员变量和成员方法.
静态修饰的内容一般我们称其为:与类相关的,类成员.所有静态修饰的都是用"类名."去访问的.
2.static关键字修饰成员变量
被static关键字修饰的的变量,可以叫做静态变量,也可以叫做共享变量或者类变量.
此变量为共享变量,可以被该类的各个对象所共享.
public class Person {
public String name;
//static 静态的,可以修饰成员变量,成员方法
//修饰成员变量,此变量为共享变量,可以被该类的多个对象所共享。
public static String guoji = "中国"; //共享变量
public static void main(String[] args) {
//第一个对象
Person person=new Person();
person.name="张三";
System.out.println(person.name+"来自于"+Person.guoji);
//第二个对象
Person p1=new Person();
p1.name="李四";
System.out.println(p1.name+"来自于"+Person.guoji);
}
}
//输出结果:张三来自于中国
// 李四来自于中国
由上面的代码,我们可以发现一个问题,那就是调用静态变量的时候,是拿类名调用的,并没有拿对象名调用.对于静态变量,用类名调用,不建议用对象名调用.
需要给静态变量设值时:类名.变量名=值; 需要获取静态变量的值时:类名.变量名;
3.静态变量的内存图
(内存图中,jdk1.8版本之前,静态是放在方法区的.1.8版本之后(包含1.8版本),是存储在堆内存的哟!)
4.static关键字修饰成员方法
被static修饰的方法是静态方法,静态方法只能访问静态的方法.如果访问非静态方法就会报错!
public class Person {
public String name;
public static void main(String[] args) {
Person person=new Person();
person.name="张三";
System.out.println(person.name);
//调用game方法
game();
}
public static void game(){
System.out.println("打游戏!");
}
}
5.static关键字的特点
- 随着类的加载而加载(也就是字节码文件加载,那么静态就会加载)优先于对象存在
- 被该类的所有对象共享
- 被静态修饰的属于类,推荐使用类名调用(其实它本身也可以通过对象名调用但不推荐!)
6.static的注意事项
- 在静态方法中是没有this关键字的
静态是随着类的加载而加载,this是随着对象的创建而存在。(静态比对象先存在。)
- 静态方法只能访问静态的成员变量和静态的成员方法(静态只能访问静态)
7.静态变量与成员变量和成员变量的区别
这个部分的内容,小编的另一篇文章里有的.了解详情 ----------> 点击这里啦!
好啦!这次小编的分享就此而止啦!!!
(小编也在努力学习更多哟!以后会多多分享哒!)
希望对友友们有所帮助!!!!