2018企業面試總匯(答案請自行搜羅) 新增19年阿里面題(反向拓展技術棧)

Java


?

1.多個線程同時讀寫,讀線程的數量遠遠大于寫線程,你認為應該如何解決并發的問題?你會選擇加什么樣的鎖?


2.JAVA的AQS是否了了解,它是干嘛的?

3.除了synchronized關鍵字之外,你是怎么來保障線程安全的?

4.什么時候需要加volatile關鍵字?它能保證線程安全嗎?

5.線程池內的線程如果全部忙,提交一個新的任務,會發生什什么?隊列全部塞滿了之后,還是忙,再提交會發生什么?

6.Tomcat本身的參數你?一般會怎么調整?

7.synchronized關鍵字鎖住的是什么東西?在字節碼中是怎么表示的?在內存中的對象上表現為什么?

?

8.wait/notify/notifyAll方法需不需要被包含在synchronized塊中?這是為什么?

9.ExecutorService你一般是怎么用的?是每個service放一個還是一個項目里面放一個?有什么好處?

?

Spring

?


?

1.你有沒有?用過Spring的AOP? 是用來干嘛的? 大概會怎么使用?

?

2.如果?一個接口有2個不同的實現, 那么怎么來Autowire一個指定的實現?

3.Spring的聲明式事務 @Transaction注解一般寫在什么位置? 拋出了異常會自動回滾嗎?有沒有辦法控制不觸發回滾?

4.如果想在某個Bean生成并裝配完畢后執行自己的邏輯,可以什么方式實現?

5.SpringBoot沒有放到web容器里為什么能跑HTTP服務?

6.SpringBoot中如果你想使用自定義的配置文件而不僅僅是application.properties,應該怎么弄?

7.SpringMVC中RequestMapping可以指定GET, POST方法么?怎么指定?
SpringMVC如果希望把輸出的Object(例如

?

8.XXResult或者XXResponse)這種包裝為JSON輸出, 應該怎么處理?

9.怎樣攔截SpringMVC的異常,然后做自定義的處理,比如打日志或者包裝成JSON

?

Spring 這里有一個 69 道答案版的《史上最全 69 道 Spring 面試題和答案》。

?

MySQL


?

1.如果有很多數據插入MYSQL 你會選擇什么方式?

2.如果查詢很慢,你會想到的第一個方式是什么?索引是干嘛的?

3.如果建了一個單列索引,查詢的時候查出2列,會用到這個單列索引嗎?

4.如果建了一個包含多個列的索引,查詢的時候只用了第一列,能不能用上這個索引?查三列呢?

5.接上題,如果where條件后面帶有一個 i + 5 < 100 會使用到這個索引嗎?

6.怎么看是否用到了了某個索引?

7.like %aaa%會使用索引嗎? like aaa%呢?
drop、truncate、delete的區別?

8.平時你們是怎么監控數據庫的? 慢SQL是怎么排查的?

9.你們數據庫是否支持emoji表情,如果不支持,如何操作?

10.你們的數據庫單表數據量是多少?一般多大的時候開始出現查詢性能急劇下降?

11查詢死掉了,想要找出執行的查詢進程用什么命令?找出來之后一般你會干嘛?

12.讀寫分離是怎么做的?你認為中間件會怎么來操作?這樣操作跟事務有什么關系?

13.分庫分表有沒有做過?線上的遷移過程是怎么樣的?如何確定數據是正確的?

?

JVM


?

1.你知道哪些或者你們線上使用什么GC策略? 它有什么優勢,適用于什么場景?

?

2.JAVA類加載?包括幾種?它們之間的父子關系是怎么樣的?雙親委派機制是什么意思?有什么好處?

3.如何自定義一個類加載??你使用過哪些或者你在什么場景下需要一個自定義的類加載?嗎?
堆內存設置的參數是什么?

4.Perm Space中保存什么數據? 會引起OutOfMemory嗎?

5.做gc時,一個對象在內存各個Space中被移動的順序是什么?

6.你有沒有遇到過OutOfMemory問題?你是怎么來處理這個問題的?處理過程中有哪些收獲?

7.1.8之后Perm Space有哪些變動?MetaSpace大小默認是無限的么? 還是你們會通過什么方式來指定大小?

8.Jstack是干什么的? Jstat呢? 如果線上程序周期性地出現卡頓,你懷疑可能是gc導致的,你會怎么來排查這個問題?線程日志一般你會看其中的什么部分?


9.StackOverFlow異常有沒有遇到過?一般你猜測會在什么情況下被觸發?如何指定一個線程的堆棧大小?一般你們寫多少?

