当前位置: 移动技术网 > IT编程>开发语言>Java > Java开发中变量使用初始化

Java开发中变量使用初始化

2020年08月17日  | 移动技术网IT编程  | 我要评论
变量初始化的两种情况对于成员变量,不管有没有显式初始化,JVM在类加载时会自动初始化为默认值。对于局部变量,JVM不会进行自动初始化的操作,因此在调用前必须显式初始化,否则编译会出错。PS:是否可以理解为堆内存中的变量会执行自动初始化操作,而栈中的不会?、三种默认值对于引用数据类型,默认值为null;对于boolean基本数据类型,默认值为false;对于除boolean外的基本数据类型,默认值为0.创建对象对象声明:类名 对象名;对象创建:对象名 = new 类名();

变量初始化的两种情况

  1. 对于成员变量,不管有没有显式初始化,JVM在类加载时会自动初始化为默认值。
  2. 对于局部变量,JVM不会进行自动初始化的操作,因此在调用前必须显式初始化,否则编译会出错。

PS:是否可以理解为堆内存中的变量会执行自动初始化操作,而栈中的不会?

三种默认值

  1. 对于引用数据类型,默认值为null;
  2. 对于boolean基本数据类型,默认值为false;
  3. 对于除boolean外的基本数据类型,默认值为0.

创建对象

  1. 对象声明:类名 对象名;
  2. 对象创建:对象名 = new 类名();

故在成员变量中,可以只进行对象声明,类加载时JVM会自动初始化为默认值null;而在局部变量中,必须进行对象的声明和创建(或其他初始化手段),否则编译出错。

对于成员变量:

public class Test {
    private static String s;

    public static void main(String[] args) {
        System.out.println(s);
    }
}

输出:

"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" "-javaagent:E:\IDEA\IntelliJ IDEA 2020.2\lib\idea_rt.jar=44783:E:\IDEA\IntelliJ IDEA 2020.2\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\ASUS-PC\IdeaProjects\Test\out\production\Test test.Test
null

对于局部变量:

public class Test {

    public static void main(String[] args) {
        String s;
        System.out.println(s);
    }
}

输出:

C:\Users\ASUS-PC\IdeaProjects\Test\src\test\Test.java:7:28
java: 可能尚未初始化变量s

本文地址:https://blog.csdn.net/tjm19960112/article/details/108038886

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网