1. 类的属性初始化
Java虚拟机会自动进行初始化。如果给出了初始值,则初始化为该初始值。如果没有给出,则把它初始化为该类型变量的默认初始值。
(1)int类型变量默认初始值为0
(2)float类型变量默认初始值为0.0f
(3)double类型变量默认初始值为0.0
(4)boolean类型变量默认初始值为false
(5)char类型变量默认初始值为0(ASCII码)
(6)long类型变量默认初始值为0
所有对象引用类型变量默认初始值为null,即不指向任何对象,包括数组等。
对于两种不对的类属性,static属性与instance属性,初始化的时机是不同的:
(1)instance属性在创建实例的时候初始化,static属性在类加载,也就是第一次用到这个类的时候初始化,对于后来的实例的创建,不再次进行初始化。
2. 方法里的局部变量
(1)必须明确地进行初始化;
(2)如果在没有初始化之前就试图使用它,编译器会抗议;
(3)如果初始化的语句在try块中或if块中,也必须要让它在第一次使用前一定能够得到赋值。
3. 类初始化时构造函数调用顺序
(1)初始化对象的存储空间为零或null值;
(2)调用父类构造函数;
(3)按顺序分别调用类成员变量和实例成员变量的初始化表达式;
(4)调用本身构造函数
4. 类初始化时的其他问题
(1)如果java文件没有package,就默认给文件加上“无名”package;
(2)默认导入java.lang包,所以我们的java程序中可以使用String,Math,Integer等类,包括一些异常类;
(3)如果生成的类没有父类,则为这个类隐式加上父类Object,因此,包括Object中的许多方法都可以使用;
(4)运行顺序
建立一个非主类对象,顺序为:静态初始化块static{} -> 初始化块{} -> 构造函数constructor
牵涉到父类:
父类静态初始化块 -> 子类静态初始化块 -> 父类初始化块 -> 父类构造函数 -> 子类初始化块 -> 子类构造函数
注意:初始化块和构造函数是接连运行的,不会父类子类交替。
分享到:
相关推荐
java 数组初始化 详解 doc
介绍一下java程序初始化的顺序,这会对您以后的开发所有帮助
45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip...
44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...
主要介绍了6种方法初始化JAVA中的list集合,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
《Java程序设计基础教程》按内容分成五篇:Java 语言入门篇、面向对象篇、数据流应用篇、Java GUI编程篇和高级应用篇,共有二十四讲组成。
介绍java对象的创建、初始化、和引用。并分析一下JAVA中对象创建和初始化过程中涉及的相关概念问题。
一个java代码初始化具体过程的的demo
对java类初始化以及顺序,详解,由于转载仅供大家参考!
Java初始化块Java初始化块
NULL 博文链接:https://yuu1987.iteye.com/blog/1113142
Java 的初始化问题和其他高级语言类似。一个明显不一样的地方是体现在它的类加 载过程。传统的编程语言包括C++等,程序是作为启动过程的一部分立刻被加载,而Java 的 类加载只在需要使用程序代码时才会被加载(每个...
详细讲解java类中静态变量,普通标量,对象、基本类型的初始化顺序。
java编程思想-初始化与清理了解this之后,你就能更全面地理解“静态(static)方法”的含义。静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建...
52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化....
51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化....
java语法\Java数组声明、创建、初始化
如果有static,即静态成员定义,首先初始化static的变量,如,在类Cups中c3在c2前面,可是在输出的结果中,你可以发现,c2是在c3前执行的,这就是因为,所有的static都在第一时间被初始化。
Java中StringBuffer对象的初始化.pdf 学习资料 复习资料 教学资源
主要给大家介绍了关于Java中初始化List的5种方法,文中通过示例代码介绍的非常详细,对大家学习或使用java具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