static关键字


带有static的方法,其实既可以采用类名的方式访问,也可以采用引用的方式访问。

但是即使采用引用的方式去访问,实际上执行的时候和引用指向的对象无关。

使用引用的方式访问带有static的方法时,程序可能会报错

所以带有static的方法还是建议使用“类名.”的方式访问。

new的对象的地址在栈内存中,值在堆内存中

针对所有对象都有的属性,就在属性前加一个Static修饰,该属性/方法就是静态的。是类级别的属性/方法。

静态变量存储在方法区内存中。静态变量可以被直接使用,也会被重新赋值。

什么时候成员变量声明为实例变量呢?

————所有对象都有这个属性,但是这个属性会随着对象的变化而变化[不同对象的这个属性具体的值不同]

什么时候成员变量定义为静态变量呢?

————所有对象都有这个属性,但是这个属性的值都是一样的,建议定义为静态变量,节省内存的开始。

静态变量,静态变量在类加载的时候初始化,不需要创建对象,内存就开辟了。直接使用“类名.静态变量名”的方式访问。

采用引用.的方式访问的时候,即使引用的是null,也不会出现空指针异常。因为访问静态的数据不需要对象的存在。

1.静态代码块的语句结构

static{
java语句
}

2.静态代码块在类加载时执行,并且只执行一次

3.静态代码块在一个类中科院编写多个,并且遵循自上而下的顺序依次执行

4.静态代码块的作用是什么?怎么用?用在哪里?什么时候用?

——这和具体需求有关,例如项目中要求在类加载的时刻/时机执行完成日志的记录。

那么这段记录日志的代码就可以编写到静态代码块当中,完成日志记录。

——静态代码块是java为程序员准备一个特殊的时刻,这个特殊的时刻,被称为类加载时刻。若希望在此刻执行一段特殊的程序,这段程序可以被放到静态代码块当中。

5.通常在静态代码块中完成预备工作,先完成数据的准备工具,例如:初始化连接池,解析XML配置文件。

相关