阿里巴巴 2016 java 實(shí)習(xí)崗位筆試題,想去的阿里巴巴的小伙伴們就仔細(xì)閱讀吧!
1 Hadoop是當(dāng)下大數(shù)據(jù)處理的事實(shí)標(biāo)準(zhǔn)之一,具有廣泛的應(yīng)用場(chǎng)景。作為Hadoop生態(tài)基礎(chǔ)的HDFS分布式文件系統(tǒng),它具有極高的容錯(cuò)性,適合部署在廉價(jià)的機(jī)器上,并能提供高吞吐量的數(shù)據(jù)訪問能力,專為大規(guī)模數(shù)據(jù)存取而設(shè)計(jì)。
請(qǐng)用Java程序來模擬HDFS的三個(gè)應(yīng)用場(chǎng)景:寫文件、讀文件、Node節(jié)點(diǎn)單點(diǎn)故障。場(chǎng)景1為必選,場(chǎng)景2和3可選但必需延續(xù)場(chǎng)景1的實(shí)現(xiàn)方案。程序請(qǐng)使用JDK原生API來實(shí)現(xiàn)。
問題1:請(qǐng)用文字闡述你的設(shè)計(jì)方案。
問題2:請(qǐng)用Java程序來分別實(shí)現(xiàn)你的方案。
2 優(yōu)惠券是目前較為受用戶歡迎的促銷手段,為了方便用戶使用優(yōu)惠券,網(wǎng)站在用戶提交購(gòu)買購(gòu)物車中的商品時(shí)自動(dòng)為用戶推薦并使用最合適的優(yōu)惠券。目前假設(shè)有兩類優(yōu)惠券:
1、“滿包郵”:即在單一店鋪中購(gòu)買商品總價(jià)滿足一定條件時(shí)會(huì)減免用戶的快遞費(fèi)用,例如:滿100包郵
2、“紅包”:即單一店鋪中購(gòu)買商品總價(jià)滿足一定條件時(shí)會(huì)產(chǎn)生一定程度的金額減免,例如:滿100減10、滿300減20等
請(qǐng)就如上設(shè)定,設(shè)計(jì)購(gòu)物車提交時(shí)優(yōu)惠券的推薦程序,規(guī)定每個(gè)店鋪只能使用一張優(yōu)惠券。
問題1:請(qǐng)闡述你的設(shè)計(jì)方案,形式不限
問題2:請(qǐng)用Java實(shí)現(xiàn)推薦程序,代碼范圍限定使用JDK原生API
3 問題1:嘗試用java編寫一個(gè)轉(zhuǎn)賬接口,傳入轉(zhuǎn)出賬號(hào),轉(zhuǎn)入賬號(hào),轉(zhuǎn)賬金額3個(gè)數(shù)據(jù),完成轉(zhuǎn)出和轉(zhuǎn)入賬號(hào)的資金處理,該服務(wù)要確保在資金處理時(shí)轉(zhuǎn)出賬戶的余額不會(huì)透支,金額計(jì)算準(zhǔn)確,能夠支撐每天10萬筆的個(gè)人用戶之間轉(zhuǎn)賬。
問題2:假設(shè)接口構(gòu)建完成后,淘寶的擔(dān)保交易也準(zhǔn)備使用該接口,每次用戶購(gòu)買淘寶的商品,都會(huì)調(diào)用轉(zhuǎn)賬接口,將資金由買家賬戶轉(zhuǎn)到一個(gè)擔(dān)保交易的中間賬戶,等到買家收到貨并滿意后進(jìn)行確認(rèn)收貨,再調(diào)用轉(zhuǎn)賬接口從這個(gè)擔(dān)保交易中間賬戶轉(zhuǎn)賬資金到賣家賬戶,通過這樣的手段保證買家的權(quán)益,做到只有買家對(duì)貨滿意才給賣家錢。此時(shí)面對(duì)淘寶擔(dān)保交易的海量交易處理,原來面向個(gè)人用戶間轉(zhuǎn)賬的轉(zhuǎn)賬接口可能會(huì)遇到怎樣的問題?你有怎樣的解決方案?并嘗試在不侵入原接口主處理流程的前提下修改代碼,優(yōu)雅的支持淘寶擔(dān)保交易記賬模式。
共三題,對(duì)于第一題我并沒有考慮分布式,而是通過簡(jiǎn)單的輸入輸出流實(shí)現(xiàn)的文件的讀寫,對(duì)于第二題寫了一個(gè)小的函數(shù)用于讀取用戶的消費(fèi)金額和設(shè)定的滿多少,優(yōu)惠多少的一個(gè)數(shù)值額度,返回一個(gè)字符串包括最后需要付款的額度和是否包郵。對(duì)于第三個(gè)由于目前對(duì)于每天支持10萬筆沒有一個(gè)具體的概念故不知從何入手
寫下感悟吧 阿里巴巴確實(shí)是一家好公司,中間還留有10分鐘的空閑時(shí)間讓我們休息,從這個(gè)小細(xì)節(jié)就看出這是一家非常人性化的公司。從這三道筆試題我學(xué)習(xí)到了什么呢?兩點(diǎn)
1 一定要根據(jù)具體的業(yè)務(wù)場(chǎng)景來實(shí)現(xiàn)你的代碼,我們是為了具體業(yè)務(wù)場(chǎng)景服務(wù)的
2 當(dāng)自己寫完某個(gè)程序的時(shí)候,考慮如果有多個(gè)程序同時(shí)要使用你這個(gè)接口怎么辦 ,也即是如何適用高并發(fā)和分布式