前天筆試完,今天LZ就去面試了。地點什麼的就不說了,直接上乾貨。
1:Leader:你有女朋友?(這也是程序員會問的?我感到有點突然。。。。)
Me::額 ,有
你女朋友來會來多益嗎?
會啊。
你女朋在幹嘛?
讀書啊。好吧他就沒問了。
2:你說一下你討厭的人(LZ本生沒討厭過誰啊,怎麼說,難道一定要討厭別人纔行?)
說一下你討厭的性格。
高調的人吧。
完了?
恩。
3:解釋下二位數組和一維數組尋址
二維數組與一維數組不同之處在於,a+i在二維數組裏表示第i行數組的首地址,或者是&a[i][0],並且*(a+i)也表達了同樣的地址(&a[i][0])。要想表達a[i][j]的地址,要麼用a[i]+j,要麼用*(a+i)+j,切莫用a+i+j(這是表示a[i+j][0]的地址)。
一位數組,a+2指的是a[3]的地址
4:說一下HTTP的連接過程。
直接上三次握手,四次揮手。 服務器預留資源等等
5:你知道設計模式哈?說一下常用的。
單例,工廠,觀察者,適配器。 簡單說了下
public class Singleton{
private static Singleton instance;
private Singleton(){
}
public static synchronized Singleton getinstance(){
if(instance == null){
instance = new singleon();
}
return instance;
}
6:c++虛函數的作用
LZ不怎麼了解c=+
大概就是實現多態的,也就是java的抽象函數和接口之類的
7:解釋下堆棧溢出。多半說的是c++,java的話也分本地方棧和虛擬機棧,一般就是jvm棧。
百度了下,大家可以看下:
一般每個進程的棧空間是限定的。(爲什麼限定?去學彙編和操作系統就知道)
什麼佔用棧空間?
除去系統棧佔用外,基本就是棧變量。(什麼是棧變量?無語¥%*&……%¥%&)
簡單來說上面那個a就是棧變量。
修改有兩個辦法:
一 改爲堆變量:
int* pa = malloc(sizeof(int)*1000*1000);
然後可以將pa當數組用。(數組和指針在C裏基本等同)
當然,不用了記得free pa。
二 修改系統限制
這個棧變量= 1000*1000*4 = 4M。(約等於)
如果這個函數不頻繁調用,也不遞歸,一般還是可以接受。
可以修改操作系統對進程棧空間的大小限制,稍微調大一些。
ulimit查看系統的限制。(*nix系統命令。不是windows的)
大概意思就是:
1.沒有回收垃圾資源
2.層次太深的遞歸調用
但是在java中堆棧的應用是這養的
http://blog.csdn.net/chengyingzhilian/article/details/7781858
8:設計一下NPC處購買道具的過程
具體說自己的想法
9:怎麼去寫碰撞條件 準確的說是沒有做過遊戲開發
10:你有沒有offer現在? 確實他們招的比較早,也是我第一家公司,所以我說沒有
然後他說時間到了,拜拜了