私の人生の最初の電話インタビュー

  9時00分今朝はアリババの電話インタビューを受け、私は物事の見込みがないと思っているだろう、突然、私が電話に応答すると便利ではなかった場合、人々は、I断固として私に尋ねたので、偶然に興奮し、少し驚きを来ました簡単な答え、結果が混乱に答える準備ができていないからです。私は彼が新人だと思うが、そう悪い答えではありませんが、最終的に不動の、彼らの知識は固体ではありませんどのように理解し、将来の表面に浮遊していることを学ぶ前に、本格的でなければなりませんいずれかの学習知識。

  、私のためにこのインタビューを(いくつかの時間前テンセントがインタビューに参加したが、いくつかの理由で非常に表面水があるが)これは今までにも、初めての、より正式な就職の面接の電話インタビューで、今まで私の最初の時間ですそれはそれの驚くべき感覚を持っていなければなりません!

  まず第一に、私は審査官今日感謝して、彼はときに私は説得力もないだろう、私を励ましてきた、非常に緩やかな話を聞きました。私は非常によく、全体の答えダウンしていたが、面接は非常に良い印象を残した、だけでなく、アリババのために良い印象を残している。にもかかわらず、それは私が今、非常に良い企業文化がなければならないと思いますが、私は今、特にAlibabaの作業を行ってみたい作ら!

 

  すべてのこのナンセンスを言って、それから、今日のインタビューについて話をすると、それが直面しているものです。(そのうちの多くは覚えていません)

1、最初は彼は私がC ++に精通していない調理言語に精通しています何を尋ねましたか?

      私の答えは次のとおりです。精通していない。彼は、それはまた、それのいくつかを理解するべきであると述べ、その後、彼らは私に新しいとmalloc関数の違いを尋ねましたか?

(以下では説明を見つけるためにインターネットからです)

  a)はmallocとfree標準ライブラリ関数のC ++ / C言語では、新しい/ C ++演算子を削除します。彼らは、動的メモリと空きメモリを適用するために使用することができます。 

  b)は、オブジェクトの非イントラデータ・タイプについて、光maloc /フリー・ダイナミック・オブジェクトの要件を満たすことができません。自動化するには、オブジェクトのコンストラクタが作成され、オブジェクトは自動的に死ぬ前にデストラクタを実行します。malloc関数/フリーライブラリ関数は、オペレータがないので、コンパイラは、タスクコンストラクタとデストラクタ課さのmalloc /無料で行うことができない、コントロールの範囲内ではありません。 

  c)のクリーニングと解放するワークメモリを完了するために、削除オペレータに、新しい動的メモリ割り当てと初期化作業を完了するため、必要C ++言語に。新しい/削除は、ライブラリ関数ではないことに注意してください。

  Cプログラムのみのmalloc /無料の動的メモリ管理を使用することができますしながら、D)C ++プログラムでは、多くの場合、C関数を呼び出す必要があります

  • 新しい演算子であり、どのような「+」、「 - 」、「=」...同じステータスを持つ、malloc関数は、通話のためのメモリを割り当てる機能です。
  • 新しい予約語、ないヘッダファイルのサポートで、malloc関数ライブラリ関数はヘッダファイルのサポートを必要としています。
  • ターゲットは新しい、mallocの割り当てはメモリで確立することです。
  • あなたは、通常のオブジェクトとしてアクセスメンバ関数を使用することができます新しいビルドターゲット、直接そのアドレス空間にアクセスしない、malloc関数の割り当ては良いアクセスするためにポインタを使用し、メモリ領域ですが、また、内部ポインタを移動することができます。

要するに:

malloc関数は、それが覆われていてもよい、機能で、過負荷にすることができ、新しい演算子です。

デストラクタを削除し、そのオブジェクトのコンストラクタ関数を呼び出して、それぞれの呼び出しに対応し、新しいオブジェクトを初期化、malloc関数は、無料の専用メモリを回復する、唯一のメモリを割り当てられました。

さらに説明を参照してください「新/削除し、malloc関数/無料の違い(総合転載)。」

 

