前言
目前公司閑,沒有新產品開發,都是一些維護工作,於是我提出了離職,開始了面試之路,抱着一個面試就是學習的心態去面試的,當然了,也是希望能拿到大公司的offer,大概面試了一個月左右的時間!!!
一共面試了8家,拿了3個offer,自己覺得不太滿意,因為沒有准備太充分,每次准備又不知道准備什么,想着先面試面了之后就知道如何准備了,其實這是很傷的,可能會錯失理想的公司,拿到的offer基本公司都不大,去了一家規模最大,薪資最高並且離我住的地方最近的一家公司,並且還是做"金融"的,算的上是"天時地利人和"吧,哈哈~~
面試前的注意點
- 簡歷: 簡歷必須多動腦筋,盡量知識面多一點.
- 想清楚離職的原因,下一家想找什么樣子的公司. 根據自己的真實情況,可以海投,收到面試邀請一定要查一查在過去.
- 投簡歷: 我投簡歷的時候都是海投,因為自己學歷不太好,很容易被拒絕,所以投的多才能有更多的面試機會,某一些要求比較高的也可以投,因為,投簡歷不用花錢~~
- 准備工作: 其實我沒怎么准備~~之前看到一些jdk的源碼,說實話對這次面試還有所幫助的, 然后每面試完一家之后記錄下來,晚上找找答案, 會遇到重復的問題的,如果沒有遇到,當學習也是很不錯的
- 我的理解: 問問題就是這樣,由淺入深,從各種方面去問,比如: 問你集合的理解? list與set的區別? ArrayList與linkedList有啥區別? 能解釋一下ArrayList的add方法嗎? ,只是舉例表達出問題的由淺入深,所以面廣,知識點深,那么何愁offer沒有,哈哈.
面試知識點
-
- 有一個字符串里面有中文和英文,如何切割時保證中文不被切割?(代碼實現)
- jdbc的加載步驟說一下(我也是蒙蔽了~~)
- statement與praredStatement的區別
- 創建線程的3種方式
- 線程池的原理
- 怎么手寫一個線程池
- spring boot的定時器時如何實現的
- spring boot的兩大特性
- 說一說訂單管理需要怎么樣去設計表
- spring mvc的工作流程
- hibernate與mybatis 的一些區別
- 聊一聊arrayList種的add方法
- md5加密的實現
- md5如何完成可逆的
- 介紹一下異常體系
- 說4種常見的運行時異常以及為什么會發生
- git與svn的區別
- git中分支提交到另一個分支出現沖突怎么解決
- sql題目也遇到了一些(這里就不描述了....)
- 說一說你工作中遇到的最大的問題?如何解決的
- 換工作的原因(幾乎每一家都有問到)
- 說一下你的優勢
上面就是我面試的一些(印象比較深的)問題
找了一下sql面試題圖:
下面是我附上的答案,經過我測試的~~如果有錯誤的請留言~~
-- 1查詢下面表中 id重復的(通過count計數的方式) CREATE TABLE t_demo1( id INT ); INSERT INTO t_demo1 VALUES(1); INSERT INTO t_demo1 VALUES(2); INSERT INTO t_demo1 VALUES(3); INSERT INTO t_demo1 VALUES(4); INSERT INTO t_demo1 VALUES(4); -- 答案 SELECT * FROM t_demo1 WHERE id IN( SELECT id FROM t_demo1 GROUP BY id HAVING COUNT(id) > 1 ) -- 2查詢出表t_demo1中有但表t_demo2中沒有的記錄 CREATE TABLE t_demo2( id INT ); INSERT INTO t_demo2 VALUES(3); INSERT INTO t_demo2 VALUES(4); SELECT * FROM t_demo1 SELECT * FROM t_demo2 -- 答案 SELECT * FROM t_demo1 WHERE id NOT IN( SELECT DISTINCT t2.id FROM t_demo1 t1 RIGHT JOIN t_demo2 t2 ON t1.id != t2.id ) -- 3 批量更新訂單表中的金額 -- 訂單表 CREATE TABLE A( aid VARCHAR(10) COMMENT '主鍵id', c_time DATE COMMENT '時間', total DOUBLE COMMENT '總金額' ); -- 訂單明細表 CREATE TABLE B( aid VARCHAR(10) COMMENT '主鍵id', amount DOUBLE COMMENT '貨物金額', comments VARCHAR(20) COMMENT '購買說明' ); INSERT INTO A VALUES('D01', '2018-01-01', NULL); INSERT INTO A VALUES('D02', '2018-01-02', NULL); INSERT INTO B VALUES('D01', 100, '手機充值'); INSERT INTO B VALUES('D01', 4, 'Q幣充值'); INSERT INTO B VALUES('D02', 90, '買迪卡儂'); -- 答案 UPDATE A SET A.total = (SELECT SUM(B.`amount`) FROM B WHERE A.aid = B.aid) SELECT * FROM A SELECT * FROM B UPDATE A SET total = NULL WHERE a.aid = 'D01' -- 4用一句sql 統計01月份 12月份及全年的訂單總金額 CREATE TABLE C( id INT COMMENT '主鍵id' , c_time DATE COMMENT '時間', amount DOUBLE COMMENT '訂單金額', comments VARCHAR(40) COMMENT '備注' ); INSERT INTO C VALUES(1, '2018-01-01 01:30:00', 300, '衣服'); INSERT INTO C VALUES(2, '2018-01-01 01:30:00', 300, '衣服'); INSERT INTO C VALUES(3, '2018-12-01 01:30:00', 300, '衣服'); INSERT INTO C VALUES(4, '2018-12-01 01:30:00', 300, '衣服'); INSERT INTO C VALUES(5, '2017-12-01 01:30:00', 300, '衣服'); SELECT DATE_FORMAT(c_time,'%Y-%m') FROM c -- 答案 SELECT DATE_FORMAT(c_time,'%Y%m') AS ct,SUM(amount) FROM c WHERE YEAR(c_time) = '2018' GROUP BY ct,amount UNION SELECT DATE_FORMAT(c_time,'%Y') AS ct,SUM(amount) FROM c WHERE YEAR(c_time)
其他
有一些面試官也會問我會不會前端,接觸過的前端框架,畢竟是做java的並且我在小公司呆過,至少也會一些前端的,但是我確實只會用jquery,哈哈,很尷尬了,對了,有一個面試題: 一個空頁面,如果讓里面唯一的div垂直並居中,最近買了一本spring源碼深度分析,感覺很難,花了幾天的時間才把源碼導入到eclipse,遇到了很多坑啊...為什么買呢?因為我覺得spring是核心啊,它的設計是真的叼,,所以買了,不知道能不能啃下來,加油吧~~