Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

最開始是打算面試外包公司刷經驗,等經驗差很少了,再去甲方嘗試,惋惜不太順利。前端

1、邁思(面試了30分鐘)

  1. 自我介紹
  2. 左鏈接(a 表左鏈接 b 表,a 表所有數據出來,b 表沒有的數據爲空)
  3. a 表左鏈接 b 表,b 表左鏈接 c 表,c 表左鏈接 a 表,這樣的數據是什麼數據(博主當時有點懵,回答全鏈接,所有數據會出來。。。)
  4. sql:一個班的學生有兩個字段,一個字段叫分數,另一個字段叫組名,有 4 個組,查出每一個組的第一名,sql 怎麼寫

select group_name,max(score) from table group by group_name order by group_namejava

5.數據庫引擎有哪些(myIsam,InnoDB 等等)mysql

  1. myIsam 和 Inno DB的區別(InnoDB 支持事務,外鍵,崩潰後恢復,InnoDB 行級鎖,myIsam 表級鎖)
  2. myIsam 的優勢(博主當時只記住了 InnoDB 的優勢,沒想到面試官問到了 myIsam 的優勢,速度快,磁盤空間佔用少)
  3. Spring 的兩個特性(IOC 和 aop,這兩個特性用到了哪些設計模式)
  4. java 的容器,集合(老生常談了,list, set, map 等等,另外說一下有哪些實現類)
  5. hashmap 的實現(數組+鏈表+紅黑樹)
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

  1. put 一個 key 和 value,怎麼肯定數組的下標,若是有兩個key put到同個位置,怎麼作?(根據key計算hash值,根據hash肯定下標等等)
  2. HashMap 是線程安全的嗎?有哪些實現?(不是,線程安全的能夠用hashtable,concurrentHashMap等等)
  3. concurrentHashMap 是怎麼實現線程安全的?具體的實現?兩個線程同時 put 兩個 key 是怎麼作的?

(1.7數組+鏈表,分段鎖,1.8數組+鏈表+紅黑樹,cas+synchronized)linux

  1. java 集合的排序(stream 中的 sort),內部是怎麼實現的?原理是什麼?瞭解過哪些排序?
  1. java 集合的分組(groupingby (對象::屬性))
  2. 函數式方法(接口),什麼條件下才能用?這種適用於全部的嗎?仍是說有必定的限制?
  3. 後臺的請求比較慢,通常是什麼緣由形成的?後臺請求直接卡了,怎麼排查,日誌沒報錯呢?(查一下慢sql,須要大量運算)
  4. 怎麼查鎖日誌,線程日誌?(這個不知道)

19.常見線程池,這些都是什麼樣的線程池?nginx

(newCachedThreadPool,程序員

newFixedThreadPool,面試

newScheduledThreadPool,redis

newSingleThreadExecutor,算法

如今有6種線程池了,沒記那麼多)spring

20.java 鎖,並簡單說一下鎖,類名,關鍵字,鎖的實現等等(ReentrantLock,迷迷糊糊說了一些,畢竟記得很少)

21.谷歌 guava 緩存用過嗎?(沒用過)

22.項目有哪些難的實現,你是怎麼作的?(根據本身的狀況去回答)

2、親鄰科技(甲方)

過去面試的時候,是星期五晚上8點多了

一面:hr(不到10分鐘)

簡單自我介紹,對技術,薪資有要求什麼的,跳槽緣由,評價本身,公司加班挺多的,問能不能接受

