static基础知识

 发布日期:2018-11-14 12:58:23  阅读次数:阅读数:9  来源:


static修饰变量成员变量如果被static修饰叫静态变量或类变量,他就能够在她的类的任何对象创建前被访问,而不必引用任何对象。
static修饰方法被static修饰的方法称为静态方法或类方法。静态方法能直接调用静态方法于静态变量,但是不能直接访问实例变量和实例方法。直接通过类名调用静态方法与变量。
静态块构造代码块给对象进行初始化,静态块给类进行初始化。静态代码块只会被运行一次,静态块中的变量是局部变量,一个类中可以有多个静态代码块,执行顺序按位置决定。

对象的内存

对象的内存由:头+普通成员变量+内存填充 三个部分构成
检查对象在堆中所占内存大小的方法
在这里插入图片描述

class People{  //有8个字节,是头的内存大小
}
class People{  
short c;
int a ;         //内存大小是16字节,
short b;     //头--8字节,int--4字节,short--2字节
}                //对象内存整体以8字节对齐,内部没有内存填充
class People{
   int a;          //内存16字节,静态变量不在堆中存放,与方法一起存放在方法区中
   static long b;
}

单例

该类只能生成一个对象

快加载单例

class People{
  private static People p=new People();
  private People(){
  }
  public static People GetPeople(){
  return p;
  }
}

慢加载单例

class People{
  private static People ;
  private People(){
  p=new People()
  }
  public static People GetPeople(){
  return p;
  }
}

类的初始化过程

  • 静态变量成员
  • 静态块
  • 实例变量成员
  • 实例块
  • 构造方法
如果您有好的新闻与建议,欢迎点击文章投稿

    发表评论

    电子邮件地址不会被公开。

  • 内容

  • 网名