成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

百度不問我項(xiàng)目,全程基礎(chǔ)拷打,真扎心!

開發(fā) 項(xiàng)目管理
客戶端向服務(wù)器發(fā)送SYN包(同步包),請求建立連接。服務(wù)器收到SYN包后,向客戶端發(fā)送SYN+ACK包(同步確認(rèn)包),表示可以建立連接??蛻舳耸盏絊YN+ACK包后,再向服務(wù)器發(fā)送ACK包(確認(rèn)包),表示連接建立成功。

大家好,我是小林。

今天分享一位同學(xué)百度實(shí)習(xí)一面的面經(jīng),技術(shù)棧是 C++,由于項(xiàng)目沒什么亮點(diǎn),所以大部分內(nèi)容都是在問 C++ 的問題,沒怎么問項(xiàng)目問題。

操作系統(tǒng)

對new和malloc的理解

new和malloc都是動態(tài)內(nèi)存分配函數(shù)。其中,new是C++中的操作符,malloc是C語言中的函數(shù)。new會調(diào)用對象的構(gòu)造函數(shù),而malloc不會。使用new可以簡化代碼,并且更加類型安全。

補(bǔ)充:

new和malloc區(qū)別:

  • 分配內(nèi)存的位置:malloc是從堆上動態(tài)分配內(nèi)存,new是從自由存儲區(qū)為對象動態(tài)分配內(nèi)存。自由存儲區(qū)的位置取決于operator new的實(shí)現(xiàn)。自由存儲區(qū)不僅可以為堆,還可以是靜態(tài)存儲區(qū),這都看operator new在哪里為對象分配內(nèi)存。
  • 返回類型安全性:malloc內(nèi)存分配成功后返回void*,然后再強(qiáng)制類型轉(zhuǎn)換為需要的類型;new操作符分配內(nèi)存成功后返回與對象類型相匹配的指針類型;因此new是符合類型安全的操作符。
  • 內(nèi)存分配失敗返回值:malloc內(nèi)存分配失敗后返回NULL。new分配內(nèi)存失敗則會拋異常(bac_alloc)。
  • 分配內(nèi)存的大小的計(jì)算:使用new操作符申請內(nèi)存分配時無須指定內(nèi)存塊的大小,編譯器會根據(jù)類型信息自行計(jì)算,而malloc則需要顯式地指出所需內(nèi)存的尺寸。
  • 是否可以被重載:opeartor new /operator delete可以被重載。而malloc/free則不能重載。

new是在內(nèi)存上哪一塊去分配的內(nèi)存

補(bǔ)充:

new所申請的內(nèi)存區(qū)域在C++中稱為自由存儲區(qū)。很多編譯器的new/delete都是以malloc/free為基礎(chǔ)來實(shí)現(xiàn)的,所以通常都是借由堆實(shí)現(xiàn)來實(shí)現(xiàn)自由存儲,這時候就可以說new所申請的內(nèi)存區(qū)域在堆上。

如果new內(nèi)存失敗了會是怎么樣?

會拋出std::bad_alloc異常。

補(bǔ)充:

如果加上std::nothrow關(guān)鍵字,A* p = new (std::nothrow) A;,new 就不會拋出異常而是會返回空指針。

析構(gòu)函數(shù)為什么通常是會做成一個虛函數(shù)呢

如果一個類有虛函數(shù),就應(yīng)該為其定義一個虛析構(gòu)函數(shù)。這是因?yàn)樵谑褂胐elete操作符釋放一個指向派生類對象的基類指針時,如果基類的析構(gòu)函數(shù)不是虛函數(shù),那么只會調(diào)用基類的析構(gòu)函數(shù),而不會調(diào)用派生類的析構(gòu)函數(shù),這樣就會導(dǎo)致內(nèi)存泄漏和未定義行為的問題。通過將析構(gòu)函數(shù)定義為虛函數(shù),可以確保在釋放派生類對象時,先調(diào)用派生類的析構(gòu)函數(shù),再調(diào)用基類的析構(gòu)函數(shù),從而避免內(nèi)存泄漏和未定義行為的問題。

線程和進(jìn)程有什么區(qū)別

進(jìn)程是程序在操作系統(tǒng)中的一次執(zhí)行過程,它擁有獨(dú)立的地址空間和系統(tǒng)資源。線程是進(jìn)程中的一個執(zhí)行單元,同一進(jìn)程內(nèi)的多個線程共享相同的地址空間和系統(tǒng)資源。

