最開始是打算面試外包公司刷經驗,等經驗差不多了,再去甲方嘗試,可惜不太順利,
一、邁思(面試了30分鐘)
- 自我介紹
- 左連接(a 表左連接 b 表,a 表全部資料出來,b 表沒有的資料為空)
- a 表左連接 b 表,b 表左連接 c 表,c 表左連接 a 表,這樣的資料是什么資料(博主當時有點懵,回答全連接,全部資料會出來,,,)
- sql:一個班的學生有兩個欄位,一個欄位叫分數,另外一個欄位叫組名,有 4 個組,查出每個組的第一名,sql 怎么寫
select group_name,max(score) from table group by group_name order by group_name
5.資料庫引擎有哪些(myIsam,InnoDB 等等)
- myIsam 和 Inno DB的區別(InnoDB 支持事務,外鍵,崩潰后恢復,InnoDB 行級鎖,myIsam 表級鎖)
- myIsam 的優點(博主當時只記住了 InnoDB 的優點,沒想到面試官問到了 myIsam 的優點,速度快,磁盤空間占用少)
- Spring 的兩個特性(IOC 和 aop,這兩個特性用到了哪些設計模式)
- java 的容器,集合(老生常談了,list, set, map 等等,另外說一下有哪些實作類)
- hashmap 的實作(陣列+鏈表+紅黑樹)
- put 一個 key 和 value,怎么確定陣列的下標,如果有兩個key put到同個位置,怎么做?(根據key計算hash值,根據hash確定下標等等)
- HashMap 是執行緒安全的嗎?有哪些實作?(不是,執行緒安全的可以用hashtable,concurrentHashMap等等)
- concurrentHashMap 是怎么實作執行緒安全的?具體的實作?兩個執行緒同時 put 兩個 key 是怎么做的?
(1.7陣列+鏈表,分段鎖,1.8陣列+鏈表+紅黑樹,cas+synchronized)
- java 集合的排序(stream 中的 sort),內部是怎么實作的?原理是什么?了解過哪些排序?
- java 集合的分組(groupingby (物件::屬性))
- 函式式方法(介面),什么條件下才能用?這種適用于所有的嗎?還是說有一定的限制?
- 后臺的請求比較慢,一般是什么原因造成的?后臺請求直接卡了,怎么排查,日志沒報錯呢?(查一下慢sql,需要大量運算)
- 怎么查鎖日志,執行緒日志?(這個不知道)
19.常見執行緒池,這些都是什么樣的執行緒池?
(newCachedThreadPool,
newFixedThreadPool,
newScheduledThreadPool,
newSingleThreadExecutor,
現在有6種執行緒池了,沒記那么多)
20.java 鎖,并簡單說一下鎖,類名,關鍵字,鎖的實作等等(ReentrantLock,迷迷糊糊說了一些,畢竟記得不多)
21.谷歌 guava 快取用過嗎?(沒用過)
22.專案有哪些難的實作,你是怎么做的?(根據自己的情況去回答)
二、親鄰科技(甲方)
過去面試的時候,是星期五晚上8點多了
一面:hr(不到10分鐘)
簡單自我介紹,對技術,薪資有要求什么的,跳槽原因,評價自己,公司加班挺多的,問能不能接受
二面:技術(不到20分鐘,答的有點差)
- 對稱加密和非對稱加密的區別
- 跨域腳本攻擊(還有好幾個沒聽過)
- 資料庫隔離級別(讀未提交,讀已提交,可重復讀,串行化)
- 不可重復讀和幻讀是什么?(a重復讀同個資料,b修改資料,a再次讀,就是不可重復讀;a修改某些資料,b從中插入一條資料,a會發現還有一條資料沒修改,那么就是幻讀)
- 死鎖是什么?產生原因?怎么解決(競爭同一資源,四個條件,破壞四個條件,這一塊沒答好)
- 服務器 cpu 百分百,怎么排查(ps 查看行程,答的不是很好,畢竟這方面沒研究,雖然公司也遇到了 cpu 百分百的情況,但是解決辦法是把需要大量運算的 mrp 功能給禁掉,后面加記憶體,加服務器,這一塊我可不敢實話實說)
- nginx 可以用來做什么(負載均衡,反向代理,面試官還繼續問還有呢,我不知道什么了,我說可以攔截 ip 等等)
- cas 是什么?(樂觀鎖的一種實作,會造成aba問題,加版本號或者時間戳)
- redis 持久化機制,rdb 和 aof 的優缺點(全量資料備份,安全性低,備份間隔時間長;增量資料備份,資料安全,檔案大)
- spring 異步注解(沒用過)
- 講一講類加載機制
- 記憶體泄露和記憶體溢位的區別
- 還問了其他一些題目,不太記得了
- 講一講專案,你是怎么做的
三、金蝶軟體(甲方,面試了40分鐘)
- 問的專案問題比較多,怎么設計功能的,資料庫是怎么設計的
- 左連接,右連接,內連接的區別
- mysql 執行計劃,有哪些看的
- springmvc 執行程序,從前端到后臺,再回傳前端的程序
- 權限驗證,驗權怎么做
- 資料庫的鎖(樂觀鎖,悲觀鎖,獨占鎖,共享鎖)
- select, update, delete 對應哪些鎖
- java 集合體系(list,set,map)
- arraylist 洗掉元素有哪些注意的地方
- arraylist 是執行緒安全的嗎(不是,執行緒安全:vector,copyonwritearraylist)
- 什么時候用 arraylist,linkedList(頻繁增刪用 linkedList)
- 深拷貝和淺拷貝
- 值傳遞和參考傳遞
- 多執行緒,執行緒池
- 資源同步是怎么做的?
- synchronized 可以修飾靜態類嗎
- lock 和 synchronized 的區別?用的話,你會怎么選
- 平時怎么學習的(看教程,看博客)
- 自己的規劃是什么?(規劃學微服務,分布式等等)
- 技術方面的優勢是什么
- 代碼怎么優化,重構(單一職責,共用等等)
- 自己的網站是怎么進行性能優化的?(加 cdn,加 redis)
- 你有什么想問我的?你們那邊用到的技術是什么?面試官:技術桟是封裝框架,沒有前端,用拖拉組件什么的,微服務是 dubbo,資料庫是 oracle,側重點是業務,技術次要,
最后面試官說:有四輪面試,這邊面試完跟總監商量一下(剩下3輪都不是技術面)
四、平安銀行(外包,面試了40分鐘,因為有事,最后中斷了)
- spirngboot 啟動原理(內嵌 tomcat....)
- 啟動的注解(springbootapplication)
- springboot 核心配置
- 組態檔的方式(yml, properties)
- springmvc 的作業流程
- springmvc 的組件
- @RequestMapping 的作用(攔截 url)
- spring 常用的模塊,核心
- 說一說 ioc 和 aop
- spring 常用的注入方式
- spring 的 bean 有沒有了解
- spring 事務的實作
- spring 的隔離
- 資料庫的隔離級別(讀未提交,讀已提交,可重復讀,串行化)
- 隔離級別的影響(臟讀,不可重復讀,幻讀)
- 原子性,持久性(不可分割,保存到資料庫)
- char 和 varchar 的區別(位元組大小,''和"")面試官繼續問還有沒有,,,
- left join 和 right join 的區別
- sql 你是怎么調優的
- sql 執行計劃(explain)
- sql 的行鎖和表鎖,優勢(鎖一行和鎖整個表)
- 樂觀鎖,悲觀鎖(版本號,時間戳)
- mysql 的引擎,區別(innodb 支持外鍵,行鎖,支持崩潰恢復,myisam 支持全文索引)
- select count(*) from table,資料是怎么執行的,會造成全表掃描嗎(innodb,不支持全文索引,所以在innodb會造成全表掃描)
- float 和 double 記憶體占多少位元組
- 在自增表,有6條資料,刪了兩條資料,再增加一條資料,這條資料的id是多少(innodb是7,myisam是5,結果說反了)
- redis使用場景,和 memcache 的區別
- redis 的持久化(rdb 和 aof,全量,增量)
- 了解 redis 分布式,有多少個節點,以及一些命令
- nginx應用場景(前后端分離,負載均衡)
- 負載均衡的策略(輪詢,權重等等)
- 前后端是怎么互動的
- 正向代理和反向代理
- swagger 有了解嗎(介面檔案)
- == 和 equals 的區別
- 堆疊有了解嗎
- stringbuilder 和 stringbuffer 的區別(執行緒安全,效率)
- io 流(reader和writer,inputstream和outputstream)
- fileinputstream 和 bufferinputstream 的區別
- 集合(list,set,map)
- 執行緒安全的集合有哪些(vector,copyonwritearraylist,hashtable, concurrenthashmap)
- hashmap的實作程序(1.7頭插,1.8尾插)
- hashset 和 linkedhashset(底層hashmap,有序,底層 linkedhashmap,無序)
- 深拷貝,淺拷貝
「問的時間差不多40分鐘了,因為還要作業,就打斷面試了,結果晚上就來了第二輪面試」
平安銀行第二輪面試(面試了26分鐘)
- mysql 查詢,有很多關聯的表,怎么優化(表加欄位,適當冗余,少關聯表,不要用*,in,null,or, %等等)
- 索引失效的情況(in,null,or, %等等)
- 常用的集合類(list,set,map及實作類)
- 執行緒安全的容器有哪些(vector,copyonwritearraylist,hashtable,concurrenthashmap)
- concurrenthashmap 是怎么保證執行緒安全的(1.7用分段鎖,16個都上鎖,1.8用cas+syn)
- hashmap 的資料結構(1.7陣列+鏈表,多執行緒會形成一個環,cpu會飆升100%,1.8陣列+鏈表+紅黑樹)
- 什么情況下會轉成紅黑樹(key,hash,陣列大于64,鏈表大于8,轉成紅黑樹)
- 重寫了 equals,還需要重寫 hashcode 方法嗎(因為根據 key,hash 計算出來有可能會沖突,所以要重寫hashcode)
- 鏈表是雙向鏈表嗎
- redis的資料結構(string,set,sort set,list,hash,bitmap等等)
- redis 分布式鎖
- b+ 樹了解嗎(mysql索引)
- 快取擊穿(快取失效,在快取找不到,在資料庫有資料)
- 解決辦法(設定快取失效時間隨機,錯開時間,或者給個標記)(其實是設定熱點資料永遠不過期或者加互斥鎖等等)
- threadlocal有了解嗎(發音沒聽清,聽成什么logo了,聽了三遍沒聽出來,后面才反應他要說什么)
- 專案中遇到的困難(mrp功能)
- 服務器 cpu 上升到90以上的時候,還可以用多執行緒嗎?
- 最近有研究什么新的技術嗎?(在學習微服務)
- 微服務相關組件,一些沒聽過(說了一下這些是干嘛的)
- zookeeper有了解嗎(分布式)
- 記憶體泄露有哪些情況?
- 從專業角度+性格,評價自己
- 你希望的專案是什么樣的?(技術桟,技術氛圍)
- 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面試題
- JVM 記憶體分哪幾個區,每個區的作用是什么?
- 如何判斷一個物件是否存活?(或者 GC 物件的判定方法)
- 簡述 Java 垃圾回識訓制?
- Java 中垃圾收集的方法有哪些?
- Java 記憶體模型
- Java 類加載程序?
- 簡述 Java 類加載機制?
- 類加載器雙親委派模型機制?
- 什么是類加載器,類加載器有哪些?
- 簡述 Java 記憶體分配與回收策略以及 Minor GC 和Major GC?
MySQL
MySQL的原理、底層、優化已經成為一個合格的程式員必備技能,開發人員對MySQL的掌握,越深入,你能做的事情就越多,
知識點:
MySQL存盤引擎
共享鎖及排它鎖
MySQL的磁區
MySQL事務及隔離性級別
執行計劃
Btree與B+tree索引
Sql慢查詢
Sql優化
MySQL面試題
- 請解釋關系型資料庫概念及主要特點?
- 請說出關系型資料庫的典型產品、特點及應用場景?
- 請詳細描述 SQL 陳述句分類及對應代表性關鍵字,
- 什么是 MySQL 多實體,如何配置 MySQL 多實體?
- 如何加強 MySQL 安全,請給出可行的具體措施?
- 誤操作執行了一個 drop 庫 SQL 陳述句,如何完整恢復?
- 詳述 MySQL 主從復制原理及配置主從的完整步驟,
- MySQL 如何實作雙向互為主從復制,并說明應用場景?
- MySQL 如何實作級聯同步,并說明應用場景?
- MySQL 主從復制故障如何解決?
我把學習資料都整理在網盤了,獲取方式:點擊鏈接《Java面試BAT通關手冊》,覆寫了Java核心技術、JVM、Java并發、SSM、微服務、資料庫、資料結構等等,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14449.html
標籤:其他
下一篇:CSS中使用文本陰影與元素陰影