二面:技術(不到20分鐘,答的有點差)

  1. 對稱加密和非對稱加密的區別
  2. 跨域腳本攻擊(還有好幾個沒聽過)
  3. 數據庫隔離級別(讀未提交,讀已提交,可重複讀,串行化)
  4. 不可重複讀和幻讀是什麼?(a重複讀同個數據,b修改數據,a再次讀,就是不可重複讀;a修改某些數據,b從中插入一條數據,a會發現還有一條數據沒修改,那麼就是幻讀)
  5. 死鎖是什麼?產生緣由?怎麼解決(競爭同一資源,四個條件,破壞四個條件,這一塊沒答好)
  6. 服務器 cpu 百分百,怎麼排查(ps 查看進程,答的不是很好,畢竟這方面沒研究。雖然公司也遇到了 cpu 百分百的狀況,可是解決辦法是把須要大量運算的 mrp 功能給禁掉,後面加內存,加服務器。這一塊我可不敢實話實說)
  7. nginx 能夠用來作什麼(負載均衡,反向代理,面試官還繼續問還有呢,我不知道什麼了,我說能夠攔截 ip 等等)
  8. cas 是什麼?(樂觀鎖的一種實現,會形成aba問題,加版本號或者時間戳)
  9. redis 持久化機制,rdb 和 aof 的優缺點(全量數據備份,安全性低,備份間隔時間長;增量數據備份,數據安全,文件大)
  10. spring 異步註解(沒用過)
  1. 講一講類加載機制
  2. 內存泄露和內存溢出的區別
  3. 還問了其餘一些題目,不太記得了
  4. 講一講項目,你是怎麼作的

3、金蝶軟件(甲方,面試了40分鐘)

  1. 問的項目問題比較多,怎麼設計功能的,數據庫是怎麼設計的
  2. 左鏈接,右鏈接,內鏈接的區別
  3. mysql 執行計劃,有哪些看的
  4. springmvc 執行過程,從前端到後臺,再返回前端的過程
  5. 權限驗證,驗權怎麼作
  6. 數據庫的鎖(樂觀鎖,悲觀鎖,獨佔鎖,共享鎖)
  7. select, update, delete 對應哪些鎖
  8. java 集合體系(list,set,map)
  9. arraylist 刪除元素有哪些注意的地方
  10. arraylist 是線程安全的嗎(不是,線程安全:vector,copyonwritearraylist)
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

  1. 何時用 arraylist,linkedList(頻繁增刪用 linkedList)
  2. 深拷貝和淺拷貝
  3. 值傳遞和引用傳遞
  4. 多線程,線程池
  5. 資源同步是怎麼作的?
  6. synchronized 能夠修飾靜態類嗎
  7. lock 和 synchronized 的區別?用的話,你會怎麼選
  8. 平時怎麼學習的(看教程,看博客)
  9. 本身的規劃是什麼?(規劃學微服務,分佈式等等)
  10. 技術方面的優點是什麼
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

  1. 代碼怎麼優化,重構(單一職責,共用等等)
  2. 本身的網站是怎麼進行性能優化的?(加 cdn,加 redis)
  3. 你有什麼想問個人?大家那邊用到的技術是什麼?面試官:技術桟是封裝框架,沒有前端,用拖拉組件什麼的,微服務是 dubbo,數據庫是 oracle,側重點是業務,技術次要。

最後面試官說:有四輪面試,這邊面試完跟總監商量一下(剩下3輪都不是技術面)

