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