* 什么时候程序在运行的时候出现空指针异常呢?
* 空引用访问实例相关的数据,因为实例相关的数据就是对象相关的数据,这些数据在访问的时候,必须有对象的参与,当空引用的时候,对象不存在,访问这些实例数据一定会出现空指针异常。
* 实例相关的数据包括:
实例变量【对象需要存在】
实例方法【对象需要存在】
* 带static的方法也可以用引用.方法名();
但myeclipse会自动把引用改成类名,所以这个过程中并没有用到对象。
引用为空的话,也不会出现空指针异常。
但使用引用的方式访问带有static的方法,程序会出现警告。
所以带有static的方法还是建议使用“类名.”的方式访问。
—————————————————————————————————————————————————————————————————
// 静态变量,静态变量在类加载的时候初始化,不需要创建对象,内存就开辟了。
// 静态变量存储在方法区内存当中。
什么时候成员变量声明为实例变量呢?
- 所有对象都有这个属性,但是这个属性的值会随着对象的变化而变化。【不同对象的这个属性具体的值不同】
什么时候成员变量声明为静态变量呢?
- 所有对象都有这个属性 ,并且所有对象的这个属性的值是一样的,建议定义为静态变量,节省内存的开销。
// 所有静态的数据都是可以采用类名 . ,也可以采用引用 . ,但是建议采用类名 . 的方式访问。
// 采用引用 . 的方式访问的时候,即使引用是null,也不会出现空指针异常。因为访问静态的数据不需要对象的存在。
* 关于Java中的static关键字
1、static英语单词翻译为静态的
2、static修饰的方法是静态方法
3、static修饰的变量是静态变量
4、所有static修饰的元素都称为静态的,都可以使用“类名 . ”的方式访问,当然也可以采用“引用 . ”的方式访问【但不建议】
5、static修饰的所有元素都是类级别的特征,和具体的对象无关。
* 可以使用static关键字来定义“静态代码块”:
1、语法格式:
static{
java语句
}
2、静态代码块在类加载时执行,并且只执行一次。
3、静态代码块在一个类中可以编写多个,并且遵循自上而下的顺序依次执行。
4、 静态代码块的作用什么?怎么用?用在哪?什么时候用。
-这当然和具体的需求有关,例如项目中要求在类加载的时刻/时机执行代码完成日志的记录。那么这段记录日志的代码就可以编写到静态代码块当中,完成日志记录。
- 静态代码快是java为程序员准备的一个特殊的时刻,这个特殊的时刻被称为类加载时刻。若希望在此刻执行一段特殊的程序,这段程序可以直接放到静态代码块当中。
5、通常在静态代码块当中完成预备工作,先完成数据的准备工作,例如:初始化连接池,解析XML配置文件》》..........
* 实例语句块/代码块【了解内容,使用的非常少】
{
System.out,printlun(1);
}
1、实例代码块可以编写多个,也是遵循自上而下的顺序依次执行。
2、实例代码块在构造方法执行之前执行,构造方法执行一次,实例代码块对应执行一次,实例代码块在创建对象的时候执行。
3、实例代码块也是java语言为程序员准备的一个特殊的时机,这个特殊时机被称为:对象初始化时机。