20172325 2018-2019-1 《Java程序設計》第二周學習總結

20172325 2018-2019-1 《Java程序設計》第二周學習總結

教材學習內容總結

3.1集合

  • 集合是一種聚集、組織了其他對象的對象。集合可以分為兩大類:線性集合和非線性集合。
  • 線性集合:一種其元素按照直線方式組織的集合。
  • 非線性集合:一種其元素按某種非直線方式組織的集合。
  • 集合中元素的彼此之間的組織形式通常由元素添加到集合的次序和元素自身的一些內在關系決定。
  • 抽象數據類型(ADT):是一種在程序設計語言中尚未定義其值和操作的數據結構類型。ADT的抽象性體現在,ADT必須對實現細節進行定義,且這些對用戶是不可見的。
  • Java集合API(應用程序編程接口):一個類集,表示了一些特定類型的集合,這些類的實現方式各不相同。

3.2棧集合

  • 棧(STACK)是一種線性集合,其元素的添加和刪除都是在同一端進行的。其遵循后進先出(LIFO)原則,可顛倒順序。
  • 棧的基本操作
  • 操作:描述
    push:添加一個元素到棧的頂部
    pop:從棧的頂部移出一個元素
    peek:查看棧頂部的元素
    isempty:確定棧是否為空
    size:確定棧的元素數目

3.3主要的面向對象概念

  • 利用多態引用和繼承,可以創建可以儲存任意類型的對象的集合。
  • 多態引用是一個引用變量,他可以在不同地點引用不同類型的對象。術語“多態性”可定義為“具有多種形式”。通過多態引用調用的某個方法,在每次調用的時候都可以發生變化。
  • 繼承可用于創建一個類層次,一個引用變量可用于指向與之相關的任意對象。繼承就是從已有類派生出一個新類的過程。新類自動地含有初始類的部分和全部變量和方法。
  • 泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。

3.4使用棧計算后綴表達式

  • 由棧提供的操作與后綴表達式計算過程有著很好的一致性。使用棧來計算后綴表達式的算法描述如下:從左到右掃描表達式,依次識別出每個符號(操作符或操作數)。如果是操作數,就將其壓入(push)棧中。若是操作符,則從棧中彈出(pop)兩個操作數,并把先彈出數放在符號右側,后彈出數放在符號左側進行計算,然后把計算結果壓入(push)到棧中,循環往復,當進行到表達式的末尾時,棧中所剩余的元素便是該表達式的結果。
  • javadoc注釋(為Java添加注釋的官方標準):以/**開始、以 */結束。Javadoc可用于創建關于類集的在線的HTML文檔,在線的JavaAPI文檔就是例子。

3.6棧ADT

  • Java接口定義了一個抽象方法集,有助于把抽象數據類型的概念與其實現分開。
    public interface stackADT <T>

3.7用數組實現棧

  • 數組中的單元數量稱為容量,該值儲存在數組的length常量中,數組一旦創建好,其容量是不能改變的。

3.8ArrayStack類

  • 泛型(包括泛型數組)不能被實例化。所以我們必須創建一個存儲Object引用的數組,然后把他轉換成泛型數組。
  • 在將Object數組轉換成泛型數組時一定會出現未檢驗類型轉換警告,所以加上@SuppressWarnings(“unchecked”)即可。
  • push、pop、peek、isempty、size等方法的具體使用。

4.1鏈接作為引用

  • 對象引用變量可以用來創建鏈式結構,鏈式結構是一種數據結構
  • 對象引用變量存放的是對象的地址,表示對象在內存中的存儲位置
  • 在鏈表中存儲的對象通常泛稱為該鏈表的結點,注:需要一個單獨的引用變量來表示鏈表的首結點,鏈表終止于其next引用為空的結點

4.2管理鏈表

  • 對于管理鏈表時,進行刪除和插入的方式的順序是很重要的,如果不當,會將出現某段結點消失的情況
    改變引用順序是維護鏈表的關鍵

4.3無鏈接的元素

  • 存儲在集合中的對象不應該含有基本數據結構的任何實現細節

4.4JavaAPI中的棧

  • java.util.Stack類是從Vector派生而來的,它帶給了棧一些不恰當的操作。