2、その後は私にシステムヒープとスタック(ないデータ構造)との差を求めて

キーポイント:

スタック領域(スタック) - 保存された関数のパラメータ、ローカル変数などを、自動的に解放コンパイラによって割り当てられました。スタックデータ構造と同様に動作します。

ヒープ(ヒープ) - プログラマがプログラムの終了時に解放しない場合は、通常、プログラマによって割り当てが解除さは、OSによって回収することができます。それは同様の配布リストに触れる、それは全く別のスタックデータ構造であることに注意してください。

詳細は、「[コレクション]ヒープとスタックの違い」を参照してください。

 

3、システムの実行可能プログラムは、それを実装する方法ですか?.exeファイルの実行があります

     我々は、すべてのexeファイルが実行可能ファイルです知っている、そしてその最も一般的には、このようなパッケージをインストールすると、Windowsで実行可能ファイルです。

     EXEは、オペレーティングシステムの実行可能プログラムのメモリ空間に配置浮動実行可能プログラムファイル。MS-DOSとMS-WINDOWS、.exeファイルの拡張子は、バイナリ実行可能WINDOWSオペレーティングシステムの下では、2種類の一つは、別の実行可能ファイル名の接尾辞.COMで.EXEです。.COMは、一般的にDOSのために使用され、Windowsシステム内のファイルを実行し、一般的に.EXEファイルです。

     Exe文件的执行过程如下:

1)    shell调用CreateProcess函数来激活.exe文件。

2)    系统禅城一个“进程核心对象”,并且其计数值为1,该值是系统删除进程核心对象的依据。

3)    系统为此进程建立一个4GB的地址空间

4)    加载器将必要的文件加载到上述的地址空间中,包括.exe的程序、数据、以及所需要的动态链接库

5)    系统创建一个线程,我们称之为主线程。

6)    系统调用startup   code

7)    startup code 调用.exe 程序的入口函数WinMain

8)    exe文件开始执行

9)    用户关闭程序窗口,使winmain 中的消息循环结束,使得winmain函数结束。

10)  回到Startup code

11)  回到系统调用exitProcess 结束进程。

 

4、  线程的同步:临界区、互斥区、事件、信号量四种方式

5、  进程间通信:进程,信号,管道,消息队列,信号量,共享内存

  让给出一个进程通信的数据结构:进程控制块(当时居然没有想起来,脑袋秀逗了吧!!!)

6、  函数的调用过程:

  • 每一个进程在用户态对应一个调用栈结构(call stack)
  • 程序中每一个未完成运行的函数对应一个栈帧(stack frame),栈帧中保存函数局部变量、传递给被调函数的参数等信息
  • 栈底对应高地址,栈顶对应低地址,栈由内存高地址向低地址生长
  • 更详细的解释还有待查找整理

7、  系统函数的调用:系统函数主要是在核心态,用中断即可,传递的是函数的系统调用编号,内核为每个系统调用分配了一个唯一编号。

8、  平衡二叉树用在哪些方面:(想不起来他当时说的是什么了)二分查找么?红黑树?

9、  有向图和无向图的区别:有方向,无方向;有向图用于哪些方面:优先级队列,偏序集

10、OSI七层模型(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层);socket在哪层?(应用层)

  后面还问了下我对Android,手机编程等什么的了解不,还有java,我都说不了解,然后就是问了下我干了些什么,是在学校是偏重于理论研究还是工程项目,以及项目规模和参与人数等等。

 

  还有什么我就真的记不住了,最后还是非常感谢这位面试官认真细致的态度,我看出了他是想尽量的多了解我,希望能找到可以让我通过的点,但是,我让他失望了,没有一个回答得比较好的,真的是万分抱歉~~~但是我会再接再厉的,接下来的日子里一定努力学习专业知识,提高专业素养!

  加油!Never give up!

PS:我笔试的时候报的职位是“系统工程师”

Dpfl

2013年6月4日星期二 21:12

转载于:https://www.cnblogs.com/dpflnevergiveup/archive/2013/06/04/3117946.html

おすすめ

転載: blog.csdn.net/weixin_34013044/article/details/93268158