Java的初始化
2015-06-13 14:16
274 查看
对象的初始化和清理是非常重要也是非常麻烦的事情,本文主要整理一些Java中与初始化相关的规则。
1 自动初始化:类中的成员变量即使没有被赋值,编译器也会给它们一个默认值进行初始化。
前面是Java中基本数据类型的默认值,最后一行是当成员变量是对象引用时的默认值。
然而,对于方法中的局部变量,编译器并不会为它赋予默认值。因此要求使用前必须赋值。
2 指定初始化:定义类成员变量时赋值。
这种初始化简单直观,带来的效果是同一个类的所有对象的初始值都是一样的。
3 用构造器完成初始化:使用构造器进行初始化能带来更大的灵活性,使得初始值可以在动态运行中获得。构造器总能确保初始化。创建对象的时候势必会调用构造器,因此我们在使用对象前一定完成了所有初始化工作。但第一点提到的自动初始化仍然奏效。
成员变量定义的顺序决定了初始化的顺序,但所有成员变量都会在构造器之前完成初始化。
成员变量有静态的时候,初始化顺序如下:
对于static的成员变量时,只在第一次进行初始化,后面无论再创建多少个对象,都不会第二次初始化。
1 自动初始化:类中的成员变量即使没有被赋值,编译器也会给它们一个默认值进行初始化。
DataType InitialValue boolean false char [] byte 0 short 0 int 0 long 0 float 0.0 double 0.0 reference null
前面是Java中基本数据类型的默认值,最后一行是当成员变量是对象引用时的默认值。
然而,对于方法中的局部变量,编译器并不会为它赋予默认值。因此要求使用前必须赋值。
int i; System.out.println(i); //Error,not initialize
2 指定初始化:定义类成员变量时赋值。
private char c='a'; //OK private int i=f(); //OK public int f(){retuan 10;}
这种初始化简单直观,带来的效果是同一个类的所有对象的初始值都是一样的。
3 用构造器完成初始化:使用构造器进行初始化能带来更大的灵活性,使得初始值可以在动态运行中获得。构造器总能确保初始化。创建对象的时候势必会调用构造器,因此我们在使用对象前一定完成了所有初始化工作。但第一点提到的自动初始化仍然奏效。
private int i; public A(){i=10;} //i会被先赋值为0,再被赋值为10
成员变量定义的顺序决定了初始化的顺序,但所有成员变量都会在构造器之前完成初始化。
private int i; //第一个被初始化 public A(){ k=9; //最后 } private int j=2; //第二个 private int k=3; //第三个
成员变量有静态的时候,初始化顺序如下:
private int i; //第三个 private static int j; //第一个被初始化 public A(){ int k=10;} //最后 private static char c='c'; //第二个
对于static的成员变量时,只在第一次进行初始化,后面无论再创建多少个对象,都不会第二次初始化。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统