201621123085 《Java程序设计》第2周学习总结
---恢復內容開始---
1. 本周學習總結
這周我們學習了兩種不同的數據類型,一種為基本數據類型,一種為引用數據類型。其中布爾型是Java特有的數據類型,它取值只有true和false。引用類型類似于c中的指針。其中字符串類型string是最常用引用類型之一。這兩種數據類型相對于c中能更好的處理問題。
2. 書面作業
String-使用Eclipse關聯jdk源代碼
1.1 查看String對象的源代碼(截圖),分析String使用什么來存儲字符串?
##
根據string源代碼分析,string使用字符數組來存儲字符串。
1.2 分析其構造函數public String(char value[])的作用?
##該函數的作用是通過char數組,生成String字符串對象,接口中的參數是一個char數組。
1.3 閱讀public String replace(char oldChar, char newChar)方法的代碼,回答String的不可變性在該函數中如何體現?(重點)
##string在這個函數中通過使用字符數組來存儲,一旦創建后內容就無法改變,如果直接改變string內容,則會出現新的一個字符數組。
1.4 簡述String與字符數組的關系,使用字符數組就可以處理字符串,為什么還需要String呢?
##string類具有不可變形,用string更直接更方便。
2.1 結合PTA -2(StringBuilder) ,說明為什么頻繁修改字符串時,應該使用StringBuilder而不是String?
##StringBuilde的內部實現方式和String不同,StringBuilde在進行字符串處理時,不生成新的對象,在內存使用上要優于String類。所以在實際使用時,如果經常需要對一個字符串進行修改,例如插入、刪除等操作,使用StringBuilde要更加適合一些。
2.2 閱讀jdk文檔,查詢StringBuilder的append(char[] str)方法功能是什么?試分析StringBuilder內部使用什么來存放字符?調用StringBuilder的append(char[] str)方法時,是如何實現添加字符的操作?
##將字符數組序列有序的附加在StringBuilder類中;使用動態數組來存放字符。
字符串與字符串池
3.1 嘗試使用字符串池的概念解釋如下程序段輸出結果,并回答這段代碼創建了幾個字符串對象:
String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);
根據字符串池的概念,我們可以知道該程序創建了str1 ,str2兩個字符串對象,并且地址相同,而str3為新的字符串對象。
3.2 重點:對基本類型我們可以使用==比較兩個值是否相等,對于引用類型(如String, Integer、數組等)為什么不能使用==比較?應該怎樣比較他們的值是否相等呢?
因為==是用來判斷兩個引用類型變量存放的地址是否相等;用equal來比較。
Wrapper(包裝類)
4.1 Integer i = 100;//100是基本類型,i是引用類型,為什么可以將100賦值給i?Integer x = 100; int y = x+1;x++;這一串命令中包含了些什么操作?
## 因為這是Java中的自動裝箱功能;先將100裝箱為integer類型,再將100拆箱為int類型。
4.2 Java為什么有了基本數據類型,還需要其包裝類呢?包裝類能給我們帶來什么好處呢?
## 出現了自動拆箱和自動裝箱,大大的縮減了繁瑣的代碼,更加方便了成員員的編程。
實驗總結
5.1 結對編程實踐:使用結對編程的方式完成本周編程題目,即兩個人同時合作完成實驗題目(可1題也可多題,但最好是是兩個人都沒做過的題目)。推薦實施步驟:1.兩個人坐在同一臺電腦屏幕前判題,討論、決定大概由誰先寫。2. 1個人先編5分鐘(自己商量多少分鐘),同時另一個人觀察對方編程或者查相關資料。3. 5分鐘后,簡單討論后,換另外一個人繼續編(請一定要換,另一個人如果無法接受應由第一個人講解大概思路以方便其接受)。并完成如下作業:a.描述結對隊友姓名、結對過程,提供非擺拍的兩人在討論、細化和編程時的結對照片。b.結對編程真的能夠帶來1+1>2的效果嗎?通過這次結對編程,請談談你的感受和體會(如是否有利于自己編程水平的提高、是否有利于開拓編程思路)。
## 額,,首先每個人對編程的能力不一樣,思路不同,這次的結對編程,充分感受到了別人的能力是多么強。
5.2 PTA-1綜合小測驗
##用switch語句輸入,將字符轉換為數,然后使用sort,
5.3 PTA-3身份證排序。并回答:使用sort2方法進行排序可以對出生年月日進行升序排序,如果現在有需要對其進行降序排序,或者按照其中的出生月份排序,怎么解決呢?
##3此題采用選擇排序,運用了string類,不清楚
5.4 PTA-4動態數組
# 構建一個二維數組來存放數據,采用for循環將數據一個一個存放
5.5 (重點:小測題目)PTA-8 ArrayList入門。并回答:為什么有了數組還要使用ArrayList?
#ArrayList可以在任意位置插入和刪除項,并且對數據能執行很多的操作,添加數據,刪除數據,清空數據等。
3. 碼云及PTA
3.1. 碼云代碼提交記錄
3.2 截圖題集“Java基本語法”PTA提交列表
3.3 使用老師發的jar程序統計每周的代碼量
| 15 | 15 | 210 | 210 |
轉載于:https://www.cnblogs.com/k-wzj/p/7582458.html
總結
以上是生活随笔為你收集整理的201621123085 《Java程序设计》第2周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Emscripten教程之入门指导
- 下一篇: Eclipse-Java代码规范和质量检