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

java类的构造方法一定会执行吗?

java类的构造方法一定会执行吗?

拉风的咖菲猫 2019-03-28 22:19:02
我写了一个类,但是程序中没有声明这个类的对象。但是这个类中有个静态的变量,我直接通过类名来操作静态变量。。。这种情况下,这个类的构造方法是不是就不会执行?还有,是不是不管是不是声明类的对象,对这个静态变量都没有影响?
查看完整描述

5 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

对的, 你的理解没有错. 静态变量属于类本身, 不属于对象, 因此直接使用类名来操作静态变量, 是不会导致这个类的构造方法执行的.

还有,是不是不管是不是声明类的对象,对这个静态变量都没有影响?

对的. 还是那句话, 静态变量是类的属性, 和这个类的对象没有关系. 所有的对象都共用一个此类的静态变量, 因此不论是否有实例化对象, 都不影响这个静态变量的使用.


查看完整回答
反对 回复 2019-04-25
?
手掌心

TA贡献1942条经验 获得超3个赞

区别开类型和实例


查看完整回答
反对 回复 2019-04-25
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

Java程序对类的使用方式:

  • 主动使用

  • 被动使用

所有的Java虚拟机实现必须在每个类或接口被Java程序首次主动使用时才初始化他们。

主动使用:

  • 创建类的实例

  • 访问某个类或接口的静态变量,或者对该静态变量赋值

  • 调用类的静态方法

  • 反射

  • 初始化一个类的子类

  • Java虚拟机启动是被标明为启动类的类

除了以上六中情况,其他对类的使用都是被动使用,都不会导致类的初始化。当访问一个类的编译时静态常量的时候,并不会导致类的初始化,即编译时就已经确定值的常量


查看完整回答
反对 回复 2019-04-25
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

静态变量与代码块是先于构造器加载,且只加载一次,类似的当作一个全局变量来理解,虽然java是没有全局变量。


查看完整回答
反对 回复 2019-04-25
  • 5 回答
  • 0 关注
  • 1010 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信