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

 更新时间:2021年08月24日 09:46:16   作者:叶子一哥  
这篇文章主要介绍了聊聊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

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

相关文章

  • SpringCloud OpenFeign超时控制示例详解

    SpringCloud OpenFeign超时控制示例详解

    在Spring Cloud中使用OpenFeign时,可以通过配置来控制请求的超时时间,这篇文章主要介绍了SpringCloud OpenFeign超时控制,需要的朋友可以参考下
    2024-05-05
  • java读取配置文件(properties)的时候,unicode码转utf-8方式

    java读取配置文件(properties)的时候,unicode码转utf-8方式

    这篇文章主要介绍了java读取配置文件(properties)的时候,unicode码转utf-8方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • springboot集成opencv实现人脸识别功能的详细步骤

    springboot集成opencv实现人脸识别功能的详细步骤

    大家都知道OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上今天通过本文给大家分享springboot集成opencv实现人脸识别,感兴趣的朋友一起看看吧
    2021-06-06
  • Java中LambdaQueryWrapper的常用方法详解

    Java中LambdaQueryWrapper的常用方法详解

    这篇文章主要给大家介绍了关于Java中LambdaQueryWrapper常用方法的相关资料,lambdaquerywrapper是一个Java库,用于构建类型安全的Lambda表达式查询,需要的朋友可以参考下
    2023-11-11
  • ThreadPoolExecutor线程池原理及其execute方法(详解)

    ThreadPoolExecutor线程池原理及其execute方法(详解)

    下面小编就为大家带来一篇ThreadPoolExecutor线程池原理及其execute方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Java数据结构之顺序表的实现

    Java数据结构之顺序表的实现

    线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,本文将用Java实现顺序表,感兴趣的可以了解一下
    2022-09-09
  • Springboot项目实现将类从@ComponentScan中排除

    Springboot项目实现将类从@ComponentScan中排除

    这篇文章主要介绍了Springboot项目实现将类从@ComponentScan中排除,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java纯代码实现导出PDF功能

    Java纯代码实现导出PDF功能

    在项目开发中,产品的需求越来越奇葩啦,开始文件下载都是下载为excel的,做着做着需求竟然变了,要求能导出pdf,本文就来和大家分享一下Java实现导出PDF的常用方法吧
    2023-07-07
  • Java的云打印Lodop

    Java的云打印Lodop

    这篇文章主要介绍了Java的云打印Lodop 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • @Validated和@Valid三种异常捕获处理方式

    @Validated和@Valid三种异常捕获处理方式

    这篇文章主要介绍了@Validated和@Valid三种异常捕获处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论