对于类的成员变量


不管程序有没有显示的初始化,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

代码实例:

public class ThisDemo {
    byte b;
    short s;
    int i;
    long l;
    float f;
    double d;
    char c;
    boolean n;
    int[] a;
    int[] t=new int[5];
    public static void main(String[] args) {
        ThisDemo  thisDemo = new ThisDemo();
        System.out.println( "byte = "+ thisDemo.b);
        System.out.println( "short = "+ thisDemo.s);
        System.out.println( "int = "+ thisDemo.i);
        System.out.println( "long = "+ thisDemo.l);
        System.out.println( "float = "+ thisDemo.f);
        System.out.println( "double = "+ thisDemo.d);
        System.out.println( "char = "+ thisDemo.c);
        System.out.println( "boolean = "+ thisDemo.n);
        System.out.println( "int[] = "+ thisDemo.a);
        System.out.println( "int[] t = "+ thisDemo.t[0]);
    }
}

结果:

byte = 0
short = 0
int = 0
long = 0
float = 0.0
double = 0.0
char = 
boolean = false
int[] = null
int[] t = 0

局部变量初始化


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

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

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

代码实例:

public class ThisDemo {
    public static void main(String[] args) {
        byte b;
        short s;
        int i;
        long l;
        float f;
        double d;
        char c;
        boolean n;
        int[] a;
        int[] t=new int[5];
        System.out.println( "byte = "+ b);
        System.out.println( "short = "+ s);
        System.out.println( "int = "+ i);
        System.out.println( "long = "+ l);
        System.out.println( "float = "+ f);
        System.out.println( "double = "+ d);
        System.out.println( "char = "+ c);
        System.out.println( "boolean = "+ n);
        System.out.println( "int[] = "+ a);
        System.out.println( "int[] t = "+ t[0]);
    }
}

结果:

Error:(15, 40) java: 可能尚未初始化变量b
Error:(16, 41) java: 可能尚未初始化变量s
Error:(17, 39) java: 可能尚未初始化变量i
Error:(18, 40) java: 可能尚未初始化变量l
Error:(19, 41) java: 可能尚未初始化变量f
Error:(20, 42) java: 可能尚未初始化变量d
Error:(21, 40) java: 可能尚未初始化变量c
Error:(22, 43) java: 可能尚未初始化变量n
Error:(23, 41) java: 可能尚未初始化变量a

java变量的初始化之后的默认值的更多相关文章

  1. java中8种数据类型和默认值所占字节数

    java 8种基本数据类型的默认值及所占字节数 通过一段代码来测试一下 8种基本数据类型的默认值 1 package dierge; 2 3 public class Ceshi { 4 int a; ...

  2. Java变量初始化之后的默认值问题

    1) 局部变量初始化(局部变量:函数.语句中的变量,只在所属区域内有效)局部变量声明后,Java虚拟机不会自动给它初始化为默认值.因此对于局部变量,必须经过显示的初始化,才能使用它.如果使用一个没有被 ...

  3. java 8种基本数据类型的默认值及所占字节数

    通过一段代码来测试一下 8种基本数据类型的默认值 package dierge; public class Ceshi { int a; double b; boolean c; char d; fl ...

  4. java变量的初始化

    public class Init { private int age;//非静态初始化语句<3> private static String name; //静态初始化语句,先初始化静态 ...

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

    规则1(无继承情况下):对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器证明代码: 复制代码 代码如下: p ...

  6. 【技术累积】【点】【java】【26】@Value默认值

    @Value 该注解可以把配置文件中的值赋给属性 @Value("${shit.config}") private String shit; 要在xml文件中设置扫描包+place ...

  7. C++变量未进行初始化时的默认值

      对于built-in类型,未初始化的变量的值是undefined value. 对于自定义类型,未初始化变量的值是类型默认构造函数指定的值.  

  8. Java中boolean型变量的默认值问题

    1.首先分析Java中的三种不同变量的区别,如下表所示   概念 默认值 其他 类变量 也叫静态变量,是类中独立于方法之外的变量 用static 修饰 有默认初始值,系统自动初始化. 如boolean ...

  9. Java成员变量默认值

    Java中明确规定:1.如果是引用型的,比如:String,还有类对象,他们的默认值都是:null:2.而如果是值类型:double,int,long,float,char等等,他们都是:0:还有一个 ...

随机推荐

  1. php的CI框架相关数据库操作

    在使用之前首先应该配置数据库的参数,详见文件application/config/database.php,里面包含主机名,登陆用户名,登录密码,数据库名,编码信息等. 在配置成功后,可以简单的调用: ...

  2. elementui表格里面的索引,多选的复用解决

    使用elementui表格时,当一个页面通过if判断有多个不同的表格时,其中一个或多个表格想要设置索引或者多选框时,会发现你在第一个里面设置了索引或者多选框,其他的表格都会出现,你在后面的其中一个设置 ...

  3. ddos攻击是什么,如何防御

    DDoS(Distributed Denial of Service,分布式拒绝服务) 定义: 主要通过大量合法的请求占用大量网络资源,从而使合法用户无法得到服务的响应,是目前最强大.最难防御的攻击之 ...

  4. sublime Text3编译java文件提示Decode error - output not utf-8

    进入sublime Text3安装目录下的package文件夹,用解压缩软件打开Java.sublime-package, 编辑里面的JavaC.sublime-build,修改最后一句 将文件改为 ...

  5. 容器docker网络解析

    如果想要实现两台主机之间相连通信,最直接的办法是找一根网线连起来, 多台的话需要用网线将他们链接再交换机上. linux中能够起到虚拟交换机的网络设备是网桥birdge, 工作再链路层, 主要是根据m ...

  6. Kubernetes 证书默认1年过期时间修改

    使用过的kubeadm搭建K8s集群的朋友知道,默认自动生成的证书有效期只有 1 年,因此需要每年手动更新一次证书,这种形式显然对实际生产环境来说很不友好:因此下面教给大家修改这个过期时间的终极方法. ...

  7. Python:使用pyinstaller打包含有gettext locales语言环境的项目

    问题 如何使用 pyinstaller 打包使用了 gettext 本地化的项目,最终只生成一个 exe 文件 起因 最近在用 pyhton 做一个图片处理的小工具,顺便接触了一下 gettext,用 ...

  8. Python 单元测试 实战演练

    结合实例,联系单元测试. 文件结构: |----Python_unittest |--------math_operation.py # 定义了类[class MathOperation:],类里面定 ...

  9. Zookeeper 源码解析-环境准备

    为了深入学习Zookeeper,准备把zookeeper源码导入eclipse中学习 一.Ant环境准备 因为我自己用的是Mac,直接输入命令:brew install ant即可 如果是window ...

  10. AGC004 部分简要题解

    E 首先问题可以转化为:每次将出口带着边界走,出了边界的机器人立马消失,最大化出口碰到的机器人数量. 考虑哪些机器人是已经出界了的,不难有观察: 当前出界的机器人只与当前出口往四个方向走过的最远距离有 ...