今天的開始,先來試試怎麼印出Hello Word吧!(或是你想 是在哈囉?? 或其他任何東西都可以)
在第二天時有提到安裝Java以及設定環境變數,如果你有實際安裝的話,打開你的CMD
或是bash
並且輸入java -version
,應該會出現當前Java的安裝版本。
如下圖:
CMD
:
bash
:
HelloWorld.txt
的純文字檔案,打開後輸入並儲存。class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World");
}
}
.java
,系統應該會提示可能會造成檔案無法使用,請接著按是就好。terminal
後,進入這個HelloWorld.java
的檔案位置。(如果忘記的話可以去複習一下第三天提過的如何使用termianl
切換所在位置,如果你是使用windows作業系統的人,可以直接在檔案總管最上面路徑的地方輸入cmd
,它會自動幫你打開並且就在這個路徑)。terminal
中輸入javac HelloWorld.java
,這時候在這個資料夾目錄中會出現一個新的檔案HelloWorld.class
,這個檔案就是透過javac
編譯後可以JVM
編譯成機器碼
給作業系統執行的檔案了。terminal
中輸入java HelloWorld
,你就可以看到在terminal
中印出Hello World
。針對剛剛所編寫的Java程式碼中,只針對幾個部分先講解,後續會再慢慢的說明其他部分。
首先是{}
可以稱為大括號
(也有很多其他說法),在{}
裡面可以屬於scope
(作用域),當離開它了之後,裡面所寫過的東西基本上執行完後就可以跟它說掰掰了。
接著你會看到例如class
、public
、static
、void
等單詞,這些是屬於Java中的關鍵字
,代表著它們在Java裡面是擁有特殊的含意,沒有辦法將這幾個單詞作為變數名稱
使用。
System
屬於Java中的一個class
(類),也是一個java SE api
內的功能,這邊所使用的System.out.println
是指將()內的東西列印到terminal
上。
變數
是什麼? 它指的是你先取了一個名字
,接著將某個值
、功能
等等的特定東西賦予給它,往後當需要這個值
、功能
時,可以透過呼叫這個變數
去代替。
如果用圖示大概像這樣子(雖然畫得很醜)
基本上每個程式語言對於變數
的命名,都會有一些規範
,建議在命名變數時都要遵照這些規範去命名,一來是大家習慣,~~二來是這樣做也顯得自己是專業的? ~~
在Java中變數的命名
基本上是以駝峰式
命名為主,指的是當這個變數名稱由2個
以上包含2個的單字組成時,第一個單字開頭用小寫
,之後每一個單字的開頭都使用大寫
作為開頭,這樣做的好處是閱讀快速,例如int myAge = 20;
(特此澄清小弟不是20歲) 這就是一個變數
的寫法。在Java中要宣告一個變數
時,需要先為它定義一個型別,這是非常重要的事情,如果沒有定義好型別,在使用javac
編譯時是無法編譯通過。
加減乘除就不多說明了,應該大家都知道,運算規則這邊要特別提一個%
,這個不是代表百分號,三個放在一起也不會變成…,%
指的是取餘數,例如:
以數學的角度看:
10 / 3 = 3...1
而今天如果使用
10 % 3 時,結果會是 1
這就是它所代表的意思
在java 中,只有byte
、short
、int
、long
、float
、double
、char
可以運算,並且原則上要相同型別才能夠進行運算。但是Java中運算規則中有一個特殊的機制—提升,不同數據類型運算時,會以範圍大的作為自動提升的基準,而非該型別 byte
的多寡為基準,並且當byte、short、char
在做運算時,都會將類型轉換為int
。
以下是各個型別自動提升的狀況。
例如:
int = byte \ short \ char
long = byte \ short \ char \ int
float = byte \ short \ char \ int \ long
double = byte \ short \ char \ int \ long \ float
強制型別轉換指的是告訴編譯器,確定要做這樣的型別轉換,但有可能會導致精度損失。
例如:
long num1 = 10L;
int num2 = (int) num2; // 20
int num3 = num1; // incompatible types: possible lossy conversion from long to int
在宣告的值
前面加上()
就可以強制轉換型別,若是沒有加上時,以上面的例子來看,因為long
可以接受的範圍比int
還大,若是沒有使用()
在編譯時會有錯誤,無法進行編譯。