聊聊java變量的初始化之后的默認(rèn)值
變量初始化后的默認(rèn)值
對(duì)于類的成員變量
不管程序有沒有顯示的初始化,Java 虛擬機(jī)都會(huì)先自動(dòng)給它初始化為默認(rèn)值。
1、整數(shù)類型(byte、short、int、long)的基本類型變量的默認(rèn)值為0。
2、單精度浮點(diǎn)型(float)的基本類型變量的默認(rèn)值為0.0f。
3、雙精度浮點(diǎn)型(double)的基本類型變量的默認(rèn)值為0.0d。
4、字符型(char)的基本類型變量的默認(rèn)為 “/u0000”。
5、布爾性的基本類型變量的默認(rèn)值為 false。
6、引用類型的變量是默認(rèn)值為 null。
7、數(shù)組引用類型的變量的默認(rèn)值為 null。當(dāng)數(shù)組變量的實(shí)例后,如果沒有沒有顯示的為每個(gè)元素賦值,Java 就會(huì)把該數(shù)組的所有元素初始化為其相應(yīng)類型的默認(rèn)值。
數(shù)組例子:
1) int[] a; //聲明,沒有初始化默認(rèn)值是null
2) int[] a=new int[5]; //初始化為默認(rèn)值,int型為0
局部變量初始化
局部變量聲明以后,Java 虛擬機(jī)不會(huì)自動(dòng)的為它初始化為默認(rèn)值。
因此對(duì)于局部變量,必須先經(jīng)過顯示的初始化,才能使用它。
如果編譯器確認(rèn)一個(gè)局部變量在使用之前可能沒有被初始化,編譯器將報(bào)錯(cuò)。
例如:

Java 默認(rèn)初始化的簡(jiǎn)單總結(jié)
一、數(shù)組的默認(rèn)初始化
1.一維數(shù)組的默認(rèn)初始化
(1)數(shù)組元素是整型的默認(rèn)初始化值為0
(2)數(shù)組元素是浮點(diǎn)型的的默認(rèn)初始化值為0.0
(3)數(shù)組元素是char型的默認(rèn)初始化值為0或者'\u0000',而非‘0'
(4)數(shù)組元素是boolean型的默認(rèn)初始化值是false
(5)數(shù)組元素是引用類型的默認(rèn)初始化值是null
2.二維數(shù)組的默認(rèn)初始化
二維數(shù)組分為外層數(shù)組的元素和內(nèi)層數(shù)組的元素
例如:int[ ][ ]arr=new int[6][8];
外層元素:arr[0],arr[1],arr[3]等
內(nèi)層元素:arr[0][0],arr[1][2]等
數(shù)組元素的默認(rèn)初始值
(1)初始化方式一:int[ ][ ]arr=new int[6][8]
外層元素的初始化值:地址值
內(nèi)層元素的初始化值:與一維數(shù)組初始化情況相同
(2)初始化方式二:
外層元素的初始化值:null
內(nèi)層元素的初始化值:不能調(diào)用,調(diào)用報(bào)錯(cuò)
二、類的屬性的默認(rèn)初始化
(1)數(shù)組元素是整型(byte,short,int,long)的默認(rèn)初始化值為0
(2)數(shù)組元素是浮點(diǎn)型(float,double)的的默認(rèn)初始化值為0.0
(3)數(shù)組元素是字符型(char)的默認(rèn)初始化值為0或者'\u0000',而非‘0'
(4)數(shù)組元素是布爾型(boolean)的默認(rèn)初始化值是false
(5)數(shù)組元素是引用類型(類,數(shù)組,接口)的默認(rèn)初始化值是null
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloud OpenFeign超時(shí)控制示例詳解
在Spring Cloud中使用OpenFeign時(shí),可以通過配置來控制請(qǐng)求的超時(shí)時(shí)間,這篇文章主要介紹了SpringCloud OpenFeign超時(shí)控制,需要的朋友可以參考下2024-05-05
java讀取配置文件(properties)的時(shí)候,unicode碼轉(zhuǎn)utf-8方式
這篇文章主要介紹了java讀取配置文件(properties)的時(shí)候,unicode碼轉(zhuǎn)utf-8方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
springboot集成opencv實(shí)現(xiàn)人臉識(shí)別功能的詳細(xì)步驟
大家都知道OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上今天通過本文給大家分享springboot集成opencv實(shí)現(xiàn)人臉識(shí)別,感興趣的朋友一起看看吧2021-06-06
Java中LambdaQueryWrapper的常用方法詳解
這篇文章主要給大家介紹了關(guān)于Java中LambdaQueryWrapper常用方法的相關(guān)資料,lambdaquerywrapper是一個(gè)Java庫,用于構(gòu)建類型安全的Lambda表達(dá)式查詢,需要的朋友可以參考下2023-11-11
ThreadPoolExecutor線程池原理及其execute方法(詳解)
下面小編就為大家?guī)硪黄猅hreadPoolExecutor線程池原理及其execute方法(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
Java數(shù)據(jù)結(jié)構(gòu)之順序表的實(shí)現(xiàn)
線性表(linear?list)是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列。?線性表是一種在實(shí)際中廣泛使用的數(shù)據(jù)結(jié)構(gòu),本文將用Java實(shí)現(xiàn)順序表,感興趣的可以了解一下2022-09-09
Springboot項(xiàng)目實(shí)現(xiàn)將類從@ComponentScan中排除
這篇文章主要介紹了Springboot項(xiàng)目實(shí)現(xiàn)將類從@ComponentScan中排除,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Java純代碼實(shí)現(xiàn)導(dǎo)出PDF功能
在項(xiàng)目開發(fā)中,產(chǎn)品的需求越來越奇葩啦,開始文件下載都是下載為excel的,做著做著需求竟然變了,要求能導(dǎo)出pdf,本文就來和大家分享一下Java實(shí)現(xiàn)導(dǎo)出PDF的常用方法吧2023-07-07

