`
irobot
  • 浏览: 135567 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java初始化小发现

阅读更多
今天复习java基础知识,发现个小问题。代码请看附件。

打印出的内容如下:
static Insect.prt initialized,a = 0
static Insect.x1
static Insect.prt initialized,a = 0
static Beetle.x2 initialized
Beetle constructor
i = 9,j = 0
Beetle.k initialized
k = 47
j = 39

发现static函数prt被初始化两次,在父类和子类中分别被初始化两次。
后来想想了,可能可以从自己的判断条件上改一下,就能解决“static Insect.prt initialized,a = 0”被打印两次的问题。“a == 0”改为“a == 1”当然初始化的值要改一下。于是prt方法就不会被打印2次了。不过本质上static方法还是被初始化多次,初始化过程需要递归调用未被初始化却被使用的方法。但是类变量和方法都会被递归调用多次初始化,如果父类子类中都有的话。

结论:类变量由于在编译早期完成初始化,会存在递归并且多次初始化的过程。但是在实例生成之前,类变量和类函数的初始化已经完成,所以对实例来说,类变量和类函数是被认为是一次初始化的。也就有了,所有类无论多少实例都只有“一份”类变量和类函数的理解。

这是我的理解,有问题欢迎提出,感谢讨论谢谢。

分享到:
评论

相关推荐

    java数组初始化详解

    java 数组初始化 详解 doc

    Java初始化块Java初始化块.doc

    Java初始化块Java初始化块

    java 初始化与方法

    源代码以及word文件 博文链接:https://zsl131.iteye.com/blog/624175

    45.java数组动态初始化.zip

    45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip...

    44.java数组静态初始化.zip

    44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...

    java代码的初始化顺序demo

    一个java代码初始化具体过程的的demo

    java程序初始化顺序

    介绍一下java程序初始化的顺序,这会对您以后的开发所有帮助

    6种方法初始化JAVA中的list集合

    主要介绍了6种方法初始化JAVA中的list集合,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    Java中对象的初始化

    《Java程序设计基础教程》按内容分成五篇:Java 语言入门篇、面向对象篇、数据流应用篇、Java GUI编程篇和高级应用篇,共有二十四讲组成。

    java语法\Java数组声明、创建、初始化

    java语法\Java数组声明、创建、初始化

    java学习之神奇初始化

    如果有static,即静态成员定义,首先初始化static的变量,如,在类Cups中c3在c2前面,可是在输出的结果中,你可以发现,c2是在c3前执行的,这就是因为,所有的static都在第一时间被初始化。

    java初始化和清理

    Java 的初始化问题和其他高级语言类似。一个明显不一样的地方是体现在它的类加 载过程。传统的编程语言包括C++等,程序是作为启动过程的一部分立刻被加载,而Java 的 类加载只在需要使用程序代码时才会被加载(每个...

    Java初始化顺序1

    Java初始化顺序1

    java中对象创建、初始化、引用

    介绍java对象的创建、初始化、和引用。并分析一下JAVA中对象创建和初始化过程中涉及的相关概念问题。

    52.java二维数组静态初始化.zip

    52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化....

    51.java二维数组动态初始化.zip

    51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化....

    java类变量初始化顺序

    详细讲解java类中静态变量,普通标量,对象、基本类型的初始化顺序。

    java中类的初始化顺序

    对java类初始化以及顺序,详解,由于转载仅供大家参考!

    Java初始化顺序

    作为一名程序员必须知道Java初始化顺序......

    深入Java初始化.pdf

    深入Java初始化.pdf

Global site tag (gtag.js) - Google Analytics