基于java變量和作用域以及成員變量的默認(rèn)初始化(詳解)
ava中的變量有成員變量和局部變量,定義在類中方法之外的變量成為成員變量或者成員字段(域),表示一個(gè)類所具有的屬性,定義為類的成員變量的變量的作用于是整個(gè)類,該變量在定義的時(shí)候不需要初始化,在使用前java會(huì)自動(dòng)初始化成員變量,對(duì)于基本數(shù)據(jù)類型的的自動(dòng)初始化如下:
java基本類型默認(rèn)初始化值
| int | 0 |
| short | 0 |
| byte | 0 |
| long | 0 |
| float | 0.0 |
| double | 0.0 |
| boolean | false |
| char | 0 |
例如:
public class test{
private int i;
private short m;
private byte n;
private long l;
private char c;
private float f;
private double d;
private boolean b;
public static void main(String args[]){
System.out.println(i);
System.out.println(m);
System.out.println(n);
System.out.println(l);
System.out.println(c);
System.out.println(f);
System.out.println(d);
System.out.println(b);
}
}
上面代碼的輸出將會(huì)是默認(rèn)初始化后的值;
對(duì)于引用類型的變量則默認(rèn)初始化為null,雖然java會(huì)自動(dòng)初始化成員變量,但自動(dòng)初始化會(huì)帶來(lái)一些錯(cuò)誤,所以在使用變量之前最好對(duì)其進(jìn)行初始化,以保證變量的使用符合自己想要的效果;默認(rèn)初始化的功能姿只是對(duì)于Java成員變量有效,如果要使用局部變量必須要對(duì)其進(jìn)行初始化,否則會(huì)得到編譯錯(cuò)誤。
java和c語(yǔ)言一樣使用花括號(hào)對(duì)起始和終止位置進(jìn)行區(qū)分,代碼塊中的變量?jī)H在該代碼塊結(jié)束前有效,超出該代碼塊后該變量是不可見(jiàn)的即不可用,對(duì)于對(duì)象來(lái)說(shuō),其作用域是一直可見(jiàn)的知道該對(duì)象被垃圾回收器回收了內(nèi)存,例如:
String s1 = new String("Hello world!");
引用變量s1的可見(jiàn)性在器作用域結(jié)束時(shí)就消失了,但是所創(chuàng)建的String對(duì)象將會(huì)一直存在于內(nèi)存中,直到j(luò)ava垃圾回收器回收了它的內(nèi)存,雖然String對(duì)象會(huì)一直存在于內(nèi)存中,但由于沒(méi)有一個(gè)引用指向該對(duì)象,所以該對(duì)象是不可用的。
以上這篇基于java變量和作用域以及成員變量的默認(rèn)初始化(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于scanner.nextInt()等next()和scanner.nextIine()連用注意事項(xiàng)
這篇文章主要介紹了關(guān)于scanner.nextInt()等next()和scanner.nextIine()連用注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-04-04
RocketMQ設(shè)計(jì)之主從復(fù)制和讀寫分離
這篇文章主要介紹了RocketMQ設(shè)計(jì)之主從復(fù)制和讀寫分離,RocketMQ提高消費(fèi)避免Broker發(fā)生單點(diǎn)故障引起B(yǎng)roker上的消息無(wú)法及時(shí)消費(fèi),下文關(guān)于了RocketMQ的相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-03-03
解決springboot3.2集成mybatis-plus3.5.4.1報(bào)錯(cuò)的問(wèn)題
這篇文章給大家介紹了如何解決springboot3.2集成mybatis-plus3.5.4.1報(bào)錯(cuò)的問(wèn)題,文中通過(guò)圖文介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12
SpringBoot項(xiàng)目中如何動(dòng)態(tài)切換數(shù)據(jù)源、數(shù)據(jù)庫(kù)
本文主要介紹了SpringBoot項(xiàng)目中如何動(dòng)態(tài)切換數(shù)據(jù)源、數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Java實(shí)現(xiàn)求小于n的質(zhì)數(shù)的3種方法
這篇文章主要介紹了Java實(shí)現(xiàn)求小于n的質(zhì)數(shù)的3種方法,本文給出了根據(jù)定義去求解、平方根、找規(guī)律三種解法,需要的朋友可以參考下2015-03-03
詳解Java中IO字節(jié)流基本操作(復(fù)制文件)并測(cè)試性能
這篇文章主要介紹了Java中IO字節(jié)流基本操作(復(fù)制文件)并測(cè)試性能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
mybatis關(guān)系映射之一對(duì)多和多對(duì)一
今天小編就為大家分享一篇關(guān)于mybatis關(guān)系映射之一對(duì)多和多對(duì)一,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01

