20155228 2016-2017-2 《Java程序設計》第1周學習總結

20155228 2016-2017-2 《Java程序設計》第1周學習總結

教材學習內容總結

這部份內容是以教材爲基礎,根據我的的理解來描述的,有的地方的理解和表述可能不規範甚至不正確,不足之處還請老師同窗指出,謝謝html

  • 爲何須要Java程序設計語言?java

    java語言是Sun公司的GreenProject中用來撰寫Star7應用程序的程序語言。
  • Java解決了什麼問題?git

    java一開始是爲了消費性數字產品而設計,這類小型裝置一般有着有限的內存和預算資源,所以java自己就有不少爲了節省資源的設計。
  • Java三大平臺數據庫

    javaSE(標準版)vim

    javaEE(企業版)windows

    javaME(迷你版)
  • Java SE的四個組成部分數組

    JVM:java虛擬機,包括在JRE中網絡

    JRE:java執行環境函數

    JDK:java開發工具箱,包括JRE和開發過程當中須要的一些工具程序工具

    Java語言
  • Java API:javaSE由java語言和標準API組成。API提供字符串處理,數據輸入輸出,網絡套件,用戶窗口接口等功能
  • JCP與JSR、RI、TCK的關係:

    JCP:開放性的國際組織,目的是讓Java演進由Sun公司非正式主導,成爲全世界數以百計表明成員公開監督的過程

    JSR:業界制定JSR做爲正式標準規範文件,標準表明了業界所面臨的問題,業界但願使用java解決問題

    RI:任何想要加入Java的功能和特性的提議,必須以JSR正式文件的方式提交,若JSR成爲最終文件後,根據JSR成果作出的免費且開放原始碼的參考實現,稱爲RI

    TCK:RI中提供的做爲技術兼容測試的工具箱稱爲TCK
  • Oracle JDK與OpenJDK的關係

    前者源代碼可用於我的研究使用,禁止任何商業用途,後者則容許商業上的使用。
  • JVM/JRE/JDK

    JVM:java編譯時,並不直接編譯爲相依於平臺的01序列,而是翻譯爲中介格式的位碼。想要執行位碼文檔,平臺就必須安裝JVM。有了JVM,就能夠達到」編譯一次,處處執行」的跨平臺目的。對java程序而言,只認識一種操做系統,就是JVM,位碼文檔就是JVM的可執行文件。JVM實際上至關於java程序的操做系統,JVM還負責java程序的資源管理。JVM是執行Java程序(可執行文件.class)的操做系統(或容器)

    JRE:java的執行環境,用來部署Java程序,包括javaSE API和JVM。

    JDK:包括了java程序語言,工具程序與JRE。對於開發Java程序的人必須安裝JDK。

  • Public JRE和Private JRE

    Public JRE:是給java程序執行的平臺

    Private JRE:JDK自己就附帶,主要是開發java程序時測試之用
  • 只執行Java程序,不下載JDK能夠嗎?

    撰寫Java程序才須要JDK,若是你的程序只是想要執行,裝JRE就能夠。

  • 撰寫Java原始碼時須要注意:

    主文檔(後綴爲Java的文檔)的名字和類名稱(關鍵詞class後面的名稱)必須相同

    字母區分大小寫
  • class:定義類的關鍵詞後接類的名稱。前面的pubilc關鍵詞是指這個是這個類是個公開類。
  • main:規定形式爲
    pubilc static void main(String[] args)
  • PATH

    後綴是.java的文檔必需要編譯爲後綴爲.class的文檔才能在JRM中執行,編譯的工具程序是javac。
    要執行一個工具程序的時候,那個指令是放在哪裏的,系統是不知道的。
    當輸入一個指令而沒有指定路徑信息的時候,系統就會依照PATH環境變量中路徑順序,依次尋找各路徑下是否有這個指令。
    設定PATH的方式爲

    SET PATH="路徑"
    PATH是用於Windows/Unix/Linux等系統的,找不到javac.exe、java.exe是由於PATH沒有設置正確
  • CLASSPATH

    編譯後的文檔的後綴是.class,要運行的話就要啓動JRM,指令是

    java 編譯好的文檔的名稱.class

    和PATH類似,須要告訴系統這個文檔的位置。

    java -classpath 路徑 編譯好的文檔的名稱.class

    CLASSPATH是用於JVM(容器)的,使用javac和java命令找不到XXXX.class是由於CLASSPATH沒有設置正確

  • SOURCEPATH

    如今爲了實現把原始碼放在名爲src的文件夾中,而把編譯好的位碼放在名爲classes的文件夾中,就應該用如下命令

    從根目錄到src上一級的地址>javac -sourcepath src -d classes src/原始碼文檔的名字.java
  • 用package管理類

    package cc.openhome.util.
    pubilc class Console {
    代碼省略
    }
    第一句代碼的做用是將Console類放在cc.openhome.util包中。
    做爲一個原始碼文檔,在上一段已經要求要把原始碼放在名爲src的文件夾中,因此說如今原代碼必須放在src文件夾下的cc/openhome/util的文件夾中,這個文件夾須要本身手動建立。
    並且原始碼文檔編譯出來的位碼文檔必須放在classes文件夾下的cc/openhome/util的文件夾中
  • import

    import cc.openhome.util.console

    import後面是地址和類的名稱,這句代碼放在最前面,是爲了系統在讀到Console這個名稱時會知道到這個路徑下去尋找。