?

Linux命令


?

1.日志特別大只想看最后100行怎么弄弄? 如果想一直看日志的持續輸出,用什么命令?

?

2.如果日志一邊輸出,一邊想實時看到有沒有某個關鍵字應該怎么弄?

3.grep如果忽略大小寫應該怎么弄? 正則表達式呢?

4.vim往下一行是什么鍵?往下30行呢? 跳到文件末尾一行是什么? 跳回來是什么? 向后搜索是什么?

5.如果有個文本文件,按空格作為列的分隔符,如果想統計第三列里面的每個單詞的出現次數應該怎么弄?

6.如果把上面的出現次數排個序應該怎么弄? 想按照數字本身的順序而不是字符串的順序排列怎么弄?

7.Linux環境變量是以什么作為分隔符的?環境變量通過什么命令設置?

8.給某個文件權設置限比如設置為64 是用什么命令?這個6是什么意思?

9.Linux下面如果想看某個進程的資源占用情況是怎么看的?系統load大概指的什么意思?你們線上系統load一般多少?如果一個4核機?,你認為多少load是比較正常的?top命令里面按一下1會發生什么?

10.top命令里面,有時候所有進程的CPU使用率加起來超過100%是怎么回事?

11.還有哪些查看系統性能或者供你發現問題的命令?你一般是看哪個參數?

12.想看某個進程打開了哪些網絡連接是什么命令?里面連接的狀態你比較關心哪幾種? -- 偏題
有沒有做過Linux系統參數方面的優化,大概優化過什么?

13.系統參數里面有個叫做backlog的可以用來干什么?

14.查看網絡連接發現好多TIMEWAIT 可能是什么原因?對你的應用會有什么影響?你會選擇什么樣的方式來減少這些TIMEWAIT

15.可否介紹一下TCP三次握手的過程,如果現在有個網絡程序,你用第三方的library來發送數據,你懷疑這個library發送的數據有問題,那么怎么來驗證?tcpdump導出的文件你一般是怎么分析的?

16.KeepAlive是用來干什么的?這樣的好處是什么?

?

Redis -- 開發


?

1.緩存穿透可以介紹一下么?你認為應該如何解決這個問題?

?

2.你是怎么觸發緩存更新的?(比如設置超時時間(被動方式), 比如更新的時候主動update)?如果是被動的方式如何控制多個入口同時觸發某個緩存更新?

3.你們用Redis來做什么?為什么不用其他的KV存儲例例如Memcached,Cassandra等?

4.你們用什么Redis客戶端? Redis高性能的原因大概可以講一些?

5.你熟悉哪些Redis的數據結構? zset是干什么的? 和set有什么區別?

6.Redis的hash, 存儲和獲取的具體命令叫什么名字?

7.LPOP和BLPOP的區別?

8.Redis的有一些包含SCAN關鍵字的命令是干嘛的? SCAN返回的數據量是固定的嗎?

9.Redis中的Lua有沒有使用過? 可以用來做什么? 為什么可以這么用?

10.Redis的Pipeline是用來干什么的? -- 運維
Redis持久化大概有幾種方式? aof和rdb的區別是什么? AOF有什么優缺點嗎?

11.Redis Replication的大致流程是什么? bgsave這個命令的執行過程? -- 偏題

12.如果有很多 KV數據要存儲到Redis, 但是內存不足, 通過什么方式可以縮減內存? 為什么這樣可以縮小內存?

13.Redis中List, HashTable都用到了ZipList, 為什么會選擇它?

?

Redis 這里有一個 50 道答案版的《史上最全 50 道 Redis 面試題》。

?

監控、穩定性


?

1.業務日志是通過什么方式來收集的?

?

2.線上機?如何監控?采用什么開源產品或者自研的產品?它是分鐘級的還是秒級的?

3.如果讓你來想辦法收集一個JAVA后端應用的性能數據,你會在意哪些方面? 你會選擇什么樣的工具、思路來收集?

?qi

4.一般你調用第三方的時候會不會監控調用情況?

?

阿里面題

1.hashcode相等兩個類一定相等嗎?equals呢?相反呢?

2.介紹一下集合框架?

3.hashmap hastable 底層實現什么區別?hashtable和concurrenthashtable呢?

4.hashmap和treemap什么區別?低層數據結構是什么?

5.線程池用過嗎都有什么參數?底層如何實現的?

6.sychnized和Lock什么區別?sychnize 什么情況情況是對象鎖? 什么時候是全局鎖為什么?