4、平安銀行(外包,面試了40分鐘,由於有事,最後中斷了)

  1. spirngboot 啓動原理(內嵌 tomcat....)
  2. 啓動的註解(springbootapplication)
  3. springboot 核心配置
  4. 配置文件的方式(yml, properties)
  5. springmvc 的工做流程
  6. springmvc 的組件
  7. @RequestMapping 的做用(攔截 url)
  8. spring 經常使用的模塊,核心
  9. 說一說 ioc 和 aop
  10. spring 經常使用的注入方式
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

  1. spring 的 bean 有沒有了解
  2. spring 事務的實現
  3. spring 的隔離
  4. 數據庫的隔離級別(讀未提交,讀已提交,可重複讀,串行化)
  5. 隔離級別的影響(髒讀,不可重複讀,幻讀)
  6. 原子性,持久性(不可分割,保存到數據庫)
  7. char 和 varchar 的區別(字節大小,''和"")面試官繼續問還有沒有。。。
  8. left join 和 right join 的區別
  9. sql 你是怎麼調優的
  10. sql 執行計劃(explain)
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

  1. sql 的行鎖和表鎖,優點(鎖一行和鎖整個表)
  2. 樂觀鎖,悲觀鎖(版本號,時間戳)
  3. mysql 的引擎,區別(innodb 支持外鍵,行鎖,支持崩潰恢復,myisam 支持全文索引)
  4. select count(*) from table,數據是怎麼執行的,會形成全表掃描嗎(innodb,不支持全文索引,因此在innodb會形成全表掃描)
  5. float 和 double 內存佔多少字節
  6. 在自增表,有6條數據,刪了兩條數據,再增長一條數據,這條數據的id是多少(innodb是7,myisam是5,結果說反了)
  7. redis使用場景,和 memcache 的區別
  8. redis 的持久化(rdb 和 aof,全量,增量)
  9. 瞭解 redis 分佈式,有多少個節點,以及一些命令
  10. nginx應用場景(先後端分離,負載均衡)
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

  1. 負載均衡的策略(輪詢,權重等等)
  2. 先後端是怎麼交互的
  3. 正向代理和反向代理
  4. swagger 有了解嗎(接口文檔)
  5. == 和 equals 的區別
  6. 堆棧有了解嗎
  7. stringbuilder 和 stringbuffer 的區別(線程安全,效率)
  8. io 流(reader和writer,inputstream和outputstream)
  9. fileinputstream 和 bufferinputstream 的區別
  10. 集合(list,set,map)
  11. 線程安全的集合有哪些(vector,copyonwritearraylist,hashtable, concurrenthashmap)
  12. hashmap的實現過程(1.7頭插,1.8尾插)
  13. hashset 和 linkedhashset(底層hashmap,有序,底層 linkedhashmap,無序)
  14. 深拷貝,淺拷貝

「問的時間差很少40分鐘了,由於還要工做,就打斷面試了,結果晚上就來了第二輪面試」

Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

平安銀行第二輪面試(面試了26分鐘)

  1. mysql 查詢,有不少關聯的表,怎麼優化(表加字段,適當冗餘,少關聯表,不要用*,in,null,or, %等等)
  2. 索引失效的狀況(in,null,or, %等等)
  3. 經常使用的集合類(list,set,map及實現類)
  4. 線程安全的容器有哪些(vector,copyonwritearraylist,hashtable,concurrenthashmap)
  5. concurrenthashmap 是怎麼保證線程安全的(1.7用分段鎖,16個都上鎖,1.8用cas+syn)
  6. hashmap 的數據結構(1.7數組+鏈表,多線程會造成一個環,cpu會飆升100%,1.8數組+鏈表+紅黑樹)
  7. 什麼狀況下會轉成紅黑樹(key,hash,數組大於64,鏈表大於8,轉成紅黑樹)
  8. 重寫了 equals,還須要重寫 hashcode 方法嗎(由於根據 key,hash 計算出來有可能會衝突,因此要重寫hashcode)
  9. 鏈表是雙向鏈表嗎
  10. redis的數據結構(string,set,sort set,list,hash,bitmap等等)
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

  1. redis 分佈式鎖
  2. b+ 樹瞭解嗎(mysql索引)
  3. 緩存擊穿(緩存失效,在緩存找不到,在數據庫有數據)
  4. 解決辦法(設置緩存失效時間隨機,錯開時間,或者給個標記)(實際上是設置熱點數據永遠不過時或者加互斥鎖等等)
  5. threadlocal有了解嗎(發音沒聽清,聽成什麼logo了,聽了三遍沒聽出來,後面才反應他要說什麼)
  6. 項目中遇到的困難(mrp功能)
  7. 服務器 cpu 上升到90以上的時候,還能夠用多線程嗎?
  8. 最近有研究什麼新的技術嗎?(在學習微服務)
  9. 微服務相關組件,一些沒聽過(說了一下這些是幹嗎的)
  10. zookeeper有了解嗎(分佈式)
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

  1. 內存泄露有哪些狀況?
  2. 從專業角度+性格,評價本身
  3. 你但願的項目是什麼樣的?(技術桟,技術氛圍)
  4. linux經常使用命令(ls,cd,pwd,chmod,vi,whereis,find二進制文件)

