---
# System prepended metadata

title: JAVA 變數與資料型態
tags: [Java]

---

# JAVA 變數與資料型態


###### tags: `Java` 

---
:::warning
w3schools的說明： [Java Data Types](https://www.w3schools.com/java/java_data_types.asp)
:::

## 變數與資料型態
* 變數共有byte、short、int、long、float、double、char和boolean八種資料型態。
![](https://i.imgur.com/mW5NfcT.png)


:::warning
變數宣告方式
int num1 = 80, num2 = 60;
:::
![](https://i.imgur.com/rAKxjVT.png)


---

### int(整數)用法
```java=
public class Int {
    public static void main(String[] args) {
        //宣告變數int(整數)
        int num1 = 80 , num2 = 60;
        System.out.println("num1=" + mun1 +", num2 =" + num2);
        System.out.println(num1 + "+" + num2 + "=" +(num1 + num2));
    }
}
```
>結果:
num1=80, num2 =60
80+60=140


---

## 整數
###  二、八、十六進位

|整數進制|前面加上|
|---|---|
|二進制|0b___|
|八進制|0____ |
|十六進制|0x___|

```java=
public class Integral_Types {
    public static void main(String[] args) {
        System.out.println("十進制 10：" + 10);
        //二進制在數字前加上 0b
        System.out.println("二進制 10：" + 0b10);
        //八進制在數字前加上 0
        System.out.println("八進制 10：" + 010);
        //十進制在數字前加上 0x
        System.out.println("十六進制 10：" + 0x10);
    }
}
```
>結果:
十進制 10：10
二進制 10：2
八進制 10：8
十六進制 10：16



---

## 整數最大值與最小值
* Java 提供long、int、short、byte四種整數型態最大值與最小值的代碼便於使用

![](https://i.imgur.com/bmxMZZw.png)
![](https://i.imgur.com/Ao2C7fb.png)

練習一下~
```java=
public class MAX_VALUE {
    public static void main(String[] args) {
        int i =java.lang.Integer.MAX_VALUE;  //將i設為整數的最大值

        System.out.println("i-"+1);
        System.out.println("i+1="+(i+1));  //會發生溢位
        System.out.println("i+2="+(i+2L)); //寫法1
        System.out.println("i+3="+((long)i+3));  //寫法2
    }
}
```

---

## 浮點數
* JAVA預設是double資料型態，而不是float，**需在數字後面加上**「<span class="code1">F</span>」或「<span class="code1">f</span>」表示
* 可以用科學符號的「<span class="code1">e</span>」或「<span class="code1">E</span>」符號來代表10為底的指數。
![](https://i.imgur.com/nMrq5P2.png)



練習浮點數
```java=
public class Float {
    public static void main(String[] args) {
        float num = 5.5F;
        System.out.println(num+"*"+num+"="+(num*num));
    }
}
```
>顯示結果:
5.5*5.5=30.25

#### Java SE7(含)以後的版本提供底線(_)來分隔數值字面值

|數字|說明|
|---|---|
|123_456_789 |整數123456789改以_千位分隔|
| 1.234_567_89 |浮點數1.23456789改以_千位分隔|
| 0b1001_0001_1101| 二進制整數100100011101改以_四位一個分隔|


---

## 布林型態
* true和false
:::danger
Java的布林值和C與C++語言不相同，不允許使用 0 代表假，1 代表真。
:::


---


## 字元型態
* 可上網搜尋Unicode字元 & ASCII code字元對照表
:::success
[Wiki百科Unicode字元]
https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8

[ASCII code字元對照]
https://www.ascii-code.com/
:::

![](https://i.imgur.com/2PyG4PO.png)

字元練習:
```java=
public class Char_Type {
    public static void main(String[] args) {
        char ch1 = 71;   //10進位編碼71的字元
        char ch2 = 'G';  //看的出來這是一個G
        char ch3 = '\u0047';  //Unicode編碼

        System.out.println("ch1=" +ch1);
        System.out.println("ch2=" +ch2);
        System.out.println("ch3=" +ch3);
    }
}
```
輸出結果:
ch1=G
ch2=G
ch3=G












---
<style>
h2 {
    color: #2383B8;
}
h3 {
    color: #1AA340;
}
h4 {
    color: white;
    background-color: #2383B8;
    padding:8px;
}

.code1 {
    padding: 2px 4px;
    font-size: 90%;
    color: #c7254e;
    background-color: #f9f2f4;
    border-radius: 4px;
    font-family:'Fira Code';
}
.code {
    padding: 2px 4px;
    font-size: 90%;
    font-family:'Fira Code';
}
</style>