# Java是什麼呢?要用甚麼IDE好呢? 講師:楊恭佑 老師 *** - 環境設定 - 這門課選用jdk11進行開發 - 關於JDK內的javapath資料夾... - 由於8/11/16路徑一樣,所以如果沒有指定,會被新裝的版本覆蓋 - 開發者的版本應該盡量等於業主 - 原因是用太新的JDK,如果不小心寫到新功能,會讓業主的電腦當機或功能異常等 ## 新增環境變數(以下請小心操作⚠) - 編輯Path新增自訂內容 - 如果是所有使用者都要能夠開發Java,可以同我一樣選下方的Path進行新增 ![](https://i.imgur.com/2kbtAsK.png) - Path的解釋 - 電腦所有的啟動路徑 - 補充:電腦資料夾路徑中常見的名詞解釋 - x86:32bit - amd64或無:64bit - 回正題:**自己指定版本的方法** - 在Path中新增`%JAVA_HOME%\bin`並移到最上方 - 解釋:`%內容%`=前面不管任何路徑 - 然後要進行呼叫 - ==再新增一個環境變數== - 名稱為JAVA_HOME - 資料夾就選所要使用版本的JDK所在位置 - 設置完功用等同於新增了一個`特定版本路徑/bin資料夾` - 安全起見才用這個方法,避免砍錯Path的其他路徑 - 來用CMD檢查JDK版本 - `javac -version`檢查編譯器版本 - `java -version`檢查運行板本 - 備註:LTS是長久維護版的意思(正式版) *** - 程式工作的內容 - 開發 - 維護 *** - JDK的構造與機制: - lib - 記憶體控制 - Stack - 實體記憶體 - C語言也是使用這塊 - 變數來自這裡就叫全域變數 - heap - Java則是使用這塊 - 是由真實的記憶體Stack切出 - 以Windows這個作業系統而言佔了4G(2.5G為固定部分,剩餘部份供彈性運行) - JDK則是扣除Stack中作業系統所佔比例,再按百分比進行分割 - VM虛擬機器 - 有這個構造是因為Java是在虛擬機中運行的 - 醜醜的圖例XDrz||| ![](https://i.imgur.com/nohsX7s.png) *** ## IDE的選擇 - 業界寫Java大多使用**Eclipse** - 免費的 - 安裝時應選包含Java Web的選項 - 安裝好後打開可以指定一個作業區資料夾 - IDEA - 要錢 還很貴 - Netbeans跟VS Code - 業界比較少人用 - VS Code要裝Java擴充包才方便使用;VS Code寫Web倒是好用 - 補充,程式開發輔助工具:StarUML - UML統一塑模語言 - 一種軟體的開發流程 - 一些讓eclipse更易用的設定 - 確認是否為UTF-8 ![](https://i.imgur.com/j0Dvdlt.png) - 預設字號為9px,似乎太小了,到這裡改大它 ![](https://i.imgur.com/BsEUGst.png) 點Basic中最下方Text Font *** - Java程式語言的結構![](https://i.imgur.com/aTtW7Ep.png) 除了VM跟Tool以外都是Lib ## Eclipse - 開新專案 - `內`為課堂指定資料夾名/檔名 - 對著src右鍵按class新增class - package:`com.xxx.demo` - demo位置表功能 - 一般網址中確實也呈現了網站的功能 - www:常見的網站 - flie:檔案功能 - 反寫是資料結構考量 - 注意,要全部小寫 - 名稱:`Demo01` - 勾起"public static..." - 其實寫到後期不會一直用main method - 真正的開發不會這樣使用 - 補充軟體的國際化處理 - 分package - 分語言包 - 撰寫區 - 提示 - 紅線表錯誤 - 黃線表警告 ## Java的基本結構 - 註解寫法 - `//`單行:方法內跟外都行,說明功能 - 多行:main上方可以寫,裏面也可以寫,package上方也可以 ```java= /* * */ ``` - 文檔註解給修改人員看 ```java= /** * * *class類別外 *method方法外 */ ``` - Javadoc 可以做出說明書網站的功能 - 註解的意義 - 好讀 - 交接 - 名聲 ## Eclipse開發Java的好用快捷功能 - 輸入`Syso` 然後鍵盤再`alt+/` - 會叫出等同C語言print的式子 - Ctrl+shift+f自動排版 - alt+/ todo,TODO這個功能可以儲存未完成的程式跟點子 - 找到這個設定,做一個有版權聲明跟作者資訊的範本吧 ![](https://i.imgur.com/kDvf7fb.png) ```java= /* * Copyright (c) 2020, 2022, 公司名稱 and/or its affiliates. All rights reserved. * * */ ${filecomment} ${package_declaration} /** * * * <br> * author: 作者名稱<br> * @since 11.0<br> *${todo}:<br> */ ${typecomment} ${type_declaration} ``` - 所有東西若要改名都按用右鍵Refactor→Rename最保險 - `Ctrl+F11`可以快速編譯 - 輸出javadoc前要加上`-encoding UTF-8 -charset UTF-8`才不會亂碼 - 原始工作區配置 ![](https://i.imgur.com/WCw1utI.png) - 雖然在不同資料夾,但class的名字最好不要重複