Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

关于static静态代码块的执行时间问题 #677

Closed
jiangliuer-beep opened this issue Mar 9, 2020 · 4 comments
Closed

关于static静态代码块的执行时间问题 #677

jiangliuer-beep opened this issue Mar 9, 2020 · 4 comments
Labels
typo Correct typos

Comments

@jiangliuer-beep
Copy link

jiangliuer-beep commented Mar 9, 2020

在作者的原文中javaguide/#/docs/java/basic/final、static、this、super.md是这样描述的:

静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。

 但我认为作者的描述不够全面,静态代码块可能在第一次new的时候执行,但不一定只在第一次new的时候执行。
 参考博客java的static块执行时机的介绍,第一次new属于初始化阶段,但初始化阶段除了第一次new还有其他的可能,请作者再更新文档,添加详细的介绍。
 谢谢!

@AlisaBen
Copy link

AlisaBen commented Mar 12, 2020 via email

@Snailclimb
Copy link
Owner

在作者的原文中javaguide/#/docs/java/basic/final、static、this、super.md是这样描述的:

静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。

 但我认为作者的描述不够全面,静态代码块可能在第一次new的时候执行,但不一定只在第一次new的时候执行。
 参考博客java的static块执行时机的介绍,第一次new属于初始化阶段,但初始化阶段除了第一次new还有其他的可能,请作者再更新文档,添加详细的介绍。
 谢谢!

收到!🙏感谢

@AlexanderEthan
Copy link

调用类静态属性时就会执行了,包括方法成员变量

@miemiehoho
Copy link

static静态代码块 是在类初始化的时候执行的,和 new或者 Class.forName("ClassDemo") 没有任何关系。

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
typo Correct typos
Projects
None yet
Development

No branches or pull requests

5 participants