人妻少妇精品专区性色av_久久久久久久一级_搞av中文字幕_亚洲综合熟女久久久40P_麻豆视频91传媒视频在线观看_FUCK四川老女人HD

alibaba 36人分享

面試經驗(alibaba,共20條分享)

2018-06-28 | 校園招聘
面試過程:

2018年3月28日 阿里巴巴電話一面 當天下午4點左右,阿里巴巴從浙江杭州打來的電話:0571-28223456 ,一開始我沒接到,5分鐘后我才發現這個電話(提醒:手機一定不要靜音,隨時保證能接到電話),當我發現后就立即打回去,幸運的是,能夠接通,阿里的接線系統還是很智能的,主動提示5分鐘前有打我電話,并且自動轉接到那個電話。接通之后我解釋了一下,面試官語氣很和藹,主動提出給我打過來,我表示要花2分鐘拿紙和筆,實際上我還拿了電腦,機智吧!

面試官問的面試題:

接下來就是面試內容: 面試主要分為三個部分:基礎知識、項目內容和實習經歷、應聘崗位相關知識和其他 一:基礎知識 面試官會問你主要熟悉的語言,我是學C++的,然后他就開始問C++相關的知識,我主要問到了: A: C++的指針和引用的區別: 指針是一個對象,這個對象里存儲的是它所指向的另一個對象的地址。引用其實是一個對象的別名,引用是必須在初始化時與對象綁定,而且一經聲明,就不能再更改綁定到其他對象。 問題引申: 指針定義:值為地址的變量。 指針的運算:兩個基本的運算符:&(取址運算符)和*(間接訪問運算符/解引用指針),除此之外,還有加減算數運算,關系運算(== 和 !=),以及指針的類型轉換:強制類型轉換和C++類型轉換操作符 static_cast<類型>(表達式) ,注意:void類型指針 void * pVoid 可以從任意類型的指針賦值(強制轉換)而來。 指針分類:根據所指對象類型區分:int、char、double、class等,還有 nullptr 指針 和 void *指針; 常量指針(指向常量的指針) 和 指針常量(該指針是常量); 常量指針: const int * p ; 特點就是 const 是對 int 的修飾,說明所指對象是一個int 型常量。 指針常量: int * const p ; 特點就是 const 是對 * 的修飾,說明該指針是個常量。 升級問題:迭代器(iterator)和指針(pointer)區別:STL 容器類的 iterator 迭代器是類模板,它可以遍歷容器內的全部或者部分元素,本質是封裝了原生指針,提供了 比指針更高級的行為,可以成為智能指針,有++,-- ,->,*等操作,一共分為輸入迭代器(input iterator)、輸出迭代器(output iterator)、前向迭代器(forward iterator)、雙向迭代器(bidirectional iterator)、隨機存取迭代器(random access iterator)。 在范圍上,pointer 屬于 iterator 的一種(random access iterator) 在功能上,iterator 有著比 pointer 更細的劃分并對應能力不同的功能(重載不同的運算符) 在行為上,iterator 比 pointer 更統一和良好的用法(更輕易使用 begin()、end()且不用擔心越界) B:面向對象的三個基本特征:封裝、繼承、多態 封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。 繼承是指這樣一種能力:它可以使用現有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進行擴展。 多態性(polymorphisn)是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。 實現多態,有二種方式,覆蓋,重載。覆蓋,是指子類重新定義父類的虛函數的做法。重載,是指允許存在多個同名函數,而這些函數的參數表不同(或許參數個數不同,或許參數類型不同,或許兩者都不同)。其實,重載的概念并不屬于“面向對象編程”,重載的實現是:編譯器根據函數不同的參數表,對同名函數的名稱做修飾,然后這些同名函數就成了不同的函數(至少對于編譯器來說是這樣的)。 多態的作用是什么呢? 封裝可以隱藏實現細節,使得代碼模塊化;繼承可以擴展已存在的代碼模塊(類);它們的目的都是為了——代碼重用。而多態則是為了實現另一個目的——接口重用!多態的作用,就是為了類在繼承和派生的時候,保證使用“家譜”中任一類的實例的某一屬性時的正確調用。 C:C++內存管理:存儲內容:   靜態區:保存自動全局變量和static變量(包括static全局和局部變量)。靜態區的內容在整個程序的生命周期內都存在,有編譯器在編譯的時候分配(數據段(存儲全局數據和靜態數據)和代碼段(可執行的代碼/只讀常量))。   棧:保存局部變量。棧上的內容只在函數范圍內存在,當函數運行結束的時候,這些內容也會自動銷毀。其特點是效率高但是空間大小有限。   堆:由malloc系列函數或者new操作符分配的內存。其生命周期由free和delete決定。在沒有釋放之前一直存在,直到函數結束。其特點是使用靈活,空間比較大,但容易出錯。 值得注意的一點是:代碼段中存儲的是可執行的代碼和只讀常量,很多人看到代碼段就認為里面只有代碼,數據段里面才是存儲數據的,其實不是這樣的。 內存申請和釋放: malloc和free函數是一一對應的,如果malloc兩次但是只free一次就會存在內存泄漏,如果malloc一次但是free了兩次,就會出錯 我們知道c++是兼容c的,那我們明明已經有了malloc和free來進行動態內容的管理,為什么c++還要定義new和delete運算符來動態管理內存。   實際operator new/operator delete 只是malloc和free的一層封裝。 來看一下它們之間的區別和聯系:   1.它們都是動態管理內存的入口。   2.malloc/free是c/c++標準庫的函數,new/delete是c++操作符。   3.malloc/free只是動態分配/釋放內存空間。而new/delete出來分配空間還會調用構造函數和析構函數進行初始化與清理。   4.malloc/free需要手動計算類型大小且會返回void*, new/delete可以自己計算類型的大小,返回對應類型的指針。   我們在c++中是允許進行重載的,那我們也可以重載一下new和delete,我在這就不做了(其實new和delete是不能重載的,即使你進行了重載,也只是重載了operator new和operator delete)。 new和delete在內存中所做的事 new做的事: 1.調用operator new分配空間 2.調用構造函數初始化空間 delete做的事: 1.調用析構函數清理對象 2.調用operator delete釋放空間 new[N]做的事: 1.調用operator new分配空間 2.調用N次構造函數分別初始化每個對象 delete做的事: 1.調用N次析構函數清理對象 2.調用operator delete釋放空間 用一張圖來解釋: D:sleep()和wait()這兩個方法的區別 1、sleep()是讓某個線程暫停運行一段時間,其控制范圍是由當前線程決定,也就是說,在線程里面決定. 2、而wait(),首先,這是由某個確定的對象來調用的,將這個對象理解成一個傳話的人,當這個人在某個線程里面說"暫停!",也是 thisOBJ.wait(),這里的暫停是阻塞 3、區別: sleep()和wait()函數的區別: (1)兩者比較的共同之處是:兩個方法都是使程序等待多少毫秒。 (2)最主要區別是:sleep()方法沒有釋放鎖。而wait()方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。 (3)sleep()指線程被調用時,占著CPU不工作,形象的說明為“占著CPU”睡覺。 sleep(2000)表示:占用CPU,程序休眠2秒。 wait(2000)表示:不占用CPU,程序等待2秒。 引申:掛起和阻塞區別: (1)掛起是一種主動行為,因此恢復也應該要主動完成。而阻塞是一種被動行為,是在等待事件或者資源任務的表現,你不知道它什么時候被阻塞,也不清楚它什么時候會恢復阻塞。 (2)阻塞(pend)就是任務釋放CPU,其他任務可以運行,一般在等待某種資源或者信號量的時候出現。掛起(suspend)不釋放CPU,如果任務優先級高,就永遠輪不到其他任務運行。一般掛起用于程序調試中的條件中斷,當出現某個條件的情況下掛起,然后進行單步調試。 程序狀態變化圖: E:進程和線程的區別 進程是cpu資源分配的最小單位,線程是cpu調度的最小單位。進程是資源的分配單位,線程是CPU在進程內切換的單位,線程屬于進程。 接下來是場景問題: I-面試--超大文件取交集:問題:現有兩個各有20億行的文件,每一行都只有一個數字,求這兩個文件的交集。 我的回答:1.先將文件進行排序(外存排序),然后對兩個文件中的數選一個hash函數,能將數據集范圍的整數分到若干個桶中,每個桶中落入的數的個數能夠內存處理即可 2. 每個桶內進行常規求交集即可 此題牽涉到外存排序:外排序分兩個步驟:預處理和合并排序。先將文件分段;然后利用內部排序方法(快排,歸并,堆排序等),將每一段排序成為順串,生成后寫入外存。這樣外存上就得到了m個順串。最后,對這些順串進行歸并,使得其長度逐漸增大,直到所有帶排序的數字成為一個順串為止。 外部排序最常用的算法是多路歸并排序,即將原文件分解成多個能夠一次性裝入內存的部分,分別把每一部分調入內存完成排序。然后,對已經排序的子文件進行歸并排序。 第二部分:問的項目相關內容和實習內容 問:1、項目具體內容和分工;2、你負責的部分簡單描述,分析其中的難點和收獲;3、實習的具體工作職責和成效;4、實習收獲到的知識。 第三部分:問測試相關的知識,這塊問得比較淺,比如說平時用什么工具測試

