WEDCV155VD5RRV515DV |
內容簡介
學習英文(不論是小朋友還是大朋友),第一件事要能開口,而且要有整套完全的指引,告訴學習者的舌頭位置、嘴形及發音要訣,使大家對整個英文發音基礎系統建立好。
許多家長都以為小孩子的模仿式的說英文,很是有模有樣。
其實任何一個小孩子都會模仿,看著電視,一些廣告詞就可以朗朗上口了,而這些小孩子可能還不識字呢!
小孩學英文若沒有一套紮實的架構,而是迷迷糊糊跟著老師開口學習,不錯,短時間內是會的,可是過一段時日就忘了,愈長大愈是忘得多。
這種學習法就像用沙子來堆房子,表面上看起來也很漂亮,只是一推就倒了。台灣在這幾年來,許多的幼兒學習英文的卡帶、影集排山倒海地出來,許多地方還有外國老師來上課(不過,如果您知道詳情,許多人根本母語不是英語的外國人) 。
照理說台灣的孩子英文程度應該很好啦!可是事實呢?許多孩子到了國中,高中就忘得差不多了,跟本不再敢也不願再開口了。
我們這套簡單的教材,就是提供不論小朋友,還是大朋友,一個紮實清晰的基礎,像房子裡的鋼筋一樣,先打好基礎,以後再慢慢把外面的工程建築完畢。
本書分(上)(下)二部份,各自獨立,上冊較簡單,下冊再深一點點,讓大家不斷反覆來練習,不僅對整個音標,單字清清楚楚,并對發音的技巧掌握,這樣的學法,才能持久不斷。
詳細資料
- ISBN:9789867858603
- 叢書系列:
- 規格:盒裝 / 21 x 14.8 x 1.5 cm / 普通級 / 單色印刷 / 初版
- 出版地:台灣
- 本書分類:> >
...獨家:深圳騰訊總部大廈 秋招運氣比較好,拿到百度、阿里、騰訊、華為、360、美團、小米的(準)offer,不過都是意向書。。。。非正式。攢波人品,等國慶後的結果吧。 本人本科211,碩士末流985。實力很渣,實驗室項目也不行。全靠研二的時候,研三的師兄帶路(他們工作確實找的好),他們分享他們的招聘經驗、學習資料和方法等,還有就是研二的同實驗室的同學的幫助也至關重要,所以研二這一年時間還算沒有浪費,基本都花在學習、項目。算是給我們一個很大的指導作用,在這裡真的很感謝他們。 我個人的簡歷、筆試、面試情況:(時間順序 7-9月,我全是提前批,除了騰訊、美團) 1、多益網絡(一面) offer (確實出乎意料,有點略水,就一面。。。) 2、oppo (一面、二面) hr面掛(估計跟著前面的人吼價格 吼高了, 跪了。。所以談薪還是要慎重) 3、阿里巴巴(釘釘團隊) (終面、附加編程面、交叉面、hr面) offer (之前拿到實習offer,人太慫沒去。這裡給後面投阿里的同學一個建議,一定要投實習,因為阿里秋招很喜歡從實習批的人錄取,走綠色通道) ...北京:阿里巴巴(北京總部) 4、百度(企業雲團隊) (一面、二面、三面、性格測試、hr面) offer (這個挺看運氣,面試官人不錯) ... 5、網易(雲音樂) 筆試掛 (投網易的雲音樂要慎重,頭的人太多,不夠出彩就別去嘗試,浪費機會,個人看法) ... 6、網易互娛 筆試掛 (雖然三道全部AC了,但是估計全AC的也比較多,雙非等限制,後面就沒有面試的邀請了。。) 7、奇虎360(安全衛士後臺團隊) (一面、二面、hr面) (面試官人挺好的,我覺得我挺多的都不會,但是還讓我過了。。。可能c++那一塊答得不錯,這個確實看運氣) 8、華為(cloudbu團隊,優招批)(業務面、技術加面、總裁面)(華為玄學面試,全看運氣) 9、拼多多(基礎平臺,提前批掛) 校招批筆試通過,至今沒面試,算掛了吧 10、小米(java的一個電商後臺,做訂單系統的) (一面、二面)(筆試沒做,還是發意向了。。小米和頭條差不多,強調手撕代碼,我撕了4道,有道算法不會做的,面試官把算法和數據結構都給我說了,,,還好我寫出來了。。這個面試官真的不錯,我就喜歡這樣的) 11、頭條(筆試4.3AC) 一面掛 (一輪游,還是太菜,手撕了一個比較一般的題,寫了25分鐘,雖然跑過了所有測試用例,面試官還是把我掛了。。其他基礎都沒問題,所以。頭條還是重code。如果想進頭條,刷leetcode、劍指offer吧,這個是面試官給我的唯一的建議) 12、美團(餐飲鏈 java團隊 一面、二面、三面、hr面,這個是校招批) 口頭offer (一面code差點沒寫出來,估計沒寫出來就涼了。。。運氣。美團主要是看個人思維、技術等,不限語言,所以是c++的夥伴也可以考慮美團) 13、騰訊(sng數據中心團隊 一面、二面、hr面今天走完了 這是校招批) 等結果(hr給我說 每輪評價都很好,應該沒問題) (之前騰訊提前批掛了,算上實習面試,我騰訊的面試記錄都有4、5個了,大部分差評價,所以根據我的情況,有的小夥伴不用擔心面試評價的問題,還是要簡歷要做好) 後面就沒有面其他公司了。希望我今天的分享能給騰訊攢波人品,我最想進的就是tencent。。。。騰訊情結 -.-現已經在實習了。 下面是我個人的一些建議和面經吧,分為幾個板塊:(可能也不適用於一些人,當看著玩吧) 1、書籍推薦 2、學習氛圍 3、簡歷修改 4、面試技巧 5、面經分享 --------------------------------------------------------------------------------------------------------------------------------------------------------------- 書籍推薦 c++ : 《effictive C++》、《SGI STL源碼解析》(侯捷)、《effictive STL》、《深入探索C++對象模型》、《c++ primer》等 網絡:《計算機網絡》、《圖解tcp/ip》 、《tcp/ip詳解》、《UNIX 網絡編程》(想進騰訊的小夥伴最好看看這個) ***作系統:《深入理解計算機系統》、《***作系統-精髓與設計原理》、《UNIX 高級環境編程》 資料庫:《高性能MySQL》、《Redis實戰》(我沒讀)、《資料庫原理及設計》 數據結構和算法:《劍指offer》、《數據結構及算法實現》(名字我可能記不太清)、leetcode(我就只刷了100道,算是我們實驗室刷的最少的了) 實戰:《Linux多線程伺服器編程-使用muduo C++網絡庫》(陳碩) (這本書強烈推薦,從實戰的角度分析處理問題,我們實驗室都看了這本書的) 其他。。。。 學習氛圍 主要說說我的情況吧,導師這邊要做項目,我的項目比較少,所以有更多時間看書,看視頻;其他同學有項目,但是他們也抽空閒時間看書,看視頻。基本晚上9點半才從實驗室回寢室吧。這裡還是強調不要單兵作戰,我們這屆實驗室的同學跟上屆師兄一樣,抱的比較緊,有什麼問題可以互相問,解決的過程中就可以相互提高了,每本書和視頻的學習,每個人的理解程度都不一樣,理解的角度也不一樣,我們一般都會進行交流,使得學到的知識更加全面吧,學習效率也比較高。在招聘這一塊,我們一般有什麼招聘信息出來了都相互傳播一哈,大家能夠第一時間了解到招聘信息,筆試面試都有同學一起去,沒那麼孤單。 簡歷修改 我個人的觀點吧,看看就行。我覺得簡歷主要還是一頁就好,簡單明了,最好是第一時間就能讓面試官知道你會什麼。整個頁面乾淨、有條理就行,不用彩色的條紋那些(儘量別在外觀上浪費太多時間)。除了一般要寫的個人基本信息、榮譽、學歷、項目以外,做技術的同學,建議就是再弄一個 技術棧的模塊出來,比如c++會哪些、網絡會哪些、資料庫會哪些。這樣簡單明了,我騰訊和美團現場面的,我看到的就是面試官其實就是一條一條的對著我的技術棧一個一個問的。此外在字眼的使用上,好好注意把握 「了解」、「熟悉」、「精通」,一般建議寫「熟悉」,不太穩的寫「了解」,高手都不建議寫精通,一旦有一個不會,面試官的印象大打折扣,覺得不夠謙虛。照片的話可貼可不貼。我就沒貼,主要人太醜。。。很尷尬。 面試技巧 說實話,我個人的技術實力真的很一般,在實驗室我都算排在後面的,實驗室大佬太多,在技術上我就跟著學,偷學一波技能。我覺得我的優勢在於面試技巧上,在面試的時候,我覺得要善於引導面試官,俗稱「帶節奏」,其實就是與人相處交流的一些方式方法了。 首先是自我介紹,我覺得自我介紹個人信息不用太詳細,就說個名字 學校 專業 即可。其他信息面試官也看的到,沒必要說。如果是計算機專業的 好學校的 建議說出來,突出一下,給面試官一個好印象。 然後下面應該直接簡單明了的告訴面試官 個人的技術棧,給面試指方向。不然面試官真的有可能瞎問,問到會的還好,不會的就容易涼涼。在下面可以說你的項目,大概提一下即可。 技術棧介紹:首先主動引導面試官問那方面的問題,在回答問題的時候,故意帶一點其他的你會的知識點,可能有的面試官就會心血來潮問你那個引子。比如我給面試官介紹我的項目框架的時候,提到了epoll,他就問我epoll 和select區別、lt et區別,這些都是準備好的,自然你也就會答得出來。這算是套路面試官吧。如果遇到面試官問道的問題不會答,也不要慌,可以用這樣的語句:「不好意思,這個我沒太了解,不過我知道與這個相近的xxx,你看我給你分享這個xxx的個人體會可以嗎」,有的面試官就會同意的,這樣不容易題目被帶偏。 還有就是如果就是真的不知道的,就直接說不知道,這個沒什麼的。比如 面試官問我 你資料庫怎麼樣? 我一般都說,不太會。 一般面試官就不會問了。如果你掌握的不好,你說還可以,那他問你結果都不會,就是一直吃 暴擊傷害。。。面試官印象很差,還不如直接說不會。 項目:主要要分析清楚,條理清晰,面試官並不關心你的項目如何如何渣 如何如何叼,在於的是你對項目的思考和理解吧。 面經分享(內容不全,後面也沒時間寫面經了。格式不太好弄,筆記上copy過來的,將就看吧-。-) 可能也有些有錯的地方。 多益網絡 1、項目部分(似乎對muduo更感興趣) 介紹了項目功能、架構 muduo有哪些精彩的地方,說一下。 吹了一下異步日誌的雙buf的實現、buf本身的readv 的性能 2、基礎知識 1、linux IO模型(5種) 記不太清,說了幾種,應該沒說完。(應該是:同步阻塞、同步非阻塞、多路復用、信號驅動、異步IO)應該還要說細節 2、靜態連結庫和動態連結庫的區別 3、什麼是線程不安全 4、c++ 繼承和組合 ,為何優先使用組合(這個我不知道理由)ps:應該是組合能實現和繼承一樣的功能,但是對於父類對象,在組合中是不會暴露細節的,相當於是黑盒,而繼承是「白盒」。 5、什麼時候使用鍊表或者隊列?(增加、刪除頻率較高的場景) 6、c++ const的作用? (變量和函數兩方面 mutable) 7、百度地圖如何實現實時路況 8、快排算法 穩定性 9、函數指針的使用場景、好處。使用於回調函數 虛表指針就是例子 10、你會用什麼結構來查詢?(hash表、map、 set這些) 11、tcp udp的區別 使用場景 12、什麼是緩衝區溢出 3、編程 數組循環右移 將一個長度為n的數組A的元素循環右移k位 比如 數組 1, 2, 3, 4, 5 循環右移3位之後變成 3, 4, 5, 1, 2 4、其他 1、如何看待加班? 2、你的愛好是什麼?玩什麼遊戲? 3、你最近在看什麼書? 4、你還有什麼要問我的嗎? 騰訊OMG團隊(實習) 1、畫出tcp頭部的協議格式。 擴展: udp頭部、ip頭部、http頭部 2、Http的報文頭部 3、數組和指針的區別 (1)數組本身體現出來的就是一個 指針常量的 「特性」,即不能對數組的首地址進行修改,內存上的地址就已經是確定了的。而指針本身是一個變量,他指向了一個地址,這個是可以變化的,也就說他可以重新賦值指向新的地址; (2)當調用sizeof函數時,對於數組,得到的是數組元素個數*數據類型的大小,而對於指針,得到的是指針類型的大小,這個取決於機器的位數,比如32位機,對應的指針就是4字節的大小; (3)指針相比數組更加靈活。 相同之處:比如當作為形參的時候,定義成 指針還是數組都是一樣的,因為這個時候傳入的都是數組的首地址,也就是這個數組名,反映出來的就等於是一個指針。 4、參數傳遞的方式 值傳遞、引用傳遞、指針傳 5、c++種struct和class的區別 (1)如果不申明訪問權限,class的默認權限是private,而struct是public (2)對於繼承,如果也沒有明確是public繼承還是private繼承或者是protected繼承,class 默認是private的繼承,而struct是public繼承。 (3)從抽象上來說,class更像是對象的實現體,而struct更像是數據結構的實現體。 6、構造函數能不能是虛函數? 不能,因為類對象中占前4個字節的虛表指針 需要在構造函數完成之後才會生成,通過 虛表指針才能找到虛函數表,訪問調用對應的虛函數。如果構造函數是虛函數,那麼就只能通過虛表指針才能訪問到,關鍵是此時就需要讓構造函數產生出虛表指針。陷入了先有蛋還是現有雞的問題 7、析構函數可不可以是虛函數? 可以,而且如果說這個類不是final的,也就是說他是某一個類的父類,那麼該類的析構函數必須是虛函數,因為如果不是虛函數,那麼其子類對象的父類組成部分將無法得到釋放,造成資源泄露。 8、析構函數可不可以是純虛函數? 我覺得不建議是,因為我們知道純虛函數是沒有實現體的,那么子類對象在析構的時候,父類組成部分就沒辦法釋放,顯然不行。但是對於大部分編譯器來說,可以將析構函數申明為純虛函數,然後在類外寫純虛函數的實現體,從語法上不會報錯。 9、舉例一種STL中的容器 答:比如vector(當時答得是這個),vector的的實現其實就是封裝了一個動態數組,裡面有3個內部疊代器,分別是start、finnish、end_of_storage。如果通過push_back或者insert插入元素造成超過容量,此時容量會擴展至2倍,這個過程分為:重新配置、移動拷貝元素、釋放原空間,這3個大部,支持隨機訪問等 10、舉例STL的一種算法 答:比如find、accumulate、next_permutation、unique、position等等 11、如何防止c++頭文件被重複引用 答:可以使用ifndef或者program once,都可以。但是兩者有一些區別。從兼容性上說,ifndfe更好,有些老的編譯器可能不支持program once;此外,對於2個名字不同的頭文件,但內容相同,ifndef還是可以鑑別出來,防止重複,program once 不行。 12、內聯函數和宏的區別 答:內聯函數的展開發生在編譯期,而宏是在預處理階段;內聯函數本身是函數,而宏不是;最重要的一點:內聯函數會對參數進行類型檢查,而宏只是簡單的替換,所以內聯函數更加安全,所以往往宏需要對參數加括號,但是也不一定安全, 內聯函數有自己明確的作用域或者訪問權限,比如放在類裡面的private,而宏是沒有的。 13、linux下常用命令 答:(1)ls -al 顯示當前目錄下的所有文件目錄信息,包括隱藏的 (2)mkdir 創建文件夾 (3)cat 查看文件內容 (4)cp 拷貝 (5)rm -rf 刪除文件(夾)下所有文件 (6)find 查找文件 (7)grep 正則匹配 (8)pwd 顯示當前文件路徑 (9)ln 創建文件連接 -s 軟連接 (10)chmod 修改文件權限 (11)netstat -a |grep 查看網絡狀態 (12)top 14、linux下進程管理的相關命令 (1)ps -e 查看所有的進程信息 (2)kill -9 pid 強行殺死進程 (3)top -p pid 查看進程信息 15、linux下如何查看內存、磁碟情況 (1)top (2)df (3)free 16、什麼叫軟連接和硬連結,他們的區別是什麼 硬連結是以文件副本引用的形式存在的,他跟源文件擁有同一個inode節點;軟連接是以路徑的形式存在的,他的inode節點所對應的數據塊存儲的是源文件的路徑。他們的區別的是:軟連接可以跨文件系統創建,而且可以對目錄進行創建,硬連結都不行,所以,相對來說,軟連接更加靈活,刪除軟連接不會產生任何影響,但是如果源文件被刪除了,那麼所有的軟連接就失效了,所以很像windows下的快捷方式。 17、什麼叫相對路徑什麼叫絕對路徑? 答:以/開頭的就是絕對路徑,因為他代表了從根目錄出發的路徑,反之就是相對路徑 18、進程間通信的方式? 答:無名管道、有名管道FIFO,消息隊列、共享內存、信號量、socket等,(應該進行簡略闡述 19、c++下如何調用C的包? 答:extern 「C」,通知編譯器其所包含的代碼用c的方式進行編譯,這樣連接的時候不會報錯,否則會找不到函數符號。 20、找出去重後的數字的命令 $ sort test.txt | uniq 21、socket編程tcp客戶端連接過程 建立套接字對象,connect、read/wirte 22socket編程tcp伺服器端連接過程 建立套接字對象、bind、listen、 accept、read/wirte 23、epoll和select的區別? 答:select能支持的文件描述符數是有限的,最大1024個,並且每次調用前都需要將其監聽的讀集、寫集、錯誤集從用戶態向內核態拷貝,返回後又拷貝回去,而且,select返回的時候是將所有的文件描述符返回,也就意味著一旦有個事件觸發,只能通過遍歷的方式才能找到具體是哪一個事件,效率比較低、開銷也比較大,但是也有好處,就是他的超時的單位是微秒級別; epoll能支持的文件描述符數很大,可以上萬,他的高效由3個部分組成:紅黑樹、雙向鍊表、回調函數,每次將監聽事件拷貝到內核後就存放在紅黑樹種,以EventPoll的結構體存在,如果有相應的事件發生,對應的回調函數就會觸發,進而就會將該事件拷貝至雙向鍊表中返回,而且,epoll每次返回的都是有事件發生的事件,不是所有時間,所以比較高效,總的來說epoll適用於連接數較多,活躍數較少的場景、而select適用於連接數不多,但大多都活躍的場景。 24、同一個IP同一個埠可以同時建立tcp和udp的連接嗎 答可以,同一個埠雖然udp和tcp的埠數字是一樣的,但實質他們是不同的埠,所以是沒有影響的,從底層實質分析,對於每一個連接內核維護了一個五元組,包含了源ip,目的ip、源埠目的埠、以及傳輸協議,在這裡儘管前4項都一樣,但是傳輸協議是不一樣的,所以內核會認為是2個不同的連接,在ip層就會進行開始分流,tcp的走tcp,udp走udp。 25、mysql的建表、刪除表、更新表、查詢表用什麼命令 答:Create|Drop|Update|Select TABLE [表名] 26、mysql的索引有哪幾種? 答:(1)普通索引 CREAT INDEX [index_name] ON table(column(length)) (2)唯一索引 (3)全文索引 (4)單列、多列索引 (5)組合索引 27、索引的優缺點,索引是不是越多越好? 答:主要就是可以有效的縮短數據的檢索時間,建立索引的列可以保證行的唯一性,可以加快表與表的連接;但是創建索引、維護索引需要時間和空間成本,每條索引都要占據資料庫的存儲空間,此外,每次的增刪改都需要對索引進行動態的維護,也會導致時間變長。 28、索引的適用場景 答:(1)數據量大的並且查詢頻率高的應當使用索引 (2)表與表連接時的聯合查詢,約束條件的欄位應該建立索引 (3)用於排序的欄位可以使用索引 。。。。。 29、索引的原理 答:以空間換時間,建立索引之後,會將索引的KEY值放在一個BTree上,這個方式是一種n分法,btree適合在磁碟上動態查找表,每次以索引進行查找的時候,會根據key值進行搜索,logn級別的。 騰訊天美工作室(實習) 1、hash表使用開鏈,裡面的鍊表過長說明了什麼? 答:hash函數設計的不好,導致衝突嚴重,進而導致同一個「桶」內的鍊表數目增多。 2、c++不能被繼承的類 答:(1)、可以將構造函數放入到private裡面,這樣是無法構造出子類對象的,同時增加一個static的 get instance的函數,來調用構造函數。(但是這樣得不到一個棧上的對象) (2)、讓該類去虛繼承一個模板類,傳人的模板類型就是該類,使得該類成為模板類的友元,這樣子類在構造時,他直接先構造祖先類的成分,顯然他不是友元,所以失敗。 (3)、使用c++11新增的final關鍵字,使得申明的類是一個最終類,無法被繼承。 3、什麼叫字長? 答:計算機在同一個時間能處理的一組二進位數稱為計算機的一個字,這組二進位數的位數就是字長,所以現在計算機有16位、32位、64位等。 4、計算機的存儲系統? 答:分為內存和外存,其中內存有主存、cache、寄存器等,外存分為磁碟、光碟等 5、static關鍵字的作用,存放位置 答:static關鍵字有隔離隱藏作用,比如多個cpp文件,如果將全局變量聲明為static,那麼該變量只對該文件可見;變量聲明為static,可以使得這個值的生命期是整個程序結束;此外,c++類中的staitic 申明的變量和函數表示都是屬於類的屬性,而不是對象的成員。未初始化的放在bss段,初始化的放在data段中。 6、堆和棧的區別 答: 從管理方式上, 棧是由編譯器自動管理,無需我們手動控制; 對於堆,開闢和釋放工作由程式設計師控制,所以有內存泄漏等情況的發生。 從申請大小上, 棧是有高地址向低地址擴展的,是一塊連續的內存區域,所以棧的棧頂地址或者大小 是一開始就分配好的。在使用過程中,比如遞歸調用層數過多,那麼就有可能造成棧溢出,所以棧能獲得的空間比較少; 堆是向高地址擴展的,是鍊表組織的方式,所以有可能是不連續的,他的大小隻受限於有效的虛擬內存大小,所以堆能開闢的空間較大。 從碎片問題上, 棧是沒有碎片的情況,因為他有嚴格的出棧入棧,不會存在一個內存塊從棧的中間位置彈出; 堆有碎片的情況,頻繁的調用new/delete分配釋放內存,必然會造成內存碎片。 從分配方式上, 堆都是動態分配的 棧大多是靜態分配的,也可以動態分配,可以由alloc函數分配。 從分配效率上, 計算機會在底層對棧提供支持,比如有專門的寄存器分配,用來存放棧的地址,壓棧出棧的指令等; 堆是由c/c++函數庫提供的,機制比較複雜(未了解) 7、struct和class的區別 答:這個在OMG面試中也出現過。 8、malloc和new的區別 答:最大的區別在於malloc只是簡單的分配了內存空間,而new在分配了內存空間之後調用了對象的構造函數。詳細的見:new和malloc的區別,或者delete和free.note 9、引用和指針的區別 答:引用是一個已有對象的別稱,指針是一個地址,從非空性上說,引用不能為空,指針本身是個值,可以為空;在編碼的時候,對引用我們不需要判斷,但是對於指針,我們必須對其非空性進行判斷;當指向的對象可能在發生變化的時候,往往使用指針,而引用一定固定的。 10、map的底層實現 答底層是紅黑樹實現的,它是一個比較平衡的搜索二叉樹,內部有序,所以在查找和刪除的時候比較高效,時間複雜度是logn 11、tcp的三次握手過程和四次揮手過程 答:這個建議將函數調用的情況添加進去說明。詳細:TCP建立連接三次握手和釋放連接四次握手.note 12、c++多態的實現原理 答:c++多態主要是通過虛函數表實現的,c++多態的體現,主要是通過父類指針指向一個子類對象,此時調用的函數就是子類的函數,體現了多態性,因為在調用過程中,通過錢4個字節的虛表指針找到了虛函數表,此時由於實際對象是子類對象,那麼其虛函數表是子類的虛函數表,對於同一個虛函數,子類的虛函數將會覆蓋掉父類的虛函數,構建出自己的虛函數表,所以此時通過虛表指針訪問放的虛函數就是子類的虛函數,這就是c++的多態的體現。 13、c++對象的內存模型 答:在內存中,前4個字節代表了其虛表指針,指向的是子類的虛函數表,接下來存放的是父類的對象的成員,再是子類成員部分。 14c++的內存模型 答:內存分為5個段,從低地址往高地址,一次是代碼段、數據段、bss段、堆、棧。然後balabala。。。。 15、滑動窗口的作用 答:主要就是為了實現流量控制,控制了發送包的速率,每次發送方只能發送滑動窗口內部的數據包,才能保證接收方不會因為發送過快造成流量淹沒,數據包的丟失。他的大小是 擁塞窗口和通告窗口 兩者的最小值。 項目 1、如何實現斷點續傳,如何提高上傳速 算法 1、計算表達式 (改成後綴表達式進行處理) 2、朋友圈問題,求總共有多少個朋友圈 (使用並查集) 3、鍊表逆序 (劍指offer上有,但是如果不改變內存結構,那就只能改變值,使用棧進行存儲) 4、一個數組找中位數(通過快排思想,常數級的若干次求position,直到恰好是中心,時間複雜度是O(n),如果是海量數據呢2g數據,500內存如何處理?->hash之後分成小文件,再外部排序,使用歸併,可以使用最大堆,直到數據過半) 騰訊SNG(實習一面) 只持續了20分鐘,似乎面試官很忙。 1、系統調用和庫函數有什麼區別和聯繫 2、epoll和select的區別 3、epoll的高效,有幾種工作模式( LT、ET) 4、TCP 和 UDP的區別 5、TIMEWAIT是什麼,為什麼要設置TIMEWAIT狀態 6、TCP的可靠性是如何實現的?(流量控制、擁塞控制、確認序號、校驗???) 暫時記不起來了。 oppo(一面) 首先介紹項目,我給他介紹了一下這個項目的架構,功能。 問題1:你覺得這個項目的難點在於哪裡?(懵逼了) 答:難點到不太多,可以說一下學到了什麼,優化了什麼,比如數據傳輸協議用到了protobuf,更快,更安全、數據量更小。 問題2:io復用和異步io有什麼區別? 答:IO復用其實一種同步IO,他只是將事件通知統一交給了select或者epoll,所以,對於IO復用,其實Select或者epoll在檢測可用時是阻塞的,裡面的讀寫一般也是阻塞的,而異步IO是不會阻塞的,數據從內核態拷貝到用戶態緩衝區完成後,***作系統會發送信號,通知進程處理,這個過程進程是可以繼續執行的,這個就是異步io。 問題3:多進程和多線程有什麼區別?如果給你一個業務場景,你是如何選擇多進程還是多線程? 答:多線程共享同一個地址空間,帶來的好處就是他們進行通信比較方便,可以通過全局變量等,但是也有隱患,需要處理好競爭問題,而且一旦一個線程崩掉了,整個進程就死了,影響其他進程。多進程相反。。此外,線程的創建開銷更小。多進程的場景舉例:比如你要進行主機遷移,多進程的話,你可以將某個進程遷移到另外的主機,不受影響,但是多線程沒法遷移。 問題4:講一講c++的虛函數表呢? 答:c++的多態就是通過虛函數表來實現的,該表是在編譯期生成,存放在rodata段,我們知道一個類的對象的內存結構是前4個字節是其虛表指針,即vptr,指向了其虛表,虛表中裝的就是該類的虛函數。c++多態的體現,往往是通過父類指針,指向子類對象,我們發現調用的虛函數是子類的虛函數,而不是父類的就是因為此時的對象是子類對象,其虛表是子類的虛表,其中的同名虛函數早在編譯期就已經被覆蓋成子類的虛函數了,所以此時調用的是子類的虛函數,多態就是這麼體現的。 問題5:構造函數、析構函數的順序,為什麼析構函數是反向的? 答:構造:先父類再子類; 析構:先子類再父類。 這是c++的規則。 中間 做了一套筆試題,各種各樣的都有。 編程/算法 1、一個文件無序存放了1w個數字,每行1個。數字範圍1-1w,現在隨機刪除2個數字。請把他們2個找出來。 答:使用hash數組,遍歷文件,每遍歷到一個數字,就以該數字為下標的數組元素置1,不用加1,因為數字不重複的。最後再遍歷一遍數組,值為0的元素的下標就是所求數字。 2、如何對你申請的內存進行優化? 答:可以使用bitmap,每一bit可以代表一個數字,這樣可以壓縮內存。 3、壓縮率是多少? 答:每個bit一個數字,而之前數組一個元素是int類型的,占32位,所以壓縮率是32倍。 4、什麼場景用bitmap? 答:我說數據較為密集,而且你這裡數據是連續不重複,就符合,而且你的數據是有範圍的。 5、如果數據有重複呢? 答:可以使用2-bitmap,00代表不出現,01代表出現1次,10代表出現2次,11表示無定義,這樣遍歷一遍就可以找到是哪幾個數字 他回答:不是,比如數字3,具體有多少出現,這個這需要知道的。 我說:10bit可以表示的數是1024,而你每個數字不可能超過1w次。所以要記錄次數的話,就還是用bitmap但是不是1位,大概1個數用14bit吧,但相比32位一個數要好些。 oppo二面 2、介紹usb的項目、功能、架構 3、這個io復用模型跟普通多線程、多進程的區別 答: io復用,多個連結復用一個線程,而普通多線程是一個連結一個線程,所以必然創建線程的數目就多,現成的創建是有開銷的,所以io復用這種開銷小。 4、網絡傳輸的數據協議 主要有3個段,前8bit是數據type,中間是length,最後是具體的data。 5、如果協議是這樣。如果兩個數據包連在一起,怎麼分開? 答:在首部再加幾個bit,作為隔離位。 6、如何實現你的fd是負載均衡的 答:分類處理 7、多個用戶訪問同一個資源,如何加鎖 答:不太明白他的意思,epoll內部處理事件是同步依次執行的,而且這裡的鎖是線程資源 8、tcp是如何處理粘包? 9、tcp是如何關閉的?就是說4次揮手過程 10、如果tcp關閉的第四個分節沒有被收到,那麼怎麼辦? 11、tcp的擁塞控制過程 12、delete和free的區別 13、STL的出現是為了什麼 14、STL的疊代器的類型有哪幾種? 15、STL hashmap的實現? 16、線程間同步的手段 17、進程間通信的方式 18、如何使用信號量製作出一個互斥鎖 19、系統調用的返回有什麼變化? 20、描述一下系統中斷的過程 21、c++多態是如何實現的? 22、c++多繼承是如何實現?如何處理同名變量 23、怎麼實現無鎖***作 24、你評價一下你自己。 25、你覺得你同學朋友如何評價你? 26、你對哪些技術感興趣? 27、參加過哪些社團 28、你怎麼協調與他人的關係的? 29、你有什麼要問我的嗎? 百度雲一面 1、C++多態的實現 2、多重繼承下,多個父類含有同一同名函數,子類對象調用會有問題嗎? 答:首先 AB2個父類中的函數假設就是普通成員函數f(),那么子類C沒有自己的f函數,其對象c.f()的時候就會報錯,編譯報錯,存在二義性。如果C有自己的f函數,此時不會報錯,調用的是自己c類的f()函數,也就是說此時父類的函數就被隱藏了。如果AB中的f()是虛函數,那麼也不受影響,還是調c的。如果2個f的參數類型也不一樣,也會報二義性錯誤。(為什麼呢?) 3、static變量 4、tcp三次握手 、2次、4次? 5、tcp可靠性的實現原因 6、滑動窗口的作用 7、原子***作如何實現(鎖、cas***作) 8、如何實現一個互斥鎖,互斥鎖的實現原理 想不起來了 筆試: 特殊鍊表(每個節點帶一個隨機指針),對該鍊表進行複製,輸出複製後的新鍊表。(劍指offer原題) 百度雲二面 1、socket和epoll的關係區別?(不太懂他意思,反正對epoll的底層進行了闡述) 2、紅黑樹是線程安全的嗎 3、有哪些同步手段 4、用過哪種鎖(mutex) 5、讀寫鎖了解過嗎,自己實現一下,提出思路即可(對讀***作進行計數) 6、計數如何保證線程安全?(cas***作、***作系統底層指令支持) 7、vector的插入pushback的時間複雜度是多少(O(n)) 8、如果vectorpushback的時候擴容了,比如pushback n個數,時間複雜度是多少?(我給他闡述了內存拷貝的過程,但是不知道怎麼求,他回答說:其實是一個等差數列,最後求得還是O(n)) 9、vector底層是幾個指針實現的(3個 start、finish、end_of_storage) 10、vector擴容幾倍 (SGI STL的vector是2倍) 11、c++多態的實現(run time的多態:指針或者引用 結合 虛函數表實現) 12、c++11 move語意解釋一下 13、 move除了用於指針,還可以用於哪些?比如哪些數據結構 (vector) 14、拿過哪些offer 想不起來了。。。 360二面 1、使用stl如何保證線程安全(除了鎖以外) 2、交給sub 線程的文件描述符如何回收的? 3、tcp粘包 4、linux下查看網絡連接 5、linux下查看內存cpu (top) 6、linux下查看內核版本 uname-a 7、linux下查看發行版本 cat /etc/issue 8、IO和reactor模式 (吹的select和epoll) 9、linux下 進程cpu占用是怎麼計算的(大致是:通過/proc/stat 讀取CPU總的時間,再通過/proc/pid/stat下讀取進程的占用時間,做除法。(比較粗略的闡述)) 10、linux下 tmp目錄裡面的內容會被清除嗎(會,系統會執行tmpwatch腳本,一般傳入參數是時間,比如 tmpwatch 10 /tmp/ 表示的就是會刪除10天內沒有修改、訪問的文件。) 11、怎麼查動態依賴的庫有哪些?(readelf -a [程序名] |grep library) 騰訊IEG魔方工作室(簡歷面) tcp udp 遊戲 容器線程安全 hashmap實現 新連結 何時註冊寫事件 主線程如何將fd交給sub線程? 為什麼這個回調函數在本函數執行,是線程安全的? rehash 多線程,多進程區別 切換的性能損耗 strncpy 總算寫完了。下面分享一些我之前看的資料。 資料獲取方式 關注+轉發後,私信關鍵詞 【架構】即可獲取! 重要的事情說三遍,轉發、轉發、轉發後再發私信,才可以拿到! ... 領取方式:轉發文章,一定記得轉發文章+關注,然後後臺私信回復「架構資料」可免費獲取。 ... 而針對以上面試技術點,我在這裡也做一些技術知識面試專題資料分享,希望能更好的幫助到大家。 ......... 資料獲取方式 關注+轉發後,私信關鍵詞 【架構】即可獲取! 重要的事情說三遍,轉發、轉發、轉發後再發私信,才可以拿到!
文章來源取自於:
每日頭條 https://kknews.cc/career/v5xqyr4.html
博客來 https://www.books.com.tw/exep/assp.php/888words/products/0010369159
如有侵權,請來信告知,我們會立刻下架。
DMCA:dmca(at)kubonews.com
聯絡我們:contact(at)kubonews.com
鹿港常常睡不著或很早就醒來看什麼科埔里小兒過動看什麼科溪州躁鬱恐慌看什麼科彰師大附近推薦頭暈治療中醫
建國科大附近推薦頻尿治療有效中醫診所 國姓鄉頭痛治療有效中醫診所 員林中醫診所這間很大推,失眠睡不著改善很多中寮肩膀緊繃酸痛看什麼科 社頭無法進行中高強度運動治療有效中醫診所 把脈超神的彰化中醫診所,睡眠障礙改善很多溪湖倦怠、疲勞治療中醫 花壇頭痛看什麼科 網友都推薦到這間員林中醫診所,失眠睡不著改善很多彰化打嗝治療有效中醫診所 秀水體溫控制功能異常治療中醫 當地人都推薦的鹿港中醫診所,失眠睡不著改善很多
留言列表