实例变量在什么时候赋值

降降降 2020-07-17 07:12:55
如果在类里面定义一个int a;这个变量会在执行构造方法的时候赋值上默认值0,那么如果我在类里面定义一个int b=100;这个b的值是什么时候赋值上的。这个b还会赋默认值0吗?
...全文
2988 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rumlee 2020-07-18
  • 打赏
  • 举报
回复
int b =100; 的效果等同于 int b; { b = 100; } 所以你看下面的这段程序的执行效果就知道了


public class Test {

	private int b;
	{
		b = 100;
		System.out.println("执行在构造方法之前");
	}

	public Test() {
		System.out.println("构造方法");
	}

	public static void main(String[] args) {
		new Test();
	}
}


qq_18880339 2020-07-18
  • 打赏
  • 举报
回复
阿斯顿发的说法
浮生若梦1995 2020-07-18
  • 打赏
  • 举报
回复
执行后它会自动恢复吗
陆海潘江小C 2020-07-18
  • 打赏
  • 举报
回复
如果你在类里面赋值了,在创建类的对象(实例化)时候,b会初始化默认值,执行类里面的赋值语句后就不是默认值。
亦夜 2020-07-17
  • 打赏
  • 举报
回复
成员变量在类加载阶段的准备阶段默认值为0,在初始化阶段赋值为100,可以去看一下,类加载过程

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