Java变量初始化之后的默认值问题】的更多相关文章

1) 局部变量初始化(局部变量:函数.语句中的变量,只在所属区域内有效)局部变量声明后,Java虚拟机不会自动给它初始化为默认值.因此对于局部变量,必须经过显示的初始化,才能使用它.如果使用一个没有被初始化的局部变量,编译器会报错. 局部变量存储于虚拟机栈的局部变量表中例: 2) 对于类的成员变量,不管程序有没有显示的初始化,Java虚拟机都会先自动给它初始化为默认值.对于数组,数组引用类型的变量的默认值为null.当数组变量实例化后,如果没有显式地为每个元素赋值,Java会把该数组的所有元素初…
在使用基本数据类型作为类成员的时候,有时只初始化了而没有给变量赋值,那么此时,java会给你的变量赋一个默认初始值. boolean        false char              '/uoooo'(null) byte              (byte)0 short             (short)0 int                  0 long               0L float               0.0f double        …
Java的变量初始化顺序,对这里一直似懂非懂,面试的时候也经常被问到,但答的一直不好,现在整理记录一下,以后忘记了可以来看看. 程序分为两个部分,第一个部分不考虑继承,第二个部分考虑继承: (1)不考虑继承的情况 代码如下: public class JavaTest { public JavaTest() { System.out.println("执行JavaTest构造方法1"); } public JavaTest(String param) { System.out.prin…
对于类的成员变量 不管程序有没有显示的初始化,Java  虚拟机都会先自动给它初始化为默认值. 1.整数类型(byte.short.int.long)的基本类型变量的默认值为0. 2.单精度浮点型(float)的基本类型变量的默认值为0.0f. 3.双精度浮点型(double)的基本类型变量的默认值为0.0d. 4.字符型(char)的基本类型变量的默认为 "/u0000". 5.布尔性的基本类型变量的默认值为 false. 6.引用类型的变量是默认值为 null. 7.数组引用类型的…
第一次实例化一个类时,初始化优先顺序为: 1.父类中的静态成员变量和静态代码块初始化 2.本类中的静态成员变量和静态代码块初始化 3.父类中的实例成员初始化 4.父类中的构造方法 5.本类中的实例成员初始化 6.本类中的构造方法 成员变量和示例变量初始化的区别: 成员变量:每次新建对象的时候都会初始化: 实例变量:只在第一次调用(包括实例化或通过类访问)的时候一次性初始化全部的静态变量 实例变量示例: class Tag { Tag(int marker) { System.out.printl…
  对于built-in类型,未初始化的变量的值是undefined value. 对于自定义类型,未初始化变量的值是类型默认构造函数指定的值.  …
 在Java中,null值表示引用不指向任何对象.运行过程中系统发现使用了这样一个引用时·可以立即停止进一步的访问,不会给系统带来任何危险. 1.如果是对象的field的话那么系统在初始化对象的时候会把那些对象的值赋值为null,基本数据类型也有它们的初始值 2.如果是在方法内,那么程序员需要自己给这些变量赋值. class T{   Object obj = null;   Object obj1;//系统在初始化的时候会自动的给他赋值为null } class T{   public voi…
感谢大佬:https://www.cnblogs.com/znsongshu/p/6282672.html 在Java中,null值表示引用不指向任何对象.运行过程中系统发现使用了这样一个引用时·可以立即停止进一步的访问,不会给系统带来任何危险. 1.如果是对象的field的话那么系统在初始化对象的时候会把那些对象的值赋值为null,基本数据类型也有它们的初始值 2.如果是在方法内,那么程序员需要自己给这些变量赋值. class T{ Object obj = null; Object obj1…
首先需要说明的是Java中的变量分为两种:成员变量和局部变量 其中成员变量又可分为:实例变量(非静态变量)和类变量(静态变量) 局部变量(局部变量的作用时间很短,所以一般是存储在栈中的): 1.形参在方法签名中定义的变量,此时的局部变量存储在栈中,随着方法的结束而销毁. 2.方法中定义的变量,此时的局部变量存储在栈中,随着方法的消亡二销毁. 3.代码块中定义的局部变量,此时的局部变量存储在栈中,随着方法块的结束而销毁. 实例变量的初始化时机: 1.在声明实例变量的时候初始化实例变量的值或者在第一…
java全局变量会自动初始化,但局部变量不会自动初始化.当我们新建一个对象的时候,java会申请一个区域存放类的数据,而成员变量就是类的数据,也是放在这个内存区域中,jvm申请内存时初始化.而方法中变量放在栈中不会自动初始化. 但所有变量在使用之前都必须要初始化. 并且在static方法中不能使用this和super,因为static表示的是类在加载完成后就已经存在,可以由类直接调用,但this表示的是当前对象,所以不能再static中使用.…