java中的變量有成員變量和局部變量,定義在類中方法之外的變量成為成員變量或者成員字段(域),表示一個(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 |
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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ì)帶來一些錯(cuò)誤,所以在使用變量之前最好對(duì)其進(jìn)行初始化,以保證變量的使用符合自己想要的效果;默認(rèn)初始化的功能姿只是對(duì)于Java成員變量有效,如果要使用局部變量必須要對(duì)其進(jìn)行初始化,否則會(huì)得到編譯錯(cuò)誤。
java和c語言一樣使用花括號(hào)對(duì)起始和終止位置進(jìn)行區(qū)分,代碼塊中的變量?jī)H在該代碼塊結(jié)束前有效,超出該代碼塊后該變量是不可見的即不可用,對(duì)于對(duì)象來說,其作用域是一直可見的知道該對(duì)象被垃圾回收器回收了內(nèi)存,例如:
1
|
String s1 = new String("Hello world!"); |
引用變量s1的可見性在器作用域結(jié)束時(shí)就消失了,但是所創(chuàng)建的String對(duì)象將會(huì)一直存在于內(nèi)存中,直到j(luò)ava垃圾回收器回收了它的內(nèi)存,雖然String對(duì)象會(huì)一直存在于內(nèi)存中,但由于沒有一個(gè)引用指向該對(duì)象,所以該對(duì)象是不可用的。
以上這篇基于java變量和作用域以及成員變量的默認(rèn)初始化(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:http://www.cnblogs.com/yourblog/archive/2017/11/29/7922694.html