7.ThreadLocal 是什么底層如何實現?寫一個例子唄?

8.volitile的工作原理?

9.cas知道嗎如何實現的?

10.請用至少四種寫法寫一個單例模式?

11.請介紹一下JVM內存模型??用過什么垃圾回收器都說說唄

12.線上發送頻繁full gc如何處理? CPU 使用率過高怎么辦?

13.如何定位問題?如何解決說一下解決思路和處理方法

14.知道字節碼嗎?字節碼都有哪些?Integer x =5,int y =5,比較x =y 都經過哪些步驟?

15.講講類加載機制唄都有哪些類加載器,這些類加載器都加載哪些文件?

16.手寫一下類加載Demo

17.知道osgi嗎? 他是如何實現的???

18.請問你做過哪些JVM優化?使用什么方法達到什么效果???

19.classforName("java.lang.String")和String classgetClassLoader() LoadClass("java.lang.String") 什么區別啊?

20.探查Tomcat的運行機制即框架?

21.分析Tomcat線程模型?

22.Tomcat系統參數認識和調優?

23.MySQL底層B+Tree機制?

24.SQL執行計劃詳解?

25.索引優化詳解?

26.SQL語句如如如何優化?

27.spring都有哪些機制啊AOP底層如何實現的啊IOC呢??

28.cgLib知道嗎?他和jdk動態代理什么區別?手寫一個jdk動態代理唄?

29.使用mysq1索引都有哪些原則? ?索引什么數據結構? 3+tree 和B tree 什么區別?

30.MySQL有哪些存儲引擎啊?都有啥區別? 要詳細!

31.設計高并發系統數據庫層面該怎么設計??數據庫鎖有哪些類型?如何實現呀?

32.數據庫事務有哪些?

33.如何設計可以動態擴容縮容的分庫分表方案?

34.用過哪些分庫分表中間件,有啥優點和缺點?講一下你了解的分庫分表中間件的底層實現原理?

35.我現在有一個未分庫分表的系統,以后系統需分庫分表,如何設計,讓未分庫分表的系統動態切換到分庫分表的系統上?TCC? 那若出現網絡原因,網絡連不通怎么辦啊?

36.分布式事務知道嗎? 你們怎么解決的?

37.為什么要分庫分表啊?

38.RPC通信原理,分布式通信原理

39.分布式尋址方式都有哪些算法知道一致性hash嗎?手寫一下java實現代碼??你若userId取摸分片,那我要查一段連續時間里的數據怎么辦???

40.如何解決分庫分表主鍵問題有什么實現方案??

41.redis和memcheched 什么區別為什么單線程的redis比多線程的memched效率要高啊?

42.redis有什么數據類型都在哪些場景下使用啊?

43.reids的主從復制是怎么實現的redis的集群模式是如何實現的呢redis的key是如何尋址的啊?

44.使用redis如何設計分布式鎖?使用zk可以嗎?如何實現啊這兩種哪個效率更高啊??

45.知道redis的持久化嗎都有什么缺點優點啊? ?具體底層實現呢?

46.redis過期策略都有哪些LRU 寫一下java版本的代碼吧??

47.說一下dubbo的實現過程注冊中心掛了可以繼續通信嗎??

48.dubbo支持哪些序列化協議?hessian 說一下hessian的數據結構PB知道嗎為啥PB效率是最高的啊??

49.知道netty嗎'netty可以干嘛呀NIO,BIO,AIO 都是什么啊有什么區別啊?

50.dubbo復制均衡策略和高可用策略都有哪些啊動態代理策略呢?

51.為什么要進行系統拆分啊拆分不用dubbo可以嗎'dubbo和thrift什么區別啊?

52.為什么使用消息隊列啊消息隊列有什么優點和缺點啊?

53.如何保證消息隊列的高可用啊如何保證消息不被重復消費啊

54.kafka ,activemq,rabbitmq ,rocketmq都有什么優點,缺點啊???

55.如果讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路

56.說一下TCP 'IP四層?

57.的工作流程?? ?http1.0 http1.1http2.0 具體哪些區別啊?

58.TCP三次握手,四層分手的工作流程畫一下流程圖為什么不是四次五次或者二次啊?

59.畫一下https的工作流程?具體如何實現啊?如何防止被抓包啊??

60.源碼中所用到的經典設計思想及常用設計模式

61.系統架構如何選擇合適日志技術(log4j、log4j2、slf4j、jcl…….)

62.springAOP的原理,springAOP和Aspectj的關系,springAOP的源碼問題

