---
# System prepended metadata

title: 定數/常數(Literal)

---

<style>
#sp{color:#CC0000;}
#imp{color:#CC0000; 
    font-style:bold; 
    background-color:#FFFFBB;}
#imp2{color:#5500FF; 
    font-style:bold; 
    background-color:#FFFFBB;}
#tit{color:white; 
    font-style:bold; 
    background-color:gray;}
</style>

# 定數/常數(Literal)

+ 可分為以下四種型態
    + 整數定數
    + 浮點數定數
    + 布林值定數
    + 字元定數
+ 字串(String)<span id="imp">不是</span>定數


| 型態名稱 | 大小 | 範圍 |說明|初始值|
| -------- | :--------: | -------- |:--------: |:--------:|
|<span id="tit">整數型態</span>|
| byte| 8 bits| -2<sup>7</sup> ~ 2<sup>7</sup>-1<br>(-128 ~ 127)|位元組整數|0|
| short| 16 bits| -2<sup>15</sup> ~ 2<sup>15</sup>-1<br>(-32,768 ~ 32,767)|短整數|0|
|int| 32 bits| -2<sup>31</sup> ~ 2<sup>15</sup>-1<br>(-2,147,483,648 ~ 2,147,483,647)|整數|0|
|long| 64 bits| -2<sup>63</sup> ~ 2<sup>63</sup>-1<br>(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)|長整數|0L|
|<span id="tit">浮點數型態</span>|
|float|32 bits|-3.4*10<sup>38</sup> ~ 3.4*10<sup>38</sup>|7位小數|0.0F|
|double|64 bits|-1.8*10<sup>308</sup> ~ 1.8*10<sup>308</sup>|15位小數|0.0(D)|
|<span id="tit">布林型態</span>|
|boolean|1 bit|true<br>false|布林|<span id="imp">false</span>|
|<span id="tit">字元型態</span>|
|char|16 bits<br>unicode格式|0 ~ 2<sub>15</sub>-1<br>(0 ~ 65,535)<br>(\u0000 ~ \uffff)|字元|<span id="imp">'\u0000'</span>|



## 整數的表示方式
| 進制 | 呈現方式 | 範例 |備註|
| -------- | -------- | -------- |-------- |
| 二進位(BIN)|0b或0B|<span id="sp">0b</span>1001<br><span id="sp">0B</span>1001|<span id="imp">JAVA 7</span>以後可使用 |
| 八進位(OCT)|0|<span id="sp">0</span>123<br><span id="sp">0</span>567||
| 十進位(DEC)|即平常使用的表示|100<br>12345||
| 十六進位(HEX)|0x或0X|<span id="sp">0x</span>8E<br><span id="sp">0X</span>8E||
+ <span id="imp">JAVA 7</span>以後可用底線來分隔整數定數

## 浮點數的表示方式
+ 因為<span id="imp">預設的型態為double</span>，所以宣告為float時，若有小數位需加上f或F，以表示要使用float型態。如:
```java=1
float x = 1;

//有小數時須加上f或F
//若未加上會出現Type mismatch cannot convert from double to float
float y = 1.0f;
```

+ Java浮點數定另有科學記號表示法，如【1.23e-10】表【1.23 * 10<sup>-10</sup>】；e大小寫均可，大小寫均可，代表10的次方數。

## 布林值的表示方式
+ Java使用 true與false來代表布林值定數
+ 對電腦來說，<span id="imp">1就是true，0就是false</span>

## 字元的表示方式
+ 字元值定數為一個<span id="imp">Unicode字元</span>，或是在一對單引號裡的特殊字元( 又稱轉義序列(Escape Sequence) )
+ 一般字元表示方式：'a', 'o', '%', '我', 'A'
+ 轉義序列表示方式：'\\n'(換行)、'\\\'(\)、'\\"'(")
+ 單引號【''】內只能放一個字元(char)，雙引號【""】內可放字串(String)
+ JAVA允許使用uniocde表示法，如'我'在unicode編號為6211，則可以使用'\u6211'表示
### 轉義序列


| 表示方式 | 含意 |
| :--------: | :--------: |
| \\' |單引號|
|\\" |雙引號|
|\\\ |反斜線|
|\n |換行|
|\t |tab鍵|
|\b |倒退一格|
|\f |換頁|
|\r |return鍵(enter鍵)|


# 變數
## 命名方式
+ 可以用A-Z、a-z、0-9、_(底線)、$命名，長度不限
+ 第一個字不可以是數字
+ 大小寫不同
+ 不能是關鍵字(或稱保留字)
+ 潛規則：<span id="imp">變數、方法名稱以小寫開頭</span>、<span id="imp2">類別名稱為大寫開頭</span>

## 變數種類
+ 區域變數(Local variables):
+ 實體變數(Instance variables)：
+ 宣告在方法(Method)內
