为了账号安全,请及时绑定邮箱和手机立即绑定

加不加static怎么输出结果都一样阿?区别在哪

static{

age=17;

}

{

age=17;

}


正在回答

3 回答

我想你应该不会把这个两个写到一个类下面。所以你的问题是,这两种写法有什么区别?

static 修饰的代码块在类加载的时候就被分配到内存中了(注意类加载不是new操作,这时候还没有对象,简单地说就是你把这个类放到内存中去,之后产生出来的对象(比如new一个对象出来)都是共用的这部分内存区的数据)。所以只会调用一次。与对象没有关系!

而非static修饰的代码块在你产生每个对象的时候都会调用一次。

说的比较浅,如果你感兴趣,建议看看JVM相关知识。

3 回复 有任何疑惑可以回复我~
#1

qq_大魔王_23 提问者

非常感谢!
2018-08-19 回复 有任何疑惑可以回复我~

mark

0 回复 有任何疑惑可以回复我~

类加载时代码块执行顺序不一样,顺序是静态代码块,普通代码块,构造方法代码块。你这输出结果一样,你赋值的是同一个属性age,后来运行的普通代码块把你静态代码块赋值给覆盖了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季
  • 参与学习       531291    人
  • 解答问题       6327    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

加不加static怎么输出结果都一样阿?区别在哪

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号