聊聊java变量的初始化之后的默认值

变量初始化后的默认值

对于类的成员变量

不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值。

1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。

2、单精度浮点型(float)的基本类型变量的默认值为0.0f。

3、双精度浮点型(double)的基本类型变量的默认值为0.0d。

4、字符型(char)的基本类型变量的默认为 “/u0000”。

5、布尔性的基本类型变量的默认值为 false。

6、引用类型的变量是默认值为 null。

7、数组引用类型的变量的默认值为 null。当数组变量的实例后,如果没有没有显示的为每个元素赋值,Java 就会把该数组的所有元素初始化为其相应类型的默认值。

数组例子:

1) int[] a; //声明,没有初始化默认值是null

2) int[] a=new int[5]; //初始化为默认值,int型为0

局部变量初始化

局部变量声明以后,Java 虚拟机不会自动的为它初始化为默认值。

因此对于局部变量,必须先经过显示的初始化,才能使用它。

如果编译器确认一个局部变量在使用之前可能没有被初始化,编译器将报错。

例如:

Java 默认初始化的简单总结

一、数组的默认初始化

1.一维数组的默认初始化

(1)数组元素是整型的默认初始化值为0

(2)数组元素是浮点型的的默认初始化值为0.0

(3)数组元素是char型的默认初始化值为0或者'\u0000',而非‘0'

(4)数组元素是boolean型的默认初始化值是false

(5)数组元素是引用类型的默认初始化值是null

2.二维数组的默认初始化

二维数组分为外层数组的元素和内层数组的元素

例如:int[ ][ ]arr=new int[6][8];

外层元素:arr[0],arr[1],arr[3]等

内层元素:arr[0][0],arr[1][2]等

数组元素的默认初始值

(1)初始化方式一:int[ ][ ]arr=new int[6][8]

外层元素的初始化值:地址值

内层元素的初始化值:与一维数组初始化情况相同

(2)初始化方式二:

外层元素的初始化值:null

内层元素的初始化值:不能调用,调用报错

二、类的属性的默认初始化

(1)数组元素是整型(byte,short,int,long)的默认初始化值为0

(2)数组元素是浮点型(float,double)的的默认初始化值为0.0

(3)数组元素是字符型(char)的默认初始化值为0或者'\u0000',而非‘0'

(4)数组元素是布尔型(boolean)的默认初始化值是false

(5)数组元素是引用类型(类,数组,接口)的默认初始化值是null

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java中static静态变量的初始化完全解析

    静态变量初始化顺序 1.简单规则 首先先看一段最普遍的JAVA代码: public class Test { public static Test1 t = new Test1(); public static int a = 0; public static int b; public static void main(String[] arg) { System.out.println(Test.a); System.out.println(Test.b); } } class Test1

  • java 注解默认值操作

    我就废话不多说了,大家还是直接看代码吧~ package com.zejian.annotationdemo; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Created by wuzejian on 2017

  • Java变量的初始化及静态方法的实现

    这篇文章主要介绍了Java变量的初始化及静态方法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.变量初始化 package treat; class InitializeBlockClass { public int field=100; { field=200; } public InitializeBlockClass(int value) { this.field=value; } public InitializeBlockC

  • 浅谈Java变量的初始化顺序详解

    规则1(无继承情况下):对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器证明代码: 复制代码 代码如下: public class InitialOrderTest {    // 静态变量    public static String staticField = "静态变量";    // 变量    public String field = "变量";    // 静

  • 基于java变量和作用域以及成员变量的默认初始化(详解)

    ava中的变量有成员变量和局部变量,定义在类中方法之外的变量成为成员变量或者成员字段(域),表示一个类所具有的属性,定义为类的成员变量的变量的作用于是整个类,该变量在定义的时候不需要初始化,在使用前java会自动初始化成员变量,对于基本数据类型的的自动初始化如下: java基本类型默认初始化值 int 0 short 0 byte 0 long 0 float 0.0 double 0.0 boolean false char 0 例如: public class test{ private i

  • 聊聊java变量的初始化之后的默认值

    变量初始化后的默认值 对于类的成员变量 不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值. 1.整数类型(byte.short.int.long)的基本类型变量的默认值为0. 2.单精度浮点型(float)的基本类型变量的默认值为0.0f. 3.双精度浮点型(double)的基本类型变量的默认值为0.0d. 4.字符型(char)的基本类型变量的默认为 "/u0000". 5.布尔性的基本类型变量的默认值为 false. 6.引用类型的变量是默认值为 null.

  • Java八种基本变量作为类的成员变量的默认值操作

    目录 Java类成员变量的默认值 下面我们看看我们的八种数据类型的默认值是什么样的 总结 boolean型变量的默认值问题 1.首先分析Java中的三种不同变量的区别 2.然后判断boolean型变量的类型 Java类成员变量的默认值 基本数据类型作为类的成员变量时可以不赋予初值,在方法中输出也不会报错. 下面我们看看我们的八种数据类型的默认值是什么样的 上代码 package objectandclass; import java.awt.SecondaryLoop; public class

  • C#不同类型的成员变量(字段)的默认值介绍

    创建类的一个实例时,在执行构造函数之前,如果你没有给成员变量赋初始值,C#编译器缺省将每一个成员变量初始化为他的默认值. 如果变量是方法的局部变量,编译器就会认为在使用该变量之前,代码必须给它显示的设定一个值.否则会发生"使用了未赋值的局部变量"的错误. 对于其他情况,编译器会在创建变量时,把变量初始化为默认值.1.对于整型.浮点型.枚举类型(数值型),默认值为0或0.0.2.字符类型的默认值为\x0000.3.布尔类型的默认值为false.4.引用类型的默认值为null. 如果声时变

  • 使用JavaBean根据指定条件设置属性值默认值方式

    目录 JavaBean根据指定条件设置属性值默认值 使用场景 使用范围 使用示例 JavaBean对象成员变量默认值及数组默认值 JavaBean根据指定条件设置属性值默认值 使用场景 当bean数据中已经装配好其他数据,在逻辑以及数据转换完成的最后一步进行数据默认值设置:如果bean的属性较少,可以手动写if条件就行了,如果bean的属性太多,你不希望写太多if的时候,这个方法是很不错的方法: 使用范围 仅限于当前类,不能给父类设置值 也是参考了其他博主的方法,做的优化和修改,由于时间过了很长

  • Kotlin函数默认值的完全讲解

    函数默认值 周所周知,Java语言并不支持参数使用默认值.有人说这是因为"默认参数"和"方法重载"同时支持的话有二义性的问题,具体真正的原因我不得而知.但是对我个人来说,Java不支持这个特性的确挺让我蛋疼的,虽然说使用方法重载也可以间接实现与默认参数这个特性相同的功能,但这就意味着你得写更多的代码-- 简要介绍 Kotlin函数定义时,支持对参数指定默认值,这样就有效减少Java之前定义重载函数的数量. 简要对比如下: 1.Java函数定义,如果sayHelloT

  • 聊聊Java 成员变量赋值和构造方法谁先执行的问题

    对于这个问题应该用JVM的工作步骤来解释,首先看如下代码 class X { Y b = new Y(); X() { System.out.print("X"); } } class Y { Y() { System.out.print("Y"); } } public class Z extends X { Y y = new Y(); Z() { System.out.print("Z"); } public static void mai

  • 关于Java变量的声明、内存分配及初始化详解

    实例如下: class Person { String name; int age; void talk() { System.out.println("我是: "+name+", 今年: "+age+"岁"); } } public class TestJava2_1 { public static void main(String args[]) { Person p; if (p == null) { p = new Person(); }

随机推荐