63.dubbo框架的底層通信原理

64.RPC通信原理,分布式通信原理

65.如何利用springCloud來架構微服務項目

66.如何正確使用docker技術

67.springMVC的底層原理、如何從源碼來分析其原理

68.mybaits的底層實現原理,如何從源碼來分析mybaits

69.mysql的索引原理,索引是怎么實現的

70.索引的底層算法、如何正確使用、優化索引

71.springboot如何快速構建系統

72.zk原理知道嗎zk都可以干什么Paxos算法知道嗎?說一下原理和實現?

73.如果讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路

74.分布式事務知道嗎? 你們怎么解決的?

75.請問你做過哪些JVM優化?使用什么方法達到什么效果?


?

轉載于:https://www.cnblogs.com/lwh-note/p/9495954.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282391.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

skynet源碼閱讀5--協程調度模型

注&#xff1a;為方便理解&#xff0c;本文貼出的代碼部分經過了縮減或展開&#xff0c;與實際skynet代碼可能會有所出入。 作為一個skynet actor&#xff0c;在啟動腳本被加載的過程中&#xff0c;總是要調用skynet.start和skynet.dispatch的&#xff0c;前者在skynet-os中…

ASP.NET Core GRPC 和 Dubbo 互通

一.前言Dubbo 是比較流行的服務治理框架&#xff0c;國內不少大廠都在使用。以前的 Dubbo 使用的是私有協議&#xff0c;采集用的 hessian 序列化&#xff0c;對于多語言生態來說是極度的不友好。現在 Dubbo 發布了新版本 v3&#xff0c;推出了基于 gRPC 的新協議 Triple&#…

詳解C# 迭代器

