❶ 作為一個應屆生程序員,我是怎麼通過阿里的三輪面試的
首先,自我介紹。
我:「我做過兩個項目。寫過幾篇論文和專利。還參加過阿里巴巴大數據競賽。同時,出於個人興趣,我還閱讀了一下HDFS的少部分源碼,理解了一下HDFS的核心思想,實現了一個功能非常簡單,並且還不完善的HDFS。」
面試官1:「說一說你寫的論文中的某一篇的創新點?」
我:「我寫的文章或者專利,主要遵循一個原則:將已有的理論或者模型應用到新的場景中。所以,都是偏向應用的。重點說說這篇論文吧。首先,從奇異值分解說起吧……」
大概講了幾分鍾後,面試官1打斷我:「你做的這些東西都偏向數據挖掘方向,為什麼沒有投數據挖掘呢?」
我:「因為,按照我的理解,數據挖掘這個崗位需要對機器學習演算法有深入研究,然而,我做的偏向於對數據挖掘演算法的應用。所以,我想投研發,偏向數據挖掘和分布式方向,從基礎做起。」
面試官1:「其實,你的優勢是做過數據挖掘。這樣吧,我先找一個數據研發的面試官對你進行一下面試。等會兒,你再來我這。」
雖然自己也系統地學習過機器學習演算法,但是接觸時間太短(幾個月),研究不夠深入,只在比賽中用過少數幾種演算法:LR、RF和GBRT。自己的優勢在於對數據的理解和特徵的提取,以及演算法的應用。
而演算法推導過程並不清楚,只是理解了其思想。我怕被問得太細致,所以不是很情願。不過,在面試官1的堅持下,最終還是同意了。
看到第二個面試官的牌子上寫著「數據研發」,我稍微舒了口氣;幸好不是「數據挖掘」。
今年,「數據研發」崗位招人挺多的,很多都是去小微金服。面試完之後,我覺得「數據研發」的崗位要求是這樣子的:
熟練掌握基本的SQL語句;因為有一道筆試題目。我覺得阿里應該用自己的ODPS-SQL(類似於Hive)進行數據研發,雖然這個平台挺復雜的,但是面試的時候的要求並不高。只要掌握基本的內建函數和SQL語句就行了:select, group by…
我在比賽過程中,寫過幾萬行SQL代碼(去重之後幾千行),沒有用到過索引和視圖;經常用到內建函數,偶爾使用UDF(用戶自定義函數)。但是,寫的代碼不包含索引、視圖和UDF。也沒有考優化(其實我也不懂)。
有數據研發方面的相關經歷,面試官似乎很注重這一項。我參加過阿里巴巴大數據競賽。
對數據研發有一些自己的看法。這個很關鍵,一定要思路清晰。我主要在講比賽中的模型:數據的預處理->訓練集、預測集->特徵提取->進一步處理->正負樣本比例->訓練->預測。
當然會用寫MapRece的話就過更好了。阿里的平台提供了MapRece,估計工作中會用到。
然後,跟第二個技術面試官開始交流。
面試官2:「自我介紹一下吧。」
我:「剛才介紹過其他經歷了。那我主要介紹下與數據研發相關的經歷吧。」然後,簡單說了下自己參加的阿里巴巴大數據競賽。
面試官2:「行。先做一道題目吧。」
面試官給了我一道SQL的題目:給定一個表,共四列:user_id, brand_id, time, cnt(花的錢數)。從這個表裡面選出用戶B對每個品牌brand購買的總額度。
一看到,有點竊喜,這跟我競賽做的東西太相似了。
跟面試官進行簡單溝通後,很快寫出來了。不過還是怕做錯,檢查了很久才拿給面試官2。順便提了一下,如果需要處理字元串的話,我會用ODPS-SQL裡面的UDF。面試官看了下程序,沒說什麼,就放到了一邊。
後面,我們主要在討論阿里巴巴大數據競賽:我做了什麼,用什麼模型、演算法做的,准確率是多少。(這塊討論時間最多)
還好,我主要討論的是對業務和數據的理解,沒有深入討論數據挖掘演算法。
討論很順利。結束之後,面試官2把我帶回面試官1。
回來後,繼續與面試官1主要討論我寫的論文。由於之前對自己寫的論文進行過總結,思路很清晰。並談論了寫論文的體會和收獲。
總之,第一面的面試官很和藹,交談也很開心。
再次稍微提一下:個人覺得面試官主要有兩類,一類是用技術把你問死,從而判斷你對技術的掌握深度。
另一類是,簡單的技術問題之後,讓你去表現,引導你來講,從而看你這個人的思想、表達能力、個人觀點等綜合素質。
當然,一個面試官如果看到你不善於表達,就只能一直問你問題了。很榮幸,我碰到的是第二種面試官。面試跟聊天一樣輕松。
最終,順利通過。
應該是這個樣子的吧 哈哈【ITjob]
❷ 應屆生面試java相關崗位可能會被問到哪些技術問題
常見的Java問題
1.什麼是Java虛擬機?為什麼Java被稱作是「平台無關的編程語言」?
Java虛擬機是一個可以執行Java位元組碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的位元組碼文件。
Java被設計成允許應用程序可以運行在任意的平台,而不需要程序員為每一個平台單獨重寫或者是重新編譯。Java虛擬機讓這個變為可能,因為它知道底層硬體平台的指令長度和其他特性。
2.JDK和JRE的區別是什麼?
Java運行時環境(JRE)是將要執行Java程序的Java虛擬機。它同時也包含了執行applet需要的瀏覽器插件。Java開發工具包(JDK)是完整的Java軟體開發包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調試器),可以讓開發者開發、編譯、執行Java應用程序。
3.」static」關鍵字是什麼意思?Java中是否可以覆蓋(override)一個private或者是static的方法?
「static」關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的實例變數的情況下被訪問。
Java中static方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而static方法是編譯時靜態綁定的。static方法跟類的任何實例都不相關,所以概念上不適用。
4.是否可以在static環境中訪問非static變數?
static變數在Java中是屬於類的,它在所有的實例中的值是一樣的。當類被Java虛擬機載入的時候,會對static變數進行初始化。如果你的代碼嘗試不用實例來訪問非static的變數,編譯器會報錯,因為這些變數還沒有被創建出來,還沒有跟任何實例關聯上。
5.Java支持的數據類型有哪些?什麼是自動拆裝箱?
Java語言支持的8中基本數據類型是:
byte
short
int
long
float
double
boolean
char
自動裝箱是Java編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把int轉化成Integer,double轉化成double,等等。反之就是自動拆箱。
6.Java中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?
Java中的方法重載發生在同一個類裡面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。
7.Java中,什麼是構造函數?什麼是構造函數重載?什麼是復制構造函數?
當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java編譯器會為這個類創建一個默認的構造函數。
Java中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。
Java不支持像C++中那樣的復制構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java不會創建默認的復制構造函數。
8.Java支持多繼承么?
不支持,Java不支持多繼承。每個類都只能繼承一個類,但是可以實現多個介面。
9.介面和抽象類的區別是什麼?
Java提供和支持創建抽象類和介面。它們的實現有共同點,不同點在於:
介面中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
類可以實現很多個介面,但是只能繼承一個抽象類
類如果要實現一個介面,它必須要實現介面聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。
抽象類可以在不提供介面方法實現的情況下實現介面。
Java介面中聲明的變數默認都是final的。抽象類可以包含非final的變數。
Java介面中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。
介面是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含main方法的話是可以被調用的。
也可以參考JDK8中抽象類和介面的區別
10.什麼是值傳遞和引用傳遞?
對象被值傳遞,意味著傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。
對象被引用傳遞,意味著傳遞的並不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。
Java線程
❸ java程序員參加面試的時候 關於項目經驗這方面的問題
一般都會問你參與了什麼項目,在項目中充當社么角色,使用什麼框架技術,項目中的難點和突破等等,如果面試官比較積極而且你也確實參與了項目的話那順著說就是了,如果面試官等你說那最好准備一些技術上的亮點和自己對項目的思考,不僅是技術上可能也包括團隊上
❹ 我是一個正在找工作的應屆畢業生,求職意向是Java方面的軟體工程師,怎樣去面試。。希望有經驗者給予幫助
大學生在校園里學習的都是課本知識,這與許多單位對應聘者具備實踐動手能力及相關經驗的要求必然地產生了脫節。這更招致了在嚴峻的就業環境之下,大學生們找工作的困難度。
每至畢業季,找工作尋出路是畢業生們不得不面對的。初出茅廬的大學畢業生們如何才能順利找到工作?如下,有人匯總出一些專業HR們對大學生求職提出的建議。他們認為,只要大學畢業生們能把握這5個突破點,實現就業不會有太大問題。話不言多,這5個突破點分享如下:
突破點一:細節決定成敗
隨著社會的縱深發展,企業對人才的考察已非停留在專業、技能、經驗的需求,同時考慮人才的性格、合群、創新能力,注重細微功夫。可有些求職者不能真正領會「勿以惡小而為之,勿以善小而不為」的古訓,導致求職敗北。奧泰斯電子有限公司的王元元在接受采訪時說:「員工接聽電話時,如果講話不小心,就有可能丟掉客戶。」而類似的現象,在企業發展中屢見不鮮。為減少企業管理的失敗成本,選擇人才時注意細節考察,當然順理成章了。
突破點二:突出自己的優勢
應屆生與社會人士相比,自有其不足之處,但未必所有環節都居人之下。如果在求職過程能將自己的性格特徵、專業優勢、鮮明亮點表現出來,或許能讓用人單位耳目一新,「萬花叢中一點紅」,被錄用的可能性就會增加。卓越典範企管顧問公司陳志嶸在談到自己的招聘經驗時說:「相當多的應屆生,因不擅總結自己的優點、不能發現自己的長處,導致求職失敗者比比皆是。」相關資料統計表明,應屆生因為不能突出自己的優勢特長而失敗的比率超過77%,不能不說是個沉痛的教訓。
突破點三:樂意從基層干起
許多從事人力資源管理工作的HR表示,他們的企業並不是不需要招聘應屆大學畢業生,而希望通過輸入新鮮血液的方式改變後備人才不足的困境。可因招聘到的絕大多數應屆大學畢業生不願到基層接受必需的鍛煉,使得企業在百般無奈之下忍痛割愛,找些學歷、專業、悟性並不如應屆大學畢業生的初高中生做學徒或培訓幹部。我國高校教材編寫專家鄒金宏表示:「萬丈高樓平地起。如果應屆大學畢業生不願到基層接受鍛煉,會有哪家企業敢冒風險,將項目交給一個幾乎沒有駕馭風險能力的新手呢?」如果應屆生要想成為企業的頂樑柱,在社會這所大學中,還需到基層去吃苦。
突破點四:擁有感恩的心
企業使用應屆生是需付出一定代價的。可有些應屆大學畢業生進入企業後,往往因為一些瑣事鬧別扭,甚至與企業分道揚鑣,簽訂的勞動合約有如一張白紙。為人得講誠信,可現在有些大學生,似乎視誠信如糞土。沒有上班之前信誓旦旦,而上班之後往往心猿意馬。沒有一門心思用在企業里,倒更多關注哪裡會有更適合自己發展的地方,時刻准備跳槽。一港資企業的老闆陸先生說:「不要埋怨我們不聘用應屆生,而是對他們的心態抱懷疑態度。如果擁有一顆感恩的心,真正同企業生死與共。
在日趨激烈的社會環境中,難道我們有人才不要不成?!」
突破點五:自信創造奇跡
自信是創造奇跡的靈丹妙葯。可一些應屆生在求職時,往往因為自己缺乏實際操作經驗就無法在所應聘的工作崗位前表現十足的信心,導致企業不得不拒之門外。但有一點想告訴涉世不深的求職朋友,企業一旦確定招聘沒有社會經驗的應屆生,就已在其培訓計劃與資源配置方面做了相應的安排。
「萬事俱備,只欠雄心。用你的信心去征服即可!」HR經理何靜波如是說。