java面試有感

    本人工作兩年左右,從事銀行軟件開發方面的工作,最近一個星期在找工作。公司一般用SSM(spring+springMVC+Mybatic),偶爾用Hibernate框架進行開發,也有比較老的技術(JSP+EJB)公司沒有業務培訓加上自己也不太喜歡業務,平時有時間都會自己學新的框架(SpringBoot、SpringCloud),學習公司的框架比較少(因爲根據現有框架進行改造,整體的設計也瞭解的比較少)。所以自己本次找工作也基本不考慮再做銀行軟件了。說說自己遇到的問題。
    第一份工作找的有點隨便,也沒有經過太多的面試,加上自己表達能力也有所欠缺。這次第一次面試基本被問的有點自閉,都是java基礎加原理上的問題。問題如下:

面試內容:
1.說說collection?
2.HashMap的實現原理?hashMap的put方法的原理?
3.如果將一個引用類型的數據放入hashMap中,要使其能正常工作,要做什麼操作?
3.成員變量和實例變量哪個是必須初始化的?爲什麼?
4.靜態同步方法與普通同步方法的區別?
5.說說java異常?兩大類異常的本質區別是什麼?出異常後一般怎麼做?
6.spring的實現原理?
7.spring事務的傳播途徑和隔離級別?Mysql默認的隔離級別是什麼?
8.說說數據庫的三大範式?
10.讓你來設計數據庫。
筆試內容(只說大題):
1.請說明inner join(內連接) 與left join(左連接)的區別?
2.根據下面的數據庫結構,寫出sql語句,顯示每門課程成績分數最高的學生信息:姓名、課程、成績。
	t_student(sid,sno,sname) -->學生表 sid爲id,sno爲學號,sname爲姓名

	t_course(cid,cno,cname)--> 課程表 cid爲id,cno爲課程號,cname爲課程名

	t_grade(gid,sno,cno,score) -->成績表 gid爲id,sno爲學號,cno爲課程號,score爲成績
3.1-19這20個整數,打印出所有和爲20的組合,注:1+19和19+1是相同的,不要重複打印。

    上面的問題中涉及的知識估計大家都用到過,但是大部分人都不記得原理。加上當時有點抽風,基本上只知道要做什麼,不明白爲什麼?當時就有點懵,所以就有點自閉了。好在面試官也沒怎麼刁難,公司也給了offer(當然跟期望有偏差,畢竟沒答好),第一家就過了。
    第二家公司是一個比較年長的面試官,很和藹。做了份筆試題,比較基礎,可能是衝着我的銀行開發經驗來的,當時也將自己的實際情況跟對方說了。同時也跟這位前輩聊了一下技術方面的問題,他可能比較期待我在數據結構方面以及數據表數據表設計方面能有點研究。但是我在這兩方面的研究很少。。。。,期間叫我寫幾張數據表設計(或er圖),由於銀行系統的數據表基本不變(自己也比較少研究)。就只能自己設計幾個數據表(當時忘了平時自己博客上設計的數據表…),設計了幾張比較簡單的數據表。該面試官說我的博客寫的挺好的,但是跟他想象的有點偏差。確實平時在這方面練的比較少,加上一時沒想起來(但博客肯定是自己寫的…)。總的來說,第二次比第一次好,也聊的比較多。最後也給了offer(勉強可以接受)。

筆試題:
1.java基本數據類型,switch支持哪些類型的變量?
2.String a = "abc";String b="abc";這段代碼創建了幾個對象?
3.畫出你知道的框架原理圖?並描述。
4.寫出一種排序算法?
5.js選擇器?js選擇器的優先級?
6.說出你用過的js框架,並說出它們的優缺點?
7. concurrent包的作用?說說應用場景?
8. 數據庫的一列中存放比較大的數據(40k),你怎麼快速的找到該列中某段指定的內容?

面試題:
1.問問activiti相關的問題?
2.Linux學的怎樣?
3.數據庫三大範式是什麼?根據數據庫三大範式設計表(我都忘了我上篇博客有設計過權限系統表....)
其他是關於自己項目的一些問題(不太記得了)

    兩次面試下來,自己都有點不在狀態(主要平時總結較少,一時表達不出來),兩次面試都比較偏重於基礎以及數據庫設計這塊,自己平時也因爲學習框架而忽略了這兩方面的學習,確實有點吃虧,同時建議大家平時多總結,對原理性的東西多看看,同時學習一種技術要學深入一些(感覺自己學的有點雜…)。最後我就不給出上面面試題或筆試題的答案了,大家自己百度應該印象較深。希望能對大家有點幫助。

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