補(bǔ)充:

  • 進(jìn)程是資源調(diào)度的基本單位,運(yùn)行一個可執(zhí)行程序會創(chuàng)建一個或多個進(jìn)程,進(jìn)程就是運(yùn)行起來的可執(zhí)行程序;線程是程序執(zhí)行的基本單位,每個進(jìn)程中都有唯一的主線程,且只能有一個,主線程和進(jìn)程是相互依存的關(guān)系,主線程結(jié)束進(jìn)程也會結(jié)束。
  • 每個進(jìn)程有自己的獨(dú)立地址空間,不與其他進(jìn)程分享;一個進(jìn)程里可以有多個線程,彼此共享同一個地址空間。堆內(nèi)存、文件、套接字等資源都?xì)w進(jìn)程管理,同一個進(jìn)程里的多個線程可以共享使用。每個進(jìn)程占用的內(nèi)存和其他資源,會在進(jìn)程退出或被殺死時返回給操作系統(tǒng)。
  • 并發(fā)應(yīng)用開發(fā)可以用多進(jìn)程或多線程的方式。多線程由于可以共享資源,效率較高;反之,多進(jìn)程(默認(rèn))不共享地址空間和資源,開發(fā)較為麻煩,在需要共享數(shù)據(jù)時效率也較低。但多進(jìn)程安全性較好,在某一個進(jìn)程出問題時,其他進(jìn)程一般不受影響;而在多線程的情況下,一個線程執(zhí)行了非法操作會導(dǎo)致整個進(jìn)程退出。

右值引用有什么作用

沒用過

補(bǔ)充:

  • 右值引用是C++11引入的特性,它是指對右值進(jìn)行引用的一種方式。右值引用的作用主要有兩個:
  • 可以通過右值引用來實(shí)現(xiàn)移動語義。移動語義可以在不進(jìn)行深拷貝的情況下,將對象的資源所有權(quán)從一個對象轉(zhuǎn)移到另一個對象,從而提高代碼的效率。
  • 右值引用還可以用于完美轉(zhuǎn)發(fā)。在函數(shù)模板中,通過使用右值引用類型的形參來接收參數(shù),可以實(shí)現(xiàn)完美轉(zhuǎn)發(fā),即保持原參數(shù)的值類別(左值還是右值),將參數(shù)傳遞給另一個函數(shù)。

智能指針

智能指針是C++中的一種特殊指針,它是一個對象,用來管理另一個指針?biāo)赶虻膶ο蟮纳芷?。智能指針可以自動地分配和釋放?nèi)存,避免手動管理內(nèi)存的麻煩和出錯風(fēng)險(xiǎn)。

C++標(biāo)準(zhǔn)庫提供了三種智能指針:

  • shared_ptr:多個智能指針可以共享同一個對象,當(dāng)最后一個指針被銷毀時,它會釋放對象的內(nèi)存。
  • unique_ptr:獨(dú)占式智能指針,不能共享同一個對象,當(dāng)智能指針被銷毀時,它會釋放對象的內(nèi)存。
  • weak_ptr:弱引用智能指針,不會增加對象的引用計(jì)數(shù),用于避免shared_ptr循環(huán)引用時的內(nèi)存泄漏問題。

在哪些場景下會應(yīng)用智能指針

我自己是在在動態(tài)內(nèi)存管理中,使用智能指針可以避免手動管理內(nèi)存的麻煩和出錯風(fēng)險(xiǎn)。

如果遇到內(nèi)存泄漏這種問題,你一般是怎么去解決

打斷點(diǎn)定位然后做處理

后來思考對方應(yīng)該是想讓我回答這種處理措施??

  • 在程序中加入必要的錯誤處理代碼,避免程序因?yàn)楫惓G闆r而導(dǎo)致內(nèi)存泄漏。
  • 使用智能指針等RAII機(jī)制,自動管理內(nèi)存,避免手動管理內(nèi)存的麻煩和出錯風(fēng)險(xiǎn)。
  • 使用內(nèi)存分析工具,檢測程序中的內(nèi)存泄漏,并進(jìn)行相應(yīng)的修復(fù)。

class中缺省的函數(shù)

沒關(guān)注

補(bǔ)充:

在C++中,如果一個類沒有顯式地定義「構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載函數(shù)」,那么編譯器會自動生成這些函數(shù),這些函數(shù)被稱為缺省函數(shù)。

sort函數(shù)內(nèi)部是什么

sort函數(shù)內(nèi)部使用快速排序算法實(shí)現(xiàn),它的時間復(fù)雜度為O(nlogn),是一種非常高效的排序算法。

快排的原理

  1. 選擇一個基準(zhǔn)元素。
  2. 將小于等于基準(zhǔn)元素的元素移動到數(shù)組左邊,大于基準(zhǔn)元素的元素移動到數(shù)組右邊,這個過程稱為劃分。
  3. 遞歸地對劃分后的左右兩個子序列進(jìn)行排序。

但是仔細(xì)想想還可以繼續(xù)回答??

在實(shí)際實(shí)現(xiàn)中,sort函數(shù)還有一些優(yōu)化,例如:

  • 當(dāng)排序的元素個數(shù)小于一定閾值時,使用插入排序算法。
  • 當(dāng)出現(xiàn)大量重復(fù)元素時,使用三向劃分快速排序算法。

為什么選快排

默認(rèn)它的分布是比較隨機(jī)的那種分布,然后快排在比較隨機(jī)的分布上,表現(xiàn)的比較好,速度比較快

多線程鎖是什么

多線程鎖是一種用來保護(hù)共享資源的機(jī)制。在多線程編程中,如果多個線程同時訪問同一個共享資源,可能會發(fā)生競態(tài)條件(Race Condition),導(dǎo)致程序的行為出現(xiàn)未定義的情況。為了避免這種情況的發(fā)生,可以使用多線程鎖來保護(hù)共享資源。

多線程鎖的基本思想是,在訪問共享資源之前先獲取鎖,訪問完成之后再釋放鎖。這樣可以保證同一時刻只有一個線程可以訪問共享資源,從而避免競態(tài)條件的發(fā)生。

常見的多線程鎖包括互斥鎖、讀寫鎖、條件變量等。其中,互斥鎖用于保護(hù)共享資源的訪問,讀寫鎖用于在讀多寫少的情況下提高并發(fā)性能,條件變量用于線程之間的同步和通信。

mysql的事務(wù)是什么

在數(shù)據(jù)庫中,事務(wù)(Transaction)是一組操作單元,這些操作單元要么全部執(zhí)行成功,要么全部執(zhí)行失敗。事務(wù)是保證數(shù)據(jù)庫一致性的重要機(jī)制之一,它可以將一系列的操作看作一個整體,從而保證數(shù)據(jù)庫的完整性和正確性。

事務(wù)具有四個特性,即ACID:

  • 原子性(Atomicity):事務(wù)中的所有操作要么全部執(zhí)行成功,要么全部執(zhí)行失敗,不會出現(xiàn)部分執(zhí)行的情況。
  • 一致性(Consistency):事務(wù)執(zhí)行前后數(shù)據(jù)庫的狀態(tài)是一致的,即數(shù)據(jù)庫中的約束和規(guī)則都得到了保持。
  • 隔離性(Isolation):多個事務(wù)并發(fā)執(zhí)行時,相互之間不會影響彼此的執(zhí)行結(jié)果。
  • 持久性(Durability):事務(wù)執(zhí)行完成后,對數(shù)據(jù)庫所作的修改將被永久保存到數(shù)據(jù)庫中。

MySQL是一種常見的關(guān)系型數(shù)據(jù)庫,支持事務(wù)的機(jī)制。在MySQL中,事務(wù)可以

通過使用事務(wù)控制語句(Transaction Control Statements)來進(jìn)行管理,包括以下三個語句:

  • START TRANSACTION:開始一個事務(wù)。
  • COMMIT:提交一個事務(wù),使之生效。
  • ROLLBACK:回滾一個事務(wù),使之失效。

在MySQL中,事務(wù)默認(rèn)是關(guān)閉的,需要通過設(shè)置autocommit參數(shù)為0來啟用事務(wù)。啟用事務(wù)后,可以通過執(zhí)行SQL語句來進(jìn)行事務(wù)操作,

TCP連接中間會有什么操作