[引用&#xff1a;https://www.cnblogs.com/yangecnu/archive/2012/03/17/2402432.html] 迭代器模式是設計模式中行為模式(behavioral pattern)的一個例子&#xff0c;他是一種簡化對象間通訊的模式&#xff0c;也是一種非常容易理解和使用的模式。簡單來說&#xff0c;迭代器模…

利用redis List隊列簡單實現秒殺 PHP代碼實現

一 生產者producer部分 --------------------------------producer 部分注釋------------------------------------------------------------ 用戶在頁面請求之后, 獲取到用戶uid , 跳轉到這個加入隊列的方法 (這里直接在producer中模擬了多個uid) 在方法內部判斷redis隊列長…

使用Filezilla 與 linux遠程服務器傳輸文件時,設置默認打開編輯器

1. 點擊編輯 2. 選擇設置&#xff0c;點擊文本編輯 3. 設置編輯器目錄 4. 確定作用&#xff1a; 這樣設置之后&#xff0c;可以實現在遠程站點欄直接下載并使用phpstorm編輯的作用 正常需要下載之后&#xff0c;再去本地相應下載目錄打開&#xff0c;然后再進行上傳文件&#x…

SDOI2017 新生舞會

01規劃 a1a2a3...ai/b1b2b2..bi最大 設一個k 使得 a1a2a3...ai/b1b2b3...bi>k 變換式子得到 a1a2a3...ai>(b1b2b3..bi)*k a1-b1*ka2-b2*ka3-b3*k...ai-bi*k>0 ai-bi*k即流量 最大費用流二分答案 來&#xff0c;上代碼&#xff1a; #include <cmath> #include &l…

在 .NET 中使用 FluentValidation 進行參數驗證

不用說&#xff0c;參數驗證很重要&#xff0c;無效的參數&#xff0c;可能會導致程序的異常。如果使用Web API或MVC頁面&#xff0c;那么可能習慣了自帶的規則驗證&#xff0c;我們的控制器很干凈&#xff1a;public class User {[Required]public string FirstName { get; se…

在win10系統下怎樣快速切換任務視圖

2019獨角獸企業重金招聘Python工程師標準>>> 切換窗口&#xff1a;Alt Tab 任務視圖&#xff1a;Win Tab (松開鍵盤界面不會消失) 切換任務視圖&#xff1a;Win Ctrl 左/右 創建新的虛擬桌面&#xff1a;Win Ctrl D 關閉當前虛擬桌面&#xff1a;Win Ctrl F4…

uwp應用在debug模式下運行正常,編譯為release版本的時候拋出異常

原因是在代碼中使用了dynamic關鍵字&#xff0c;導致release時.net native優化了代碼造成元數據丟失 所以在代碼中要盡量不用dynamic。轉載于:https://www.cnblogs.com/poison/p/7532142.html

Linux上搭建Samba,實現windows與Linux文件數據同步

一 環境介紹 1. 本地win10 2. Linux (centos7.4) 注&#xff1a;因為運營商方面禁止smb協議&#xff0c;導致無法在云服務器上使用smb&#xff0c;如果不是在虛擬機上操作&#xff0c;而是在云服務器上操作&#xff0c;建議還是使用 filezillaxshell組合 或者 使用finalshell等…

A5-1和DES兩個加密算法的學習

A5-1加密算法 1、基本原理 A5-1加密算法是一種流password&#xff0c;通過密鑰流對明文進行加密。然后用密鑰流進行對密文的解密操作。 這樣的算法主要用于GSM加密。也就是我們平時打電話的時候。通信數據發送到基站&#xff0c;基站發送到還有一個基站&#xff0c;基站發送到接…

從0到1簡易區塊鏈開發手冊V0.3-數據持久化與創世區塊

Author: brucefeng Email: brucefengbrucefeng.com 編程語言:Golang 1.BoltDB簡介 Bolt是一個純粹Key/Value模型的程序。該項目的目標是為不需要完整數據庫服務器&#xff08;如Postgres或MySQL&#xff09;的項目提供一個簡單&#xff0c;快速&#xff0c;可靠的數據庫。 Bolt…

ELK之elasticsearch5.6的安裝和head插件的安裝

這里選擇的elasticsearch為5.6的新版本&#xff0c;根據官方文檔有幾種暗裝方式&#xff1a; https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html 這里選擇rpm包安裝https://www.elastic.co/guide/en/elasticsearch/reference/curre…

Nginx 基礎(一)

一 、Nginx簡述 Nginx是一個開源、高性能、可靠的HTTP中間件、代理服務。二 、常見的HTTP服務 1. HTTPD-Apache基金會 2. IIS-微軟 3. GWS-Google 4. Nginx三、為什么選擇Nginx 原因一&#xff1a;IO多路復用epoll &#xff08;主要解決了并發性的問題&#xff09; 注1&#xf…

Ajax基本案例詳解之load的實現

Ajax的load實現&#xff1a; 看這篇之前建議大家去看看前面兩篇文章&#xff1a; 1.Ajax基本案例詳解之$.ajax的實現 2.Ajax基本案例詳解之$.get的實現 現在寫一下$.load()里面的主要內容&#xff1a; $("#semail").load("doindex.jsp","email1&q…

ASP.NET Core高性能服務器HTTP.SYS

如果我們只需要將ASP.NET CORE應用部署到Windows環境下&#xff0c;并且希望獲得更好的性能&#xff0c;那么我們選擇的服務器類型應該是HTTP.SYS。Windows環境下任何針對HTTP的網絡監聽器/服務器在性能上都無法與HTTP.SYS比肩。[本文節選《ASP.NET Core 6框架揭秘》第18章]一、…

神經網絡- receptive field

記錄一下感受野的理解&#xff1a; 在神經網絡中&#xff0c;感受野的定義是&#xff1a; 神經網絡的每一層輸出的特征圖&#xff08;Feature ap&#xff09;上的像素點在原圖像上映射的區域大小。 1. 神經網絡中&#xff0c;第一個卷積層的 感受野大小&#xff0c;就等于filt…

734. [網絡流24題] 方格取數問題 二分圖點權最大獨立集/最小割/最大流

問題描述&#xff1a;在一個有m*n 個方格的棋盤中&#xff0c;每個方格中有一個正整數。現要從方格中取數&#xff0c;使任意2 個數所在方格沒有公共邊&#xff0c;且取出的數的總和最大。試設計一個滿足要求的取數算法。編程任務&#xff1a;對于給定的方格棋盤&#xff0c;按…

Nginx 基礎 ( 二)

一、HTTP請求 http請求包括客戶端請求服務端 以及 服務端響應數據回客戶端&#xff0c;如下 請求&#xff1a;包括請求行、請求頭部、請求數據 響應&#xff1a;包括狀態行、消息報頭、響應正文 比如在Linux中curl請求網站獲取請求信息和響應信息 curl -v http://www.kugou.com…

《金融行業應用解決方案白皮書》發布,金融自主創新未來可期!

日前&#xff0c;以“聚勢賦能 行業共創”為主題的金融行業解決方案發布會在線上舉行。麒麟軟件發布《金融行業應用解決方案白皮書》&#xff0c;并發起成立“金融機具生態圈俱樂部”&#xff0c;助力金融行業用戶高質量發展。金融信息系統曾經被國外廠商壟斷金融信息系統作為國…