4.5使用棧來穿越迷宮

  • 這一節是迷宮的類型。說明的是:可以用棧來模擬遞歸處理,以跟蹤恰當的數據

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

  • 問題1:在做選擇排序和冒泡排序的時候對于冒泡排序法完全沒了印象
  • 問題1解決方案:
    冒泡排序:
    原理:比較兩個相鄰的元素,將值大的元素交換至右端。
    思路:依次比較相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直至比較最后兩個數,將小數放前,大數放后。重復第一趟步驟,直至全部排序完成。
    第一趟比較完成后,最后一個數一定是數組中最大的一個數,所以第二趟比較的時候最后一個數不參與比較;
    第二趟比較完成后,倒數第二個數也一定是數組中第二大的數,所以第三趟比較的時候最后兩個數不參與比較;
    依次類推,每一趟比較次數-1;
  • 冒泡排序的思維是最簡單的,但是代碼實現起來并不是很容易。當時用循環來比較的時候,就一直要把鏈表的節點向后推,但要用一個中間變量temp來保存前面的數字,然后做數字交換,最后把遍歷的起始節點重指向頭結點。
  • 由于細節比較或是循環問題,速度上體現為:插入排序>選擇排序>冒泡排序,三種排序的比較:其時間復雜度都是O(n^2)。

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

  • 問題1:在藍墨云的作業中,有個要求是實現刪除和插入的操作,但是最開始我沒有注意到,結果就是1332959-20180918222741747-779872071.png

  • 問題1解決方案:聽同學說我做的少了很多東西,又重新增加了一些代碼,實現了插入和刪除1332959-20180918222834567-293390607.png結果是1332959-20180918222846442-1221309849.png

代碼托管

1332959-20180918224143757-1725710162.png

上周考試錯題總結

1332959-20180920102948217-959574907.png

  • 理解情況:在做這道題的時候,我太過于鉆牛角尖,我認為少了“或費極少的力”,于是錯了,但是現在看來更加深了理解。

1332959-20180920103208937-115538333.png

  • 理解情況:軟件工程,不是電氣工程。

1332959-20180920103410656-664823183.png

  • 理解情況:書上的內容,沒有認真看書。

1332959-20180920103603340-1472838449.png

  • 理解情況:棧的操作是先進后出,顛倒了數據的順序,故不能保存順序。

1332959-20180920103904726-1266183629.png

  • 理解情況:當時沒有很理解書上關于增長函數的圖表,后來理解之后發現O(2n)的函數增長最快。

1332959-20180920104145487-722447298.png

  • 理解情況:根據增長函數的圖像可知。

結對及互評

  • 博客中值得學習的或問題:
    • 在教材和代碼問題上很詳細,同時很會找問題記錄問題。
  • 代碼中值得學習的或問題:
    • 代碼操作并沒有像我一樣忘記很多
    • 對代碼的規范性也更加注意了
  • 基于評分標準,我給本博客打分:9分。
  • 20172306

其他(感悟、思考等,可選)

這周有了新的學習任務,開始慢慢找回原來的感覺,但是還是感覺忘了很多東西,著實花了不少功夫,還有因為學代會的召開,耽誤的兩節課程,我會抓緊時間找同學找老師問問題補回來。

學習進度條

代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
目標5000行30篇400小時
第一周0/01/120/20
第二周941/84812/218/20

參考資料

  • Java學習筆記(第8版)

  • 《Java學習筆記(第8版)》學習指導

轉載于:https://www.cnblogs.com/20172325DYK/p/9671656.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249483.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249483.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249483.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫視圖

測試表:user有id&#xff0c;name&#xff0c;age&#xff0c;sex字段 測試表:goods有id&#xff0c;name&#xff0c;price字段 測試表:ug有id&#xff0c;userid&#xff0c;goodsid字段 視圖的作用實在是太強大了&#xff0c;以下是我體驗過的好處&#xff1a; 作用一&…

題解 luogu P2568 GCD

題解 luogu P2568 GCD 時間&#xff1a;2019.3.11 歐拉函數前綴和 題目描述 給定整數\(N\)&#xff0c;求\(1\le x,y \le N\)且\(\gcd(x,y)\)為素數的數對\((x,y)\)有多少對. 分析 枚舉素數\(p\), 先求出\(1\le x,y \le \left \lfloor \dfrac n p \right \rfloor\)且\(\gcd(x, …

解決前后臺發送請求或者接口之間發送請求亂碼的問題

前后臺傳中文亂碼&#xff1a; 前臺使用encodeURI 進行編碼 后臺使用decode進行解碼 如果接口之間調用出現亂碼.接收方是&#xff1f;&#xff1f;&#xff1f;&#xff1f;這種。傳送方式明文的處理方式&#xff1a; 發送方使用decode 進行編碼&#xff1a; 接收方使用的ecod…

MSDN幫助文檔 無法顯示該網頁 的問題解決方案(轉)

MSDN幫助文檔 "無法顯示該網頁" 的問題解決方案 以前就遇到過這樣的問題&#xff0c;還以為是IE7導致的。后來重新安裝了IE7也沒有解決。后來就重新安裝MSDN了&#xff0c;非常郁悶。今天終于知道原因了。因為開了HijackThis刪除了一些注冊協議&#xff0c;然后發現M…

