201621123058《java程序设计》第二周学习总结
生活随笔
收集整理的這篇文章主要介紹了
201621123058《java程序设计》第二周学习总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.本周學習總結
這周java的學習了解到了java種的基本引用類型,java是面向對象的一種語言,內存中儲存了基本類型,還有各種對象。了解了一些運算符和表達式的使用以及各種類型數據,`boolean`、整數類型、浮點類型。還有就是一些基本的輸入輸出以及數組的基本定義:如何定義一維數組、多維數組。慢慢試著學會一些基本java程序的編寫。2. 書面作業
2.1 String-使用Eclipse關聯jdk源代碼
2.1.1 查看String對象的源代碼(截圖),分析String使用什么來存儲字符串?
從源代碼來看,`String`是使用字符數組來儲存字符串。2.1.2 分析其構造函數public String(char value[])的作用?
通過char數組轉換成String對象,char作為接口的數組。>來自360問答2.1.3 閱讀public String replace(char oldChar, char newChar)方法的代碼,回答String的不可變性在該函數中如何體現?(重點)
根據源代碼中`private final char value[];`可以看出String的不可變性,從final中可以看出其不可變性。2.1.4 簡述String與字符數組的關系,使用字符數組就可以處理字符串,為什么還需要String呢?
String通過字符數組儲存字符串,字符數組是我們常用的處理字符串的方法,String本質上就是字符數組,但要呈現在軟件頁面上得是文本,這時String就派上用場了。>來自360問答2.2 StringBuilder
2.2.1 結合PTA -2(StringBuilder) ,說明為什么頻繁修改字符串時,應該使用StringBuilder而不是String?
在頻繁改變字符串時要占用大量內存 ,而`StringBuilder`在頻繁修改過程中不會占用太多的內存空間,`String`為不可變,每一次要重新創建空間儲存字符串。2.2.2 閱讀jdk文檔,查詢StringBuilder的append(char[] str)方法功能是什么?試分析StringBuilder內部使用什么來存放字符?調用StringBuilder的append(char[] str)方法時,是如何實現添加字符的操作?
2.3 字符串與字符串池
2.3.1 嘗試使用字符串池的概念解釋如下程序段輸出結果,并回答這段代碼創建了幾個字符串對象:
`String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);` 創建了三個字符串對象。2.3.2 重點:對基本類型我們可以使用==比較兩個值是否相等,對于引用類型(如String, Integer、數組等)為什么不能使用==比較?應該怎樣比較他們的值是否相等呢?
對于基本類型`==`比較的是地址是不是相等,然而引用類型是內容相等,但地址并不相等。如果要比較他們的值應該使用`a.equals(b)`。2.4 Wrapper(包裝類)
2.4.1 Integer i = 100;//100是基本類型,i是引用類型,為什么可以將100賦值給i?Integer x = 100; int y = x+1;x++;這一串命令中包含了些什么操作?
在程序運行是100會被自動裝箱,包括了程序運行時的一些自動裝箱,拆箱操作。2.4.2 Java為什么有了基本數據類型,還需要其包裝類呢?包裝類能給我們帶來什么好處呢?
-基本數據類型之間不能直接轉換,得通過包裝類來實現轉換。-可以方便函數之間值得傳遞。-有些要用到Object的地方能夠將基本數據類型進行轉換。2.5 實驗總結
2.5.1 結對編程實踐:使用結對編程的方式完成本周編程題目,即兩個人同時合作完成實驗題目(可1題也可多題,但最好是是兩個人都沒做過的題目)。推薦實施步驟:1.兩個人坐在同一臺電腦屏幕前判題,討論、決定大概由誰先寫。2. 1個人先編5分鐘(自己商量多少分鐘),同時另一個人觀察對方編程或者查相關資料。3. 5分鐘后,簡單討論后,換另外一個人繼續編(請一定要換,另一個人如果無法接受應由第一個人講解大概思路以方便其接受)。并完成如下作業:a.描述結對隊友姓名、結對過程,提供非擺拍的兩人在討論、細化和編程時的結對照片。b.結對編程真的能夠帶來1+1>2的效果嗎?通過這次結對編程,請談談你的感受和體會(如是否有利于自己編程水平的提高、是否有利于開拓編程思路)。
合作對象:林裕恒感受、體會:結對編程效果還是比一個人蒙頭苦想要容易一點,畢竟兩個人碰到困難兩個大腦在思考,所以還是比較喜歡結對編程的形式(但是我所理解的結對合作的方式是遇到問題可以和別人去討論,并非要這種坐在一臺電腦前,輪換著打代碼)。對自己和伙伴的編程提高都有所幫助。2.5.2 PTA-1綜合小測驗
本題大致分為四個部分,fib、sort、search、getBirthDate,主要的還是取生日和對一串數進行排序這兩個,取生日和第二題中的身份證驗證差不多排序的話就用到`Array.sort()`進行排序。2.5.3 PTA-3身份證排序。并回答:使用sort2方法進行排序可以對出生年月日進行升序排序,如果現在有需要對其進行降序排序,或者按照其中的出生月份排序,怎么解決呢?
大部分時間都花到這道題目上了,剛開始想接著老師的代碼打,結果發現解決不了。最后上網查了代碼,然后慢慢自己改才解決的。通過創建三個strs數組,對于sort1主要是先將6-14位取出來,然后對取出來的這些字符串利用函數`Collections.sort();`進行排序;倘若是要對其進行降序排序,則將出生月份取出來并將其轉換位整型,在進行排序。2.5.3 PTA-4動態數組
最開始只是簡單的把九九乘法表打印出來,并沒有將后面那一串打印出來,不知道`Arrays.deepToString()`的用法,后面經過詢問同學后才懂得。還有就是pta中的格式問題,“%-7s”就可以解決“從第1個2開始到第二項`2*2=4首字母之間,總共有7個字符(包含空格,此例中包含2個空格)”這個問題。還有要注意的就是最后那個后面不能有空格,我的處理方式如下圖:2.5.4 (重點:小測題目)PTA-8 ArrayList入門。并回答:為什么有了數組還要使用ArrayList?
本題考查的是jdk中一些現存函數的使用,然后聯系學到的知識對這些函數進行使用。ArrayList是為動態數組,占用內存少,而且更加方便功能齊全。2.5.6 (浮點數計算)
上課時老師提到過,浮點數之間不能直接相加減,應該用到BigDecimal。2.6 選做:公交卡里應該還有多少錢?請分析原因
公交卡中出現四千萬余可能因為公交卡欠款,所以程序出現亂碼。3.碼云及PTA
3.1 碼云代碼提交記錄
-在碼云的項目中,依次選擇“統計-Commits歷史-設置時間段”,然后搜索并截圖
3.2 截圖題集“Java基本語法”PTA提交列表
3.3 使用老師發的jar程序統計每周的代碼量
| 2 | 424 | 424 | 9 | 9 |
轉載于:https://www.cnblogs.com/xiaokai668/p/7566794.html
總結
以上是生活随笔為你收集整理的201621123058《java程序设计》第二周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阶梯到XML:1级 - XML简介
- 下一篇: Delphi TScrollBar 用于