教材學習中的問題和解決過程

  • 第二章問題:javac等工具軟件也是用java撰寫的。那麼這些工具軟件用什麼編譯的呢?
  • 第三章問題:聲明局部變量後未指定任何值給它前就使用變量,編譯出錯該怎麼解決?
  • 第四章問題:比較浮點數時在要求準確度的狀況下,應該怎麼作。
  • 第五章問題:構造函數實現對象初始化流程的封裝,目的是什麼?
  • 第六章問題:繼承時使用extend關鍵字,private成員也被繼承,子類是否可以直接存取?
  • 第七章問題:若是兩個接口都定義了某方法,是否表示不一樣的行爲?
  • 第八章問題:在catch區塊進行完部分錯誤處理以後,怎麼將異常再拋出?
  • 第九章問題:數組在內存中回事連續的線性空間,在排序時想要較好的速度表現該怎麼作?
  • 第十章問題:在不使用inputStream時,怎麼關閉串流?
  • 第十一章:線程具備優先權,如何使用thread的方法設定優先權?
  • 第十二章問題:中間操做調用時並不會當即進行手邊的數據處理,那麼在何時纔會進行操做?
  • 第十三章問題:得到系統時間的方法
  • 第十四章問題:Buffer的直接子類都有一個allocate()靜態方法,Buffer的容量大小該怎麼獲取?
  • 第十五章問題:國際化的三個重要概念是?
  • 第十六章問題:數據庫操做相關的JDBC接口或類都位於 哪裏?
  • 第十七章問題:編譯時期若使用相關類,爲何編譯程序須要檢查對應的.class文檔中記載的信息?
  • 第十八章問題:定義enum時能夠自定義構造函數的條件是什麼?

代碼調試中的問題和解決過程

  • 問題1:怎麼搞到免費的IDEA?

    解決辦法:從官網上下載解壓打開Toolbox App,安裝IDEA,安裝過程當中選擇30天無償使用。安裝完後上網搜IDEA序列碼並複製,打開IDEA在菜單欄找到help中的註冊選項,而後把序列碼粘貼就行了
  • 問題2:git push origin master時提示上傳代碼失敗

解決辦法:
git pull origin master

代碼託管

  • 代碼提交過程截圖:

  • 代碼量截圖:

其餘(感悟、思考等,可選)

第一週花了不少時間研究JDK,IDEA還有git的安裝使用,也體驗了一把在vim和IDEA上撰寫編譯代碼,經過學習教材知道了一些java的基礎知識,收穫仍是很大的。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 12/12 1/1 12/12
  • 計劃學習時間:6小時

  • 實際學習時間:12小時

  • 改進狀況:第一週花了不少時間研究JDK,IDEA還有git的安裝使用,也體驗了一把在vim和IDEA上撰寫編譯代碼,經過學習教材知道了一些java的基礎知識,收穫仍是很大的。可是感受在效率上還不夠理想,也許是這周花了不少時間作鋪墊吧,下週注意調整。

參考資料

相關文章
相關標籤/搜索