正好是在本校,今天在學校又參加了一下adobe2012的實習生筆試,雖然知道這公司很難進,但是抱着去試一試的態度,看看牛逼公司都出什麼樣兒的題目吧。
一個半小時,時間不多不少。
剛剛拿到試卷的時候,略有不習慣,一疊試題,一疊答題紙,還全都是英文⋯⋯⋯⋯上一次做英語題目那個貌似是在大三筆試IBM的時候了吧,都兩年過去了。
瀏覽試卷,10個選擇題(6必做 + 4個JAVA // 4 C++),3個大題目,可以選擇用Java或者C++來答題。
選擇題
1.堆棧
2.鏈表,環形,雙向單向
3.數學題:給你多少鞋,有多少顏色,多少隻襪子,多少顏色,至少拿幾個能湊夠一雙
4.數學題:從1到1000000的每個數的數字之和(123和456的數字之和不是579,而是21), 排除法,很容易
5.邏輯題:條件推理,例如:A推出B和非C,非D推出E和B,等等⋯⋯將題目轉換成那樣的條件邏輯,很容易推出答案來
6.給了一張圖,問概率什麼的,差不多自己也能慢慢算出來吧
JAVA選擇題
7.synchronized關鍵字的作用範圍,我覺得這個是考點吧,給出多線程同步有關係的一段代碼。
8.tell the different of Hashmap and HashTable:這個我平常還真沒怎麼了解,就靠猜了,有一個允許null value而另外一個不讓
9.Integer比較和 char的比較,直接用== 比較和 用 equals的比較
10.這個題目也是大家平常容易犯的錯誤之一吧,它給的代碼裏,switch的case中 沒有break啊!
大題
一、多線程的同步,模型可以歸結爲比較經典的生產者消費者問題吧。讓你寫,如何生產,如何消費,如何開始線程三個代碼塊。
二、讓你優化寫一下石頭、剪刀、布的這三個class,和他們的abstract class, 石頭剪刀布三個類只用寫一個就行,關鍵是寫好他們的父類吧。
這個是一個開放性的題目,我個人想法,將這三者用一個環形鏈表放在一起,就很容易判斷是石頭>剪刀,剪刀 >布,布>石頭了吧。
三、讓我徹底栽跟頭的一個題目,爲此,我將題目 完全弄下來了:
Tommy and other 8 classmates were in a math class. Teacher prepared 9 hats with a 2-digit number printed on each hat and the 9 numbers differ from each other. Then the teacher gave each student a hat. Each student could only see the numbers on others' hats but could not see the number for his/her own. The teacher then wrote a number A on the blackboard and asked the 9 students:"Do you know if the number on your own hat can be divided by number A with no remainder(整除)? Please raise your hand if you do." Tommy and 3 other students raised their hands. The teacher then asked:"Thendo you know if the number on your own hat can be divided by 24 with no remainder? Please raise your hand if you do". Tommy and 5 other students raised their hands.
Presume the 9 students are smart enough and didn't lie, then what's the summary of the 8 numbers that Tommy could see from others' hats? Write down the number and the reason why you think so.
哎,其實關鍵點就是在於對題目的理解,理解OK,那就容易做,沒理解的話(我考試時是徹底暈了),那就無可奈何啊!
重點是這句話的理解,段落中用紅色字體標記出來了。
參考答案我上網搜索了一下:
原文地址:http://blog.csdn.net/davidbeckham2901/article/details/7464201