0基础学java_static关键字

static关键字

在java中可以使用static关键字声明属性和方法。如果现在想一个属性被所有的对象所共同拥有,则可以将其声明成static类型,声明static类型的属性或方法之后属性的方法称为类方法,可以由类名直接调用。

static可以声明全局属性

 1 package company.feimao.package1;
 2 class Person{
 3     String name;
 4     int age;
 5     static String city = "上海";
 6     public Person(String n , int a) {
 7         this.name = n;
 8         this.age = a;
 9     }
10     public void info(){
11         System.out.println("姓名 :" + this.name + ", 年龄 :" + this.age + ", 城市 :" + this.city );
12         }
13 }
14 public class StaticDemo01 {
15     public static void main(String args[]){
16         Person p1 = new Person("肥猫" , 28);
17         Person p2 = new Person("猪宝宝" , 28);
18         Person p3= new Person("淘淘" , 2);
19         System.out.println("---------------修改之前----------");
20         p1.info();
21         p2.info();
22         p3.info();
23         Person.city = "卢湾区";
24         System.out.println("---------------修改之后——---------");
25         p1.info();
26         p2.info();
27         p3.info();
28     }
29 
30 }

每一个对象都拥有各自的堆栈空间,堆内存空间中保存每个对象的各自属性,但是所有的static属性是保存在全局数据区之中,所有的对象指向全局数据区中的一个内容,所以当一个内容被修改之后,所有对象的内容将全局变化。

java中有多少内存区域?

1.栈内存可以保存对象的名称(保存访问的堆内存地址)

2.堆内存,保存每个对象的具体属性

3.全局数据区,保存static类型的属性

4.全局代码区,保存所有方法的属性

一般调用static属性的时候最好使用类名称直接调用,采用“类名称.属性”的形式调用。