Java编程基础-变量
1、變量的定義。
變量與常量相對應,變量是在程序運行過程中它的值允許改變的量,變量可以通過變量名訪問。
2、Java中的三大變量
(1)、類變量。又稱為靜態變量,在類中定義類的屬性時,使用static關鍵字修飾聲明一個變量。當對象中出現共享數據時,可以使用靜態(static)修飾為類變量,類變量存儲在方法區中。
類變量的兩種訪問方式:
第一種:類名.變量名
第二種:類的實例對象.變量名
多數情況下采用第一種方式。
(2)、成員變量。聲明時不用static修飾的變量。只能通過類的實例對象.變量名的方式來訪問。成員變量存儲于堆內存當中。
注:類變量和成員變量前面都可以加訪問修飾符,按照訪問權限由大到小,java提供了四種訪問權限,分別是public(公有)、protected(保護)、default(默認)、private(私有)。
(3)、局部變量。在類中方法體定義的變量,包含方法的形參,都是局部變量,其作用范圍僅限其所在方法體的大括號開始至結束位置。局部變量存儲與棧內存當中。
3、變量的定義。
定義格式:數據類型 變量名;//這種方式是等使用再賦值
? ?數據類型 變量名=變量值;//這種方式是在聲明的時候就給變量初始化。
例:int x=0,y;
? ? y=x+3;
第一行代碼中定義了兩個變量x和y,在內存中開辟了兩塊內存單元,同時為變量x分配了一個初始值0,而變量y沒有分配初始值。
第二行代碼中,程序先取出變量x 的值,與3進行相加的操作后,將結果賦值給變量y.
4、變量的數據類型。
數據類型大體分為兩種:基本數據類型和引用數據類型。
(1)、整數類型變量。用來存儲整數數值,即沒有小數部分的值。分為4中不同類型:字節型(byte)、短整型(short)、整型(int)、長整型(long)
?
| 類型名 | 占用空間 | 取值范圍 |
| byte | 8位(1個字節) | -27~27-1(-128~127) |
| short | 16位(2個字節) | -215~215-1(-32768~32767) |
| int | 32位(4個字節) | -2的31次方~2的31次方-1 |
| long | 64位(8個字節) | -2的63次方~2的63次方-1 |
?
注意:在為long類型變量賦值時,要在賦值的后面加上一個字母L或小寫l,說明賦值類型為long類型。如果賦的值未超出int型的取值范圍,加上省略都可以。
(2)、 ?浮點數類型變量。用來存儲小數數值。分為單精度浮點數(float)、雙精度浮點數(double浮點型默認),double型所標示的浮點數比float型更為精確。
?
| 類型名 | 占用空間 | 取值范圍 |
| float | 32位(4個字節) | 1.4E-45~3.4E+38, -1.4E-45~-3.4E+38 |
| double | 64位(8個字節) | 4.9E-324~1.7E+308, -4.9E-324~-1.7E+308 |
注意:在取值范圍中,E表示以10為底的指數,E后面的+和-代表正指數和負指數,例如:1.4E-45表示1.4* .10的-45次方
在java中,一個小數會被默認為double類型,所以在為float類型變量賦值時后面一定要加上F或者f,而為double類型賦值時,結尾的D或d可加可省略。
注意:浮點型存在不精確計算的問題,例如:5.0-4.9計算結果為0.09999999999999964,可以使用BigDecimal解決,這里不詳細贅述。
?
(3)、字符類型變量。
字符類型變量用于存儲一個單個字符,在java中用char表示。Java中的每個char類型的字符變量都會占用兩個字節(也可以用int來表示)。在給char類型變量賦值時,需要用一對英文半角格式的單引號把字符括起來,如’a’,也可以將char類型的變量賦值為0~65535范圍內的整數。計算機會自動將這些整數轉化為對應的字符,如數值97對應的字符為’a’。
(4)、布爾類型變量。
布爾型變量用來存儲布爾型值,在java中用boolean來表示,該類型的變量只有兩個值,即true和false。
?
5、變量的類型轉換。
(1)、自動類型轉換(隱式轉換)。指兩種數據類型在轉換的過程中不需要顯式的進行聲明。
要實現自動類型轉換,必須滿足兩個條件:一是兩種數據類型彼此兼容,二是目標類型的取值范圍大于源類型的取值范圍。
例:byte b=3;
int a=b;
將byte類型變量b賦給int類型變量a,由于int類型變量的取值范圍大于byte類型變量的取值范圍,編譯器在賦值過程中不會造成數據丟失,所以編譯器能夠自動完成這種轉換。
三種可實現自動類型轉換的情況:
第一種: ?整數類型之間可以實現轉換,byte類型的數據可以賦值給short、int、long類型的變量。short、char類型可以賦值給int、long類型的變量。int類型的變量可以賦值給long類型的變量。
第二種:整數類型轉換為float類型,如byte、short、int、char類型的數據可以賦值給float類型的變量。
第三種:其他類型轉換為double類型。如byte、short、int、char、long、float類型的數據可以賦值給double類型的變量。
(2)、強制類型轉換(顯式轉換)。
指兩種數據類型在轉換的過程中需要顯式的進行聲明。當兩種類型彼此不兼容,或者目標類型的取值范圍小于源類型時,自動類型轉換無法進行,這時就需要強制類型轉換。
轉換格式:目標類型 變量名=(目標類型)值;
注意:在對變量進行強制轉換時,會發生取值范圍大的數據類型向取值范圍小的數據類型的轉換,如將int類型數轉為byte類型,這樣極容易造成數據精度的丟失和數據溢出。(double類型是不精確計算的)數據類型轉換一般遵循小轉大的原則。
?
轉換技巧:表達式類型自動提升:所謂表達式是指由變量和運算符組成的一個算式。變量在表達式中進行運算時,也可能發生自動類型的轉換,這就是表達式數據類型的自動提升。
6、變量的作用域。
變量需要在它的作用范圍內才可以被使用,這個作用范圍稱為變量的作用域。在程序中,變量一定會被定義在某一對大括號中,該大括號所包含的代碼區域便是這個變量的作用域。
轉載于:https://www.cnblogs.com/stsinghua/p/6418552.html
總結
以上是生活随笔為你收集整理的Java编程基础-变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1. 青蛙跳跳FrogJmp Count
- 下一篇: 51nod 1836:战忽局的手段(期望