1.Java中的静态方法不能调用非静态方法或变量
原因:静态方法或变量是属于类的,在类加载的准备阶段就完成了初始化操作。而非静态方法是属于对象的,此时对象尚未完成初始化操作,因此在静态方法中去调用非静态可能会超前,因此静态方法不允许调用非静态方法或变量。
类加载过程
类加载过程分为:加载,验证,准备,解析,初始化这几个阶段。在准备阶段的时候会为类变量分配内存并设置初始值,在初始化化阶段的时候,才会为普通成员变量赋值。
1.Java中的静态方法不能调用非静态方法或变量
原因:静态方法或变量是属于类的,在类加载的准备阶段就完成了初始化操作。而非静态方法是属于对象的,此时对象尚未完成初始化操作,因此在静态方法中去调用非静态可能会超前,因此静态方法不允许调用非静态方法或变量。
类加载过程分为:加载,验证,准备,解析,初始化这几个阶段。在准备阶段的时候会为类变量分配内存并设置初始值,在初始化化阶段的时候,才会为普通成员变量赋值。