面試官:到崗時間比較急,技術棧是 springboot+dubbo,微服務集羣,zookeeper+redis+mysql 等等

「面試評價:沒什麼大問題,但願快點入職」

結尾

jvm,微服務和分佈式等等的沒有記錄了,本身沒接觸過,聽到了也忘記,沒有及時寫上去。還有一些面試,沒有去記錄了,整理和記錄面試挺費時間的,上面的主要記錄技術面試。有些終面,面了 40 分鐘,問生活細節,有什麼愛好,以前寫的博客,還記得嗎?xx篇,你還記得寫了什麼內容嗎?你是哪裏人,未來是否是還待在深圳?暈死,一直問,問了 40 多分鐘,若是我不打斷,可能會一個小時以上。像這樣的流水帳面試,就沒有寫到上面去了。

最後比較幸運,拿下幾個 offer,面試題仍是得多刷題,避免答不出來,另外收到offer的機會纔會多。

最後:

關於以上面試題的答案以及知識點:

因爲篇幅問題,只放這麼多的面試資料,須要的可後臺私信我【電子書】,來領取!

JVM

阿里面試必問JVM!咱們全部的程序都運行在Java虛擬機上,只有對Java虛擬機底層原理進行深刻的學習,全面理解JVM的運行機制、運行時數據區、垃圾收集算法等,還有事務及Spring MVC整個流程、AQS等。

知識點:

1.基本概念和運行過程

2.1線程

2.2 JVM內存區域

2.3 JVM 運行時內存

2.4 垃圾回收與算法

2.5 JAVA 四種引用類型

2.6 分代收集算法VS 分區收集算法

2.7 GC 垃圾收集器

2.8 JAVA IO/NIO

2.9.JVM 類加載機制

JVM面試題

  1. JVM 內存分哪幾個區,每一個區的做用是什麼?
  2. 如何判斷一個對象是否存活?(或者 GC 對象的斷定方法)
  3. 簡述 Java 垃圾回收機制?
  4. Java 中垃圾收集的方法有哪些?
  5. Java 內存模型
  6. Java 類加載過程?
  7. 簡述 Java 類加載機制?
  8. 類加載器雙親委派模型機制?
  9. 什麼是類加載器,類加載器有哪些?
  10. 簡述 Java 內存分配與回收策略以及 Minor GC 和Major GC?
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 

MySQL

MySQL的原理、底層、優化已經成爲一個合格的程序員必備技能。開發人員對MySQL的掌握,越深刻,你能作的事情就越多。

知識點:

MySQL存儲引擎

共享鎖及排它鎖

MySQL的分區

MySQL事務及隔離性級別

執行計劃

Btree與B+tree索引

Sql慢查詢

Sql優化

MySQL面試題

  1. 請解釋關係型數據庫概念及主要特色?
  2. 請說出關係型數據庫的典型產品、特色及應用場景?
  3. 請詳細描述 SQL 語句分類及對應表明性關鍵字。
  4. 什麼是 MySQL 多實例,如何配置 MySQL 多實例?
  5. 如何增強 MySQL 安全,請給出可行的具體措施?
  6. 誤操做執行了一個 drop 庫 SQL 語句,如何完整恢復?
  7. 詳述 MySQL 主從複製原理及配置主從的完整步驟。
  8. MySQL 如何實現雙向互爲主從複製,並說明應用場景?
  9. MySQL 如何實現級聯同步,並說明應用場景?
  10. MySQL 主從複製故障如何解決?
Java程序員想要靠外包刷題,結果卻大跌眼鏡,心態都崩了

 我把學習資料都整理在網盤了,獲取方式:點擊連接《Java面試BAT通關手冊》,覆蓋了Java核心技術、JVM、Java併發、SSM、微服務、數據庫、數據結構等等。

相關文章
相關標籤/搜索