基本上簡歷上寫的內容都可能會聊到,會針對你擅長的某乙個技術點做一些場景問答,所以寫在簡歷上的都要做深入的**。
筆試有兩道題,也都相對簡單:
nsstring *a = @"test"
;nsstring *b = @"test";if
(a ==b)
else
對於這題的答案,其實最初感覺字面量會被作為常量常量處理,這部分值本身不會發生改變,為了節約記憶體應該會對一樣的常量做統一的儲存.但是後來又覺得可能跟編譯器的優化邏輯有關,最終決定使用clang命令來做一下確定.
這裡使用xcode預設的main函式做一下測試:
int
main
(int argc,
char
* ar**)
else
@autoreleasepool
return
;}
然後使用
xcrun -sdk iphonesimulator clang -rewrite-objc main.m
檢視生成的檔案:
#define __offsetofivar__(type, member) ((long long) &((type *)0)->member)
static __nsconstantstringimpl __nsconstantstringimpl__var_folders_hz_vhd445sx35q8gbfkzf7ljrg40000gp_t_main_9371c3_mi_0 __attribute__ (
(section (
"__data, __cfstring"))
)=;static __nsconstantstringimpl __nsconstantstringimpl__var_folders_hz_vhd445sx35q8gbfkzf7ljrg40000gp_t_main_9371c3_mi_1 __attribute__ (
(section (
"__data, __cfstring"))
)=;static __nsconstantstringimpl __nsconstantstringimpl__var_folders_hz_vhd445sx35q8gbfkzf7ljrg40000gp_t_main_9371c3_mi_2 __attribute__ (
(section (
"__data, __cfstring"))
)=;static __nsconstantstringimpl __nsconstantstringimpl__var_folders_hz_vhd445sx35q8gbfkzf7ljrg40000gp_t_main_9371c3_mi_3 __attribute__ (
(section (
"__data, __cfstring"))
)=;.
....
.int
main
(int argc,
char
* ar**)
else..
....
}
可以看得出來,雖然兩個字串使用不同的指標指向,但是兩個字串儲存的空間確實相同的。所以,對於常量編譯器在編譯期間確實是會進行優化的.
找出陣列中只出現一次的元素,要求演算法複雜度為線型複雜度.
輸入: [2,3,4,4,3]
輸出:[2]
本身實現並不難,但是需要線型複雜度,這個就需要使用到的異或運算的性質:
相同的位進行異或運算結果為1,否則為0.
這樣演算法實現起來就很簡單了
int
*singlenumber
(int
*a,int size,
int*returnsize)
int*result =
malloc
(sizeof
(int))
;*result = sum;
*returnsize =1;
return result;
}
阿里一面 電話面
前端小白記錄一下面試經歷 首先面試官特別和藹可親,聲音很溫柔。開始就是做了下自我介紹,blablabla.接下來就專案談了一下做了哪些專案,用過哪些技術,遇到過哪些難題之類的。下面就是技術問題了 記住,搞懂原理很重要 1.闡述一下ajax原理 2.解釋一下vuex原理 3.vue雙向繫結原理 4.解...
阿里一面電話面
flex的理解,flex direction為row表示什麼含義,居中怎麼設定 grad布局 rem,不同瀏覽器下怎麼設定元素大小 cookie,local storage,sessionstorage之間的區別,哪個可以跟服務端通訊 localstorage設定元素的api 怎麼設定cookie不...
阿里一面總結
最近突然接到獵頭的郵件,說成都螞蟻金服在招測試開發工程師,想推薦我去面試。雖然在外企待著還不錯,但是能有機會接觸bat還是挺高興的,心想不管成不成,去體驗一下中國最頂級it公司的面試也不錯。於是就同意推薦。第二天正當我下班剛下電梯的時候,突然就接到了阿里的 實在令我感到意外!沒想到阿里的效率這麼高。...