公司動態

  • alibaba新增一條來自 前員工/在職員工 分享的工資待遇,包括以下內容:
  • 基本工資年終獎是否有保險是否有公積金是否準時下班周六周天是否加班詳情>>
  • Alibaba新增一條來自 前員工/在職員工 分享的工資待遇,包括以下內容:
  • 基本工資年終獎是否有保險是否有公積金是否準時下班周六周天是否加班詳情>>
  • alibaba新增一條來自 前員工/在職員工 分享的工資待遇,包括以下內容:
  • 績效及提成加班工資年終獎是否有保險是否準時下班周六周天是否加班詳情>>
企業名片
  • 公司性質:上市公司
  • 公司規模:
  • 公司地址:
  • 所屬行業:互聯網/電子商務 計算機軟件 計算機服務(系統、數據服務、維修)
  • 官方網址:
主站蜘蛛池模板: 国产成人精品亚洲日本在线 | 午夜视频亚洲 | www.青青草.com | 成年美女黄网站色大免费全看 | 亚洲精品久久无码AV片银杏 | 日韩欧美综合在线视频 | 国产一级一级理论片一区二区 | 日韩国产成人在线 | 国产精品9191| 色七七桃花综合影院 | 人人妻人人澡人人爽国产 | 欧美大片久久国产欧美日韩精品 | 18禁男女污污污午夜网站免费暖暖 | 在线播放日韩精品 | 超碰地址 | 日韩一区二区免费在线观看 | 国产在线播放免费 | AV剧情麻豆映画国产在线观看 | 成年人的视频免费看 | 国产精品色吧国产精品 | 您好星期六2024最新免费观看 | 日韩视频精品在线 | 懂色av一区二区三区观看 | 成人福利热舞hd | 国产一级黄色小视频 | 偷拍区清纯另类丝袜美腿 | 91不卡视频| 亚洲乱色| 亚洲不卡无码永久在线观看 | 无码免费午夜福利片在线 | 亚洲精品专区 | 日本成人三区 | 亚洲人片在线观看 | 夜鲁夜鲁很鲁在线视频视频 | 猛草视频 | 黄网免费观看 | 伊人黄色软件 | 亚洲∧V久久久无码精品 | 久久AV无码精品人妻系列试探 | 亚洲毛片无码专区亚洲乱 | 亚洲字幕AV一区二区三区四区 |