實習面試 北京途銳資訊科技有限公司技術1面

2021-08-28 23:10:46 字數 2392 閱讀 6078

1string類可以被繼承嗎?

2過載,重寫的區別?

3集合了解吧?有哪些?arraylist和linkedlist的區別?arraylist和陣列的區別?

4stringbuilder/stringbuffer了解嗎?

1string類可以被繼承嗎?

考察點:string類的原始碼

因為sting是這樣定義的:public final class string extends object,裡邊有final關鍵字,所以不能被繼承。

什麼樣的類不能被繼承?

2過載,重寫的區別?

過載:方法名相同,參不同

重寫:子類重寫父類方法,方法名相同,參同,只是方法體不同

3集合了解吧?有哪些?arraylist和linkedlist的區別?陣列和arraylist的區別?

考察點:arraylist和linkedlist的原始碼,底層實現

arraylist和linkedlist的大致區別如下:

1.arraylist是實現了基於動態陣列的資料結構,linkedlist基於鍊錶的資料結構。 

2.對於隨機訪問get和set,arraylist覺得優於linkedlist,因為linkedlist要移動指標。 

3.對於新增和刪除操作add和remove,linedlist比較佔優勢,因為arraylist要移動資料。 

arraylist內部是使用可増長陣列實現的,所以是用get和set方法是花費常數時間的,但是如果插入元素和刪除元素,除非插入和刪除的位置都在表末尾,否則**開銷會很大,因為裡面需要陣列的移動。

linkedlist是使用雙鏈表實現的,所以get會非常消耗資源,除非位置離頭部很近。但是插入和刪除元素花費常數時間。

從記憶體上看,arraylist是連續的儲存空間,當新增資料超過了集合現有長度是集合會重新擴容,該過程是非常消耗效能的,當記憶體中無法申請到足夠大的儲存空間時,arraylist新增節點時將會出現錯誤,而linkedlist不需要連續的儲存空間,各節點之間通過指標相互連線,因此具有更高的擴充套件性

arraylist底層是變長陣列維護的,不需要定義其大小,如果長度不夠了就會自動擴充套件為原來長度的一倍;

陣列的大小在定義的時候已經是個固定的值,不會自動擴充套件,陣列的效率比集合的效率高,各有側重點。

具體如下:

一、 陣列

優點:在記憶體中時連續的,速度較快,操作簡單。

缺點:定義陣列時要定義其長度,不是很靈活,過長過短都會造成問題。不方便進行資料的新增、插入和移除。

例如:int i=new int[2];

i[0]=111;

i[1]=123;//賦值

i[1]=1234;//修改

二、集合arraylist

優點:命名空間system.collections下的一部分。大小是動態擴充與收縮的。在宣告arraylist物件時不需要指定它的長度。arraylist繼承了ilist介面,可以很方便的進行資料的新增、插入和移除.

缺點:當向集合插入不同型別的資料後(arraylist將資料當作object儲存),在進行資料處理時容易出現型別不匹配的錯誤,使用時需要進行型別轉換處理,存在裝箱與拆箱操作,造成效能大量損耗的現象。

例如:arraylist list = new arraylist();

list.add("aa");

list.add(11);

list[1] = 123;//修改

移除list.remove(123);

list.removeat(0);

4stringbuilder/stringbuffer了解嗎?

考察點:原始碼實現,stringbuilder執行緒不安全,無synchronized關鍵字

1.三者在執行速度方面的比較:stringbuilder >  stringbuffer  >  string

2.string <(stringbuffer,stringbuilder)的原因

string:字串常量

stringbuffer:字元創變數

stringbuilder:字元創變數

4.stringbuilder與 stringbuffer

stringbuilder:執行緒非安全的

stringbuffer:執行緒安全的

當我們在字串緩衝去被多個執行緒使用是,jvm不能保證stringbuilder的操作是安全的,雖然他的速度最快,但是可以保證stringbuffer是可以正確操作的。當然大多數情況下就是我們是在單執行緒下進行的操作,所以大多數情況下是建議用stringbuilder而不用stringbuffer的,就是速度的原因。

對於三者使用的總結: 1.如果要操作少量的資料用 = string

2.單執行緒操作字串緩衝區 下操作大量資料 = stringbuilder

3.多執行緒操作字串緩衝區 下操作大量資料 = stringbuffer

北京億中郵資訊科技有限公司

北京億中郵資訊科技 億郵 中國第一大郵件系統軟體及整體解決方案提供商,是廈門三五互聯科技股份 300051 的獨立控股子公司,三五互聯 旗下郵件系統高階品牌。億郵成立於1999年,十幾年來,公司一直積極致力於為 部門 企事業單位 教育等行業客戶提供專業的技術平台和完整的網路通訊解決方案。億郵目前已擁...

掌遊天下(北京)資訊科技有限公司演講實錄

演講人 掌遊天下 北京 資訊科技 是不是還覺得比較絢?麻煩幫我換一下ppt吧。謝謝。ppt做得比較簡單,我們一直奉行的就是簡單快。魔女大戰 這款遊戲的話,是我們重力推出的一款卡牌加消除類的遊戲,經過了mt的啟蒙以及國內眾多卡牌遊戲的培養,我們認為卡牌遊戲已經成為遊戲的存在形式並長期存在。而且卡牌遊戲...

關於XX資訊科技有限公司的面試經歷

csdn上的第一篇文章。大三下學期快期末考的時候接到蘇州xx資訊科技 的面試通知,上網查了一下是家提供it解決方案和it教育培訓的公司。考完試後,第一次獨自一人千里迢迢來蘇州面試。剛下火車時看到那些白牆青瓦的建築時便愛上了這座城市,還有那廣闊的天空 清新的空氣 溫婉與儒雅並存的古鎮極大地滿足了內心的...