日韩精品成人无码专区免费-国产99久久久久久免费看-国产精品丝袜久久久久久不卡-国产精品无码一区二区三区

java經典面試題集錦(六)

發布時間:2024-01-27 點擊:156
一、什么是數組?什么是鏈表?
(相關面試題推薦:java面試題)
數組就像身上編了號站成一排的人,要找第10個人很容易,根據人身上的編號很快就能找到。但插入、刪除慢,要望某個位置插入或刪除一個人時,后面的人身上的編號都要變。當然,加入或刪除的人始終末尾的也快。
鏈表是一種上一個元素的引用指向下一個元素的存儲結構,鏈表通過指針來連接元素與元素;
鏈表就像手牽著手站成一圈的人,要找第10個人不容易,必須從第一個人一個個數過去。但插入、刪除快。插入時只要解開兩個人的手,并重新牽上新加進來的人的手就可以。刪除一樣的道理。
java中,arraylist、linkedlist就是分別用數組和鏈表做內部實現的。
二、數組和鏈表有什么區別
不同:鏈表是鏈式的存儲結構;數組是順序的存儲結構。
鏈表通過指針來連接元素與元素,數組則是把所有元素按次序依次存儲。
(相關教程推薦:java入門教程)
鏈表的插入刪除元素相對數組較為簡單,不需要移動元素,且較為容易實現長度擴充,但是尋找某個元素較為困難;
數組尋找某個元素較為簡單,但插入與刪除比較復雜,由于最大長度需要再編程一開始時指定,故當達到最大長度時,擴充長度不如鏈表方便。
相同:兩種結構均可實現數據的順序存儲,構造出來的模型呈線性結構。
三、java集合和數組的特點
數組特點:大小固定,只能存儲相同數據類型的數據
集合特點:大小可動態擴展,可以存儲各種類型的數據
(相關視頻教程推薦:java視頻教程)
四、linkedlist底層實現方式
linkedlist是通過雙向鏈表去實現的,既然是鏈表實現那么它的隨機訪問效率比arraylist要低,順序訪問的效率要比較的高。每個節點都有一個前驅(之前前面節點的指針)和一個后繼(指向后面節點的指針),效果如下圖:
1、使用for適合循環arraylist以及數組,當大批量的循環linkedlist時程序將會卡死,for適合循環數組結構,通過下標去遍歷。
2、使用foreach適合循環linkedlist,使用雙鏈表結構實現的應當使用foreach循環。

英文郵件里常見的FYI,FYR,PLS都是什么意思
購買騰訊云學生服務器的流程
香港云服務器購買價格
開通了虛擬主機怎么上傳內容
筆記本電腦怎么充分發揮電池最大效果
購買了云服務器怎么使用
網站沒法打開-其他問題
中文域名要多少錢?注冊中文域名有什么優勢?