.net Core發布至IIS完全手冊帶各種踩坑

服務器環境配置 和各位大爺報告一下我的服務器環境 : Windows Server 2012 iis 8 小插曲開始: 運維大哥在昨天給了我一臺新的server 0環境開始搭建 。 并且沒有安裝任何的系統補丁。 第一件事情請開始打 補丁 打完補丁之后有時補丁會不完全 ,所以需要去官網獲取補丁: KB2919355…

Unity --- MeshRenderer之網格合并

創建如圖所示的對象結構,parent為空對象&#xff0c;然后將下面的代碼掛載到parent對象上運行即可。 1 using UnityEngine;2 using System.Collections;3 4 public class CombineMeshAndMaterials : MonoBehaviour5 {6 void Start()7 {8 CombineMesh();9 }…

css 盒模型的屬性

1、盒模型 2、display 3、浮動轉載于:https://www.cnblogs.com/Tang854416/p/9676424.html

前后端分離

、前后端分離的好處 &#xff08;1&#xff09;徹底解放前端 &#xff08;2&#xff09;提高工作效率&#xff0c;分工更加明確。 &#xff08;3&#xff09;局部性能提升 &#xff08;4&#xff09;降低維護成本 2、前后端分離的概念 后臺只需要提供API接口&#xff0c;…

Win10還原被Windows Defender隔離的文件

Win10最新版本的Windows Defender隔離/刪除的文件沒有還原的選項&#xff0c;導致很多破解文件或是注冊機直接隔離&#xff0c;到威脅歷史記錄中去卻無法恢復。經過各個嘗試&#xff0c;到微軟官方論壇中也嘗試了很多方法&#xff0c;后來發現竟然恢復啦。各位小伙伴可以試試這…

AtCoder Grand Contest 013 題解

A - Sorted Arrays 貪心&#xff0c;看看不下降和不上升最長能到哪&#xff0c;直接轉移過去即可。 1 //waz2 #include <bits/stdc.h>3 4 using namespace std;5 6 #define mp make_pair7 #define pb push_back8 #define fi first9 #define se second 10 #define ALL(x…

servlet架構解析

https://www.jianshu.com/p/d433b5fb87e2

(Review cs231n) Backpropagation and Neural Network

損失由兩部分組成&#xff1a; 數據損失正則化損失&#xff08;data loss regularization&#xff09; 想得到損失函數關于權值矩陣W的梯度表達式&#xff0c;然后進性優化操作&#xff08;損失相當于海拔&#xff0c;你在山上的位置相當于W&#xff0c;你進行移動&#xff0c…

springboot restful

https://www.jianshu.com/p/733d788ea94d

【計算機算法設計與分析】——排序

一.排序 二.插入排序 &#xff08;1&#xff09;算法描述 &#xff08;2&#xff09;性能分析 &#xff08;3&#xff09;尋求優化 三.歸并排序 &#xff08;1&#xff09;算法思想 &#xff08;2&#xff09;性能分析 &#xff08;2&#xff09;示例 &#xff08;3&#xff09…

QT 隨機數生成

下面總結了QT中隨機生成的方法&#xff08;僅供學習參考&#xff09;&#xff0c;分為舊方法和新方法&#xff0c;一般來說&#xff0c;舊的方法已經被拋棄&#xff0c;在開發新的應用中推薦使用新方法。 C Code 123456789101112131415161718192021222324#include <QCoreApp…

獲取/設置IFRAME內對象元素的幾種JS方法

獲取/設置IFRAME內對象元素的幾種JS方法 iframe瀏覽器ie文檔微軟&#xff11;。IE專用(通過frames索引形象定位)&#xff1a; document.frames[i].document.getElementById(元素的ID); &#xff12;。IE專用(通過IFRAME名稱形象定位)&#xff1a; document.frames[iframe的name…

高并發

https://blog.csdn.net/java_xth/article/details/81162088

多人游戲服務器

https://www.getmangos.eu/轉載于:https://www.cnblogs.com/aibox222/p/9682697.html

Hbase 各個角色的工作。

HMaster的作用&#xff1a; 為region server 分配region&#xff1b;負責region server的負載均衡&#xff0c;region分裂完成監控&#xff1b;處理schema更新請求&#xff0c;數據表的創建&#xff0c;更新&#xff1b;HDFS上的垃圾文件回收&#xff1b;發現失效的region serv…

Activiti中的關于子流程中的并發節點標記處理

最近在研究一個輕量級的工作流引擎Activiti&#xff0c;就遇到了子流程中無法標記其并發節點的問題&#xff0c;經過幾天的研究&#xff0c;想到了一個簡單易懂的方法&#xff0c;總結如下&#xff0c;希望對你們能有所幫助&#xff0c;有寫的不對的地方&#xff0c;還希望大家…