201521123080《Java程序設計》第2周學習總結

1.本週學習總結

a.學習瞭如何創建遠程倉庫和本地倉庫並創建鏈接。
b.學習了一些基礎語法。java

2.書面做業

Q1.使用Eclipse關聯jdk源代碼,並查看String對象的源代碼(截圖)?分析String使用什麼來存儲字符串的?分析其構造函數public String(char value[])的實現原理?分析public String replace(char oldChar, char newChar)的實現原理,回答String的不可變性在該函數中如何體現?(重點)函數

String是字符串常量,在實例被建立後不可修改。學習

Q2.爲何要儘可能頻繁的對字符串的修改操做應該是用StringBuilder而不是String?ui

若是直接使用String,代碼在運行時候,還須要進行一次對象類型轉換,建立新的對象等等,既浪費運算資源,下降了運算效率,還佔據了多餘的內存空間。spa

Q3.比較兩個字符串的值是否相等?爲何不能用==直接進行比較?命令行

若是被定義的變量是用new函數新建立的存儲地址,那麼兩個值用==是不行的,因此最好用equal()。對象

Q4.嘗試使用字符串池的概念解釋以下程序段輸出結果,並回答這段代碼建立了幾個字符串對象:blog

String str1 =「hi「, str2=「hi「;
String str3 = new String(str1)
System.out.println(str1==str2);遊戲

輸出true 建立了兩個對象。ip

Q5.Integer i = 100;//100是基本類型,i是引用類型,爲何能夠將100賦值給i

在編譯程序時,會自動將程序代碼展開爲Integer i = new Integer(100)。

Q6.嘗試分析下面代碼輸出結果

Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false

第一個true 第二個false。

Q7.package與javac、 java、 -classpath、 -d
在 com.ibm包中編寫 StringUtil類,內有一方法

public static void foo1(){
System.out.println(StringUtil.class+" method:foo1");
}

在edu.jmu包中編寫Main類,其中掉了com.ibm.StringUtil的foo1方法

Q7.1 嘗試用命令行進行編譯並運行,截圖

Q7.2 將生成的StringUtil.class放到d:\lib下正確的目錄結構下,將Main.class放到d:\test下正確的目錄結構,嘗試在命令行下運行,並截圖。

Q7.3 Eclipse中源代碼放在哪一個目錄、class文件放在哪一個目錄?在Eclipse項目中按一下Ctrl+F11就能夠直接運行Main,當按下Ctrl+F11時,到底在哪一個目錄下執行了什麼樣的java命令?

源代碼在src中,class在bin中。

Q8.本身在這門課的目標與計劃

  1. 請描述一下你的技術基礎(會什麼語言,都寫了多少行代碼)
    C語言。JAVA。

  2. 一週準備花多少時間在這門課上?一週準備寫多少行代碼?採用怎樣的學習方式?遇到困難打算怎樣解決?
    3小時。50行。自主學習。百度。

  3. 關於這門課的smart目標 能和同窗合做編出一個小遊戲。

相關文章
相關標籤/搜索