面試題總結——第4篇

10.左值引用和右值引用

變量的兩個屬性,左值和右值。(左值既能出現在=左邊也能夠出現在=右邊,而右值只能出現在=右邊)左值是變量的地址,右值是變量存儲的內容。變量本質即存儲空間的名稱,編譯後變爲對應地址。[左值是可以被修改的,右值僅能通過其成員函數被修改]

 

C++11提出了右值引用的概念,實現了轉移語句和精確傳遞

  • 消除兩個對象交互時不必要的對象拷貝,節省運算存儲資源,提高效率

  • 能夠更簡潔明確地定義泛型函數

eg: T&& a = ReturnValue();

當我們調用一個返回右值的函數時,當函數返回過後,函數返回的右值的生命週期也就結束了,但是當我們通過一個右值引用來接受時,該右值會重新獲得生命,只要我們的右值引用a存在,該右值也同時存在,這樣我們就不會向T a = ReturnValue()一樣接收對象時多一次對象的析構和構造,直接綁定了函數返回的右值

 

11.https和http有什麼區別?

http協議不適合傳輸一些敏感信息(密碼支付信息),https在其基礎上增加了SSL協議(依靠證書來驗證服務器身份並將通信加密)//網景設計的SSL協議

 

1>https協議需要到ca申請證書,一般免費證書較少,所以一般需要支付費用

2>http是超文本傳輸協議,信息是明文傳輸,htttp則是具有安全性的ssl加密傳輸協議

3>http和https是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443

4>https協議握手階段費時,且連接緩存不如http高效

 

12.GET和POST的區別

  • GET用於獲取信息,用URL傳參,數據長度受限,可緩存

  • POST用於提交(修改)表單數據,數據長度不受限,不可緩存

安全性:由於http協議在網絡上是明文傳輸的,所以不存在安全性不一致

長度限制:由於GET使用URL傳輸,http對URL沒有長度限制,但是瀏覽器和服務器由於處理長URL需要消耗比較多的資源所以需要限制長度

參考文獻:https://zhuanlan.zhihu.com/p/57361216?utm_source=qq&utm_medium=social

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章