java中变量什么时候需要初始化
2016-06-30 17:28
381 查看
1. 对于类的成员变量,不管程序有没有显式的进行初始化,加载时Java虚拟机都会先自动给它初始化为默认值。
基本数据类型默认值如下:Boolean false
Char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
引用数据类型默认值由个引用类型内部函数定义初始化值(应该可以自己重写默认初始化值,自己认为,日后验证)如:
String null
数组0
...
举例代码:
class Test2 {
public static void main(String[] args) {
Student st = new Student();
System.out.println(st.name);
System.out.println(st.age);
}
}
class Student {
String name;
int age;
}
编译:正常
结果:
2. 局部变量声明之后,Java虚拟机就不会自动给它初始化为默认值,因此局部变量的使用必须先经过显式的初始化。
否则调用会出错。
举例代码:
class Test2 {
public static void main(String[] args) {
String name;
int age;
System.out.println(name);
System.out.println(age);
}
}
编译:错误
---------- javac ----------
Test2.java:10: 错误: 可能尚未初始化变量name
System.out.println(name);
^
Test2.java:11: 错误: 可能尚未初始化变量age
System.out.println(age);
^
2 个错误
相关文章推荐
- 深入分析 Java 中的中文编码问题
- 爬虫技术(2)--抓取网页java代码实现
- Hibernate注解使用以及Spring整合
- Java应用程序将对象分配到堆
- Eclipse的SVN提交过滤
- 关于java字节码框架ASM的学习
- Java成绩管理系统控制台版本
- JEECG 3.6.4 云插件开发版发布 ,企业级JAVA快速开发平台
- SpringMVC+Hibernate+Spring使用websevice报错
- ajax调用java,中文乱码解决办法
- Spring Security 和 Angular JS(2)
- myeclipse不编译的问题
- springmvc实现批量删除
- Spring MVC REST风格实现PUT、DELETE请求
- Java 读写文件的三种流介绍
- Java 线程池的使用详解
- 面向对象和面向过程
- 许多JVM选择在开始时首先解释Java字节码
- JAVA List<T> 如何初始化
- Spring JdbcTemplate详解