1. 程式人生 > >20172325 2017-2018-2 《程序設計與數據結構》第二周學習總結

20172325 2017-2018-2 《程序設計與數據結構》第二周學習總結

int 虛擬 clas 能力 圖片 需要 面向對象 轉化 恢復

---恢復內容開始---

20172325 2017-2018-2 《程序設計與數據結構》第一周學習總結

教材學習內容總結

這周對教材的2.1~2.6部分進行了學習,這一部分滿足了我對編程最初的願望,就是利用電腦做一些簡單的事。教材內容主要包括:
(1)字符串的轉行、拼接和轉義序列;
(2)變量和常量的定義以及對變量進行賦值;
(3)基本數據類型(整型、浮點型、字符型和布爾型),這一節在理解上比較復雜,是一些基本的概念和定義,需要結合實際操作來掌握;
(4)表達式,通常完成計算;
(5)交互式程序,達到了面向對象的平臺,這也是我在這一章內容裏收獲最大最高興的一部分

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

  • 問題1:對於連接符的使用,如果連接符後是數字的話,可以不用引號就可以轉化成字符串,但是如果加了引號,或者是單詞句子會怎樣。
  • 問題1解決方案:需要實際敲出來實驗,結果是數字加不加引號都沒關系,但單詞句子就不行,除非對變量進行過聲明。在這過程中我還發現一個問題,如果在我寫完“+”之後,我想換行,需要用到“\n”,如果我不加引號就沒用,我只有在加了引號之後把它變成一個字符串才能達到目的。

  • 問題2:在做PP2.4這個問題時,我遇到了兩個輸入值連在一起的情況,忘了截圖,是關於next()和nextline()的區別。
  • 問題2解決方案:從百度上搜索了問題,結果是我發現next()方法返回時Enter間之前的所有字符,他是可以得到帶空格的字符串的;而next()會自動消去有效字符前的空格,只返回輸入的字符,不能得到帶空格的字符串。

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

  • 問題1:在做了前面的練習之後,我想得到一個有小數點的結果,但是完全不知道怎麽修改
    技術分享圖片

  • 問題1解決方案:看了書之後,還是不太清楚,又上網查了相應的方法,得到的解釋是他已經將小數部分省略,輸出浮點數,我需要在程序內部將整型數改為浮點數。

  • 問題2:最後遇到的問題,到了寫博客還沒能解決,代碼托管的腳本運行出錯,沒了我的代碼行數。
    技術分享圖片
  • 問題2解決方案:暫時沒有能夠解決。

  • 問題3:print和println的區別不是特別清楚。
  • 問題3解決方法:實際操作
    技術分享圖片

  • 問題4:這是一個特別的發現,不知道帶有空格的文件名怎麽打開,例如“week 2”
  • 問題4解決方法:各種嘗試!這是目前為止我知道的最好用的方法。
    技術分享圖片

代碼托管

