面試經歷---阿里巴巴子公司粵科軟件(2015年11月9日晚上電話面試)

        粵科軟件2015年4月份被阿里巴巴以8.3億收購了,阿里打算擴大粵科軟件的開發團隊,聽說目前有四五十人的開發團隊,未來要擴展到一百人。

       上週就收到獵頭的電話,要我好好準備,獵頭還提醒我阿里那邊可能會問到的題目,比如JAVA虛擬機、Spring源碼,呵呵,感覺這個獵頭真好,而且他還提醒我說之前幾個候選人因爲基礎不過關被淘汰了,叫我週末好好準備。呵呵,週末看了一個有關JAVA虛擬機的書《深入理解Java虛擬機++JVM高級特性與最佳實踐》,等待今天晚上阿里那邊員工的電話面試。

        下面列出今晚電話面試的主要題目,今晚答得讓我不太滿意,準備得不夠充分,有點遺憾,估計凶多吉少。

1、你現在在做啥系統?

簡單介紹了本人現在所做的一個B2B平臺使用的技術情況,包括JQuery、Freemarker、SpringMVC、 Spring Security、MyBatis、MySQL、Redis、RabbitMQ、Nginx、Zookeeper、Dubbo、CAS等。

2、熟悉分佈式緩存框架嗎?Redis集羣的方式是什麼?Redis的數據類型有啥?

(1)  使用過Redis

(2)  Redis的數據類型有String、Integer、Set、List

(3)  Redis的集羣方式當時沒答出來,其實就是主從集羣。

3、HashMap、HashTable、ConcurrentHashMap的區別?

(1)  HashMap不是線程安全的,鍵值可以爲空

(2)  HashTable是線程安全的,鍵值不可以爲空

(3)  ConcurrentHashMap是線程安全的,相當於將HashMap拆分成多個(默認16個)個HashTable,ConcurrentHashMap的併發性能要遠遠高於HashTable.

4、你瞭解JAVA的內存模型嗎?

JAVA的內在模型分成主內存和工作內存,主內存主要存放全局變量,是線程共享的;工作內存主要存放局數據變量,是線程獨享的。如果線程需要訪問到全局變量,則會將主內存的全局變量拷貝一份到工作內存中,線程直接訪問工作內存中的變量拷貝,而不會直接訪問全局變量。線程若需要修改全局變量,則會先修改工作內存中的變量拷貝,再同步到主內存中的全局變量中。

5、你所做的系統有什麼技術是你覺得難做的?

(1)  單點登陸CAS

(2)  跨域問題

(3)  session共享

6、你所做的系統中你做的最重要的是什麼?

(1) 單點登陸CAS

       然後講解了CAS的原理。

7、你瞭解JVM的堆分區結構嗎?

      JVM中的堆分成年輕代和年老代。

年輕代主要存放new出來的實例和數組,年老代主要存放類的變量和靜態數據。

年輕代中的數據經過若干次垃圾回收後(默認是15次),如果還存在年輕代中,則會轉移到年老代中。如果年輕代中大對象的比例超過40%,也會轉移到年老代中。

8、你有什麼想要問的嗎?

(1)  項目中的開發人數

目前四五十人,未來會擴展到一百人.


 想要成爲一名JAVA大牛,哥還有很長的路要走,路漫漫修遠兮,吾將上下而求索!

哥一定要在一年內,實現月薪達到20K的目標!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章