在TCP連接中,客戶端和服務(wù)器之間會進(jìn)行以下操作:

  • 握手階段:客戶端向服務(wù)器發(fā)送SYN包(同步包),請求建立連接。服務(wù)器收到SYN包后,向客戶端發(fā)送SYN+ACK包(同步確認(rèn)包),表示可以建立連接??蛻舳耸盏絊YN+ACK包后,再向服務(wù)器發(fā)送ACK包(確認(rèn)包),表示連接建立成功。
  • 數(shù)據(jù)傳輸階段:連接建立成功后,客戶端和服務(wù)器之間可以進(jìn)行數(shù)據(jù)的傳輸??蛻舳讼蚍?wù)器發(fā)送數(shù)據(jù)包,服務(wù)器接收數(shù)據(jù)包并進(jìn)行處理,然后向客戶端發(fā)送響應(yīng)包。客戶端收到響應(yīng)包后,可以再次向服務(wù)器發(fā)送數(shù)據(jù)包,以此類推。
  • 斷開連接階段:當(dāng)客戶端或服務(wù)器不再需要連接時,可以發(fā)送FIN包(結(jié)束包)來請求斷開連接。對方收到FIN包后,也發(fā)送FIN包進(jìn)行響應(yīng),表示同意斷開連接。當(dāng)兩端都收到對方的FIN包后,連接才真正關(guān)閉。

需要注意的是,在TCP連接中可能會出現(xiàn)丟包、擁塞等情況,需要進(jìn)行相應(yīng)的處理,例如重傳丟失的數(shù)據(jù)包、調(diào)整發(fā)送窗口大小等。

算法

表內(nèi)指定的區(qū)間反轉(zhuǎn)

反問

部門業(yè)務(wù);技術(shù)棧情況

面試總結(jié)

感覺:

  • 感覺還行,基本上面經(jīng)都回答出來了,沒怎么具體問項(xiàng)目(因?yàn)槲覜]有好問的項(xiàng)目)

不足之處:

  • C++的基礎(chǔ)知識還是不夠熟練
  • 項(xiàng)目優(yōu)化
責(zé)任編輯:武曉燕 來源: 小林coding
相關(guān)推薦

2024-06-17 09:02:00

2013-08-22 17:08:50

2014-07-25 17:12:39

數(shù)據(jù)庫WOT2014MongoDB

2018-10-19 10:05:14

區(qū)塊鏈百度百度搜索

2012-05-28 22:51:53

百度

2018-09-06 18:37:45

百度云

2011-06-01 17:40:29

百度收錄

2022-03-02 11:04:45

百度業(yè)務(wù)盈利

2015-10-28 13:40:28

高仿百度糯米源碼

2011-12-08 15:31:24

百度開放平臺

2016-03-25 11:18:23

中華網(wǎng)

2020-12-03 06:13:46

iOS

2011-06-03 16:04:05

SEO分詞

2024-06-28 18:42:27

2011-10-21 09:28:25

百度地圖API

2014-09-04 02:25:24

百度世界大會2014直達(dá)號BaiduEye

2012-10-19 09:47:30

百度云百度音樂云計(jì)算

2013-06-27 10:23:30

百度云百度開放云

2009-02-11 23:18:48

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩毛片在线观看 | 岛国在线免费观看 | 欧美日韩1区2区3区 欧美久久一区 | 亚洲国产成人在线视频 | 好姑娘影视在线观看高清 | 黄免费观看视频 | 亚洲精品成人网 | 国产免费av在线 | 亚洲网址在线观看 | 国产精品久久久久久久久久久久久久 | 国产成在线观看免费视频 | 一区二区视屏 | 美女在线视频一区二区三区 | 毛片在线免费播放 | 中文字幕亚洲在线 | 91免费入口 | 日韩理论电影在线观看 | 欧美精品一区二区三区四区 在线 | 日韩在线中文 | 暖暖日本在线视频 | 国产高清精品在线 | 亚洲国产精品久久 | 色婷婷国产精品 | 夜夜操天天艹 | 成人在线精品 | 日韩免费高清视频 | 在线观看涩涩视频 | 亚洲一区影院 | 韩国主播午夜大尺度福利 | 99精品国产一区二区青青牛奶 | 久久久久久黄 | 亚洲 91| 欧美日韩高清在线一区 | 亚洲一区中文字幕 | 日韩毛片免费看 | 国产精品黄 | 高清国产午夜精品久久久久久 | 一区二区成人 | 欧美亚洲视频在线观看 | 99久久夜色精品国产亚洲96 | 一区二区三区日韩精品 |