Java面试常考点

Java的静态方法无法调用非静态方法或变量,因为静态成员属于类,在类加载的准备阶段即初始化,而非静态成员依赖对象初始化。类加载过程包括加载、验证、准备、解析和初始化,非静态变量的赋值在初始化阶段进行,这意味着在静态上下文中调用非静态可能会导致时机错误。
摘要由CSDN通过智能技术生成

1.Java中的静态方法不能调用非静态方法或变量

原因:静态方法或变量是属于类的,在类加载的准备阶段就完成了初始化操作。而非静态方法是属于对象的,此时对象尚未完成初始化操作,因此在静态方法中去调用非静态可能会超前,因此静态方法不允许调用非静态方法或变量。

类加载过程

类加载过程分为:加载,验证,准备,解析,初始化这几个阶段。在准备阶段的时候会为类变量分配内存并设置初始值,在初始化化阶段的时候,才会为普通成员变量赋值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值