Java 数据类型初始值


推荐Java基本数据类型和类型转换,讲解非常清晰的一篇博文: Java基本数据类型

 

基本数据类型和引用数据类型的区别

 基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;

  引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

若基本数据类型作为类成员的时候,即使没有进行初始化。java也会给定默认的初始值。默认是如下所示:

 

boolean  false
char   '/uoooo'(null)
byte (byte)0
short (short)0
int    0
long  0L
float 0.0f
double   0.0d

 

当变量作为作为类成员使用时,java才确保给定其初始值,防止程序运行时错误。但是这些初始值对你的程序来说是不正确的。所以必须明确指定初始值。然而以上所诉并不适用于“局部”变量(即:非某个类的字段)。因此在某个方法中定义int i;那么变量i可能得到的是任一值,不会被初始化为0。所以使用前先付一个适当的值。如果忘记了,java会在编译时返回一个错误。告诉你此变量没有初始化。在类中定义一个对象的引用时,如果没有给定初始化值,此引用会默认为null值。


也就是说在java中基本类型的默认值是0,引用类型会默认为null。

栗子:

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. public class TestDefValue {  
  2.     private static boolean e1;  
  3.     private static byte e2;  
  4.     private static char e3;  
  5.     private static short e4;  
  6.     private static int e5;  
  7.     private static long e6;  
  8.     private static float e7;  
  9.     private static double e8;  
  10.     private static innerClass e9;  
  11.     private static String str;  
  12.     private static Integer i;  
  13.       
  14.     public static void main(String[] args) {  
  15.         System.out.println(e1);  
  16.         System.out.println((int)e3);  
  17.         System.out.println((char)e2);  
  18.         System.out.println(e4);  
  19.         System.out.println(e5);  
  20.         System.out.println(e6);  
  21.         System.out.println(e7);  
  22.         System.out.println(e8);  
  23.         System.out.println(e9);  
  24.         System.out.println(str);  
  25.         System.out.println(i);  
  26.         System.out.println("--------------");  
  27.     }  
  28.   
  29.     private class innerClass{}  
  30.   
  31. }  

打印结果:

 

 

[java] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. false  
  2. 0  
  3.   
  4. 0  
  5. 0  
  6. 0  
  7. 0.0  
  8. 0.0  
  9. null  
  10. null  
  11. null  
  12. --------------  



 

参考材料

java 基本数据类型初始值(默认值)

posted @ 2016-12-02 19:29  天涯海角路  阅读(323)  评论(0)    收藏  举报