浅谈java中的static关键字

    简述:在java中咱们常常使用static关键字,该关键字就至关因而全局变量(静态变量或者是类变量)。java

           (1)当在类中的方法或者是变量前加上static时,那么这个方法或者变量只有‘一份’,在此后的类的各类对象中也是共用一份这个static所修饰的方法或者是变量(直接经过类名访问),相比于父类中其余的非static变量或者是方法,当其对象产生时,对象中会本身备份一份非static变量或者是方法(被全部的类实例共享)。因此从这个角度看,static实际上能够节约内存空间,可是会一直占用内存空间,直到程序退出内存为止。code

          (2)静态方法中不能调用非静态方法,非静态方法中既能够调用静态方法或变量也能够调用非静态方法或者是变量。对象

          (3)用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块(用处很是大哦)。内存

          (4)因此通常在须要实现如下两个功能时使用静态变量: 在对象之间共享值时;方便访问变量时。虚拟机

代码示例:class

public class Teststatic {
 int a;
 double b;
 static int c;
 static double d;
 public static void test() {
  // b=2;//错误写法:由于静态方法不能调用非静态变量
  c = 3;// 静态方法固然能够调用静态变量咯
  System.out.println("引用静态变量成功!" + "c" + "=" + c);
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Teststatic.d = 5.6;//直接经过类来调用静态变量
  System.out.println(Teststatic.d);
  Teststatic.test();// 说明静态方法或变量直接属于类属性,能够直接调用而不须要经过对象调用。
 }
}

附上static的内存分析图:test

   变量

相关文章
相关标签/搜索