上周考試錯題總結

  • 1、java程序被歸為軟件類最合適。解析的翻譯是:程序被分類為軟件,以區分它們與計算機(硬件)的機制。存儲和處理器是兩種硬件,而輸入是程序處理的信息。書上寫的是,軟件包括程序和程序執行所需要的數據。java是一種程序,所以應該屬於軟件。

  • 2、易變性是RAM的性質。解析的翻譯是:波動意味著,如果電源被關閉,內存的內容就會丟失。這是RAM(隨機存取存儲器)的真實情況,但不是ROM(只讀存儲器)或磁盤。軟件和計算機網絡不是記憶的形式。做題時我沒有理解這個易變性是什麽意思,看完答案之後,我才知道,易變性大概就是它儲存的東西不穩定,這個符合隨機存儲器的特點。

  • 3、通過引用地址直接獲得存儲項的能力,被稱為隨機存取。解析的翻譯是:隨機存取是指訪問任何物品都是同樣容易的,並且任何物品都是基於它的地址來檢索的。隨機訪問是RAM和ROM內存使用的訪問形式。磁盤訪問,稱為直接訪問,是一個類似的想法,直接和隨機訪問有時也被稱為同義詞。順序存取被磁帶使用。通過這道題,知道了,按照存儲方式分按存儲方式分 ,存儲器可以分為隨機存儲器和順序存儲器。兩者的區別是:隨機存儲器可以在任何存儲單元的內容都能被隨機存取,且存取時間和存儲單元的物理位置無關,而順序存儲器只能按某種順序來存取,存取時間和存儲單元的物理位置有關。對於只讀訪問,我認為意思就是只可以看的東西,而完全權限是可以在裏面進行操作。

  • 4、Java is an example of a(n) (Java是一個E的例子)
    A . machine language (機器語言)
    B . assembly language (匯編語言)
    C . high-level language (高級語言)
    D . fourth generation language (第四代語言)
    E . both C and D (C和D都是)
    解釋:誤選C選項,認為Java不屬於第四代語言,書上也沒有明確給出第四代語言的定義。通過搜索其原意是非過程化程序設計語言,是針對以處理過程為中心的第三代語言提出的,希望通過某些標準處理過程的自動生成,使用戶只說明要做什麽,而把具體的執行步驟的安排交軟件自動處理,因為Java是面向對象的,且屬於高層次的語言,所以應該也屬於第四代語言。

  • 5、A unique aspect of Java that allows code compiled on one machine to be executed on a machine of a different hardware platform is Java‘s (Java的獨特之處在於其___,它允許在一臺機器上編譯的代碼在不同的硬件平臺上執行)
    A . bytecodes (字節碼)
    B . syntax (語法)
    C . use of objects (所使用的對象)
    D . use of exception handling (所使用的異常處理)
    E . all of the above (以上皆是)
    解釋:Java程序的翻譯過程是首先將它編譯成字節碼,它在體系結構上是中立的(也就是說,無論架構平臺是什麽,都可以使用它們)。要執行該程序,字節碼必須由Java編譯器進一步編譯或由Java虛擬機解釋。

  • 6、解析的翻譯是:Java標識符不能包含字符“!”在他們的回答中,C、D和E都是錯的。“類”這個詞在Java中是一個保留的詞,不能用作標識符。標識符“i”是完全合法的,盡管它不一定是一個好的標識符,因為它沒有描述它的用法。書上說,標識符可以分為三大類,class是編程語言自身保留用於特殊用途的單詞。

  • 7、Java byte codes are directly executable whereas Java source code is not. (Java字節碼是可以直接執行的,而Java源代碼則不是。) ×
    解析:Java編譯器將源代碼編譯為字節碼,然後Java虛擬機解釋執行所產生的字節碼,而並非直接執行,這兩者均是不可以直接執行的。

  • 8、Which of the following is true regarding Java syntax and semantics? (關於Java的語法和語義,下列哪一項是正確的?)
    A . a Java compiler can determine if you have followed proper syntax but not proper semantics (Java編譯器可以判定你是否遵循正確的語法,但不能判定正確的語義)
    B . a Java compiler can determine if you have followed proper semantics but not proper syntax (Java編譯器可以判定你是否遵循正確的語義,但不能判定正確的語法)
    C . a Java compiler can determine if you have followed both proper syntax and semantics (Java編譯器可以判定你是否遵循正確的語義和語法)
    D . a Java compiler cannot determine if you have followed either proper syntax or semantics (Java編譯器不能判定你是否遵循正確的語義或語法)
    E . a Java compiler can determine if you have followed proper syntax and can determine if you have followed proper semantics if you follow the Java naming convention rules (如果你遵循Java的命名規範,Java編譯器就可以判定你是否遵循正確的語法,並且可以判定你是否遵循正確的語義)
    解釋:所有語言的編譯器都能夠檢測語法錯誤,因為不恰當地使用語法會導致編譯器無法正確翻譯代碼的情況。 然而,編譯器無法遵循程序的語義,因為這需要一定程度的理解程序打算做什麽,而計算機沒有理解(至少在這一點上)。

  • 9、Following Java naming convention, which of the following would be the best name for a class about store customers? (下列Java命名規範中,哪個是關於“store customers”類的最佳命名?)
    A . StoreCustomer
    B . Store Customer
    C . storeCustomer
    D . STORE_CUSTOMER
    E . Store-Customer
    解析:這道題我們采用對比排除法,Java的命名約定,一般都應以大寫字母開始,多個字的名字應該保持第一個詞的第一個字母大寫,其余字符是小寫。詞語應連接在一起,沒有空格,或者可以使用“_”連接。答案B和E是不合法的名稱,答案C、D不符合我們一般的命名規則,所以只剩下A項。

  • 10、Java byte codes are directly executable whereas Java source code is not. (Java字節碼是可以直接執行的,而Java源代碼則不是。)false
    解釋:java源代碼和字節碼都是可以執行的,都必須編譯為機器語言。java字節碼與真正的機器語言代碼之間的區別在於:字節碼獨立於處理器類型,可以在不同的處理平臺之間移植。

感悟

內容比上周復雜,但是交互式程序滿足了我對編程的興趣,繼續努力唄!

學習進度條

腳本出了問題,征得張旭升助教同意,暫時沒法統計,問題解決後補上。

20172325 2017-2018-2 《程序設計與數據結構》第二周學習總結