【阿里天貓含鳞、螞蟻影锈、釘釘面試題目】
1. junit用法,before,beforeClass,after, afterClass的執(zhí)行順序
2. 分布式鎖
3. nginx的請求轉發(fā)算法蝉绷,如何配置根據權重轉發(fā)
4. 用hashmap實現(xiàn)redis有什么問題(死鎖鸭廷,死循環(huán),可用ConcurrentHashmap)
5. 線程的狀態(tài)
5. 線程的阻塞的方式
6. sleep和wait的區(qū)別
7. hashmap的底層實現(xiàn)
8. 一萬個人搶100個紅包熔吗,如何實現(xiàn)(不用隊列)辆床,如何保證2個人不能搶到同一個紅包,可用分布式鎖
9. java內存模型桅狠,垃圾回收機制讼载,不可達算法
10. 兩個Integer的引用對象傳給一個swap方法在方法內部交換引用,返回后中跌,兩個引用的值是否會發(fā)現(xiàn)變化
11. aop的底層實現(xiàn)咨堤,動態(tài)代理是如何動態(tài),假如有100個對象漩符,如何動態(tài)的為這100個對象代理
12. 是否用過maven install一喘。 maven test。git(make install是安裝本地jar包)
13. tomcat的各種配置嗜暴,如何配置docBase
14. spring的bean配置的幾種方式
15. web.xml的配置
16. spring的監(jiān)聽器凸克。
17. zookeeper的實現(xiàn)機制铝侵,有緩存,如何存儲注冊服務的
18. IO會阻塞嗎触徐?readLine是不是阻塞的
19. 用過spring的線程池還是java的線程池咪鲜?
20. 字符串的格式化方法 (20,21這兩個問題問的太低級了)
21. 時間的格式化方法
22. 定時器用什么做的
23. 線程如何退出結束
24. java有哪些鎖撞鹉?樂觀鎖 悲觀鎖 synchronized 可重入鎖 讀寫鎖,用過reentrantlock嗎疟丙?reentrantlock與synmchronized的區(qū)別
25. ThreadLocal的使用場景
26. java的內存模型,垃圾回收機制
27. 為什么線程執(zhí)行要調用start而不是直接run(直接run鸟雏,跟普通方法沒什么區(qū)別享郊,先調start,run才會作為一個線程方法運行)
28. qmq消息的實現(xiàn)機制(qmq是去哪兒網自己封裝的消息隊列)
29. 遍歷hashmap的三種方式
30. jvm的一些命令
31. memcache和redis的區(qū)別
32. mysql的行級鎖加在哪個位置
33. ConcurrentHashmap的鎖是如何加的孝鹊?是不是分段越多越好
34. myisam和innodb的區(qū)別(innodb是行級鎖炊琉,myisam是表級鎖)
35. mysql其他的性能優(yōu)化方式
36. linux系統(tǒng)日志在哪里看
37. 如何查看網絡進程
38. 統(tǒng)計一個整數(shù)的二進制表示中bit為1的個數(shù)
39. jvm內存模型,java內存模型
【阿里巴巴面試題目】
40. 如何把java內存的數(shù)據全部dump出來
41. 如何手動觸發(fā)全量回收垃圾又活,如何立即觸發(fā)垃圾回收
42. hashmap如果只有一個寫其他全讀會出什么問題
43. git rebase
44. mongodb和hbase的區(qū)別
45. 如何解決并發(fā)問題
46. volatile的用途
47. java線程池(好像之前我的理解有問題)
48. mysql的binlog
49. 代理模式
50. mysql是如何實現(xiàn)事務的
51. 讀寫分離何時強制要讀主庫苔咪,讀哪個從庫是通過什么方式決定的,從庫的同步mysql用的什么方式
52. mysql的存儲引擎
53. mysql的默認隔離級別柳骄,其他隔離級別
54. 將一個鏈表反轉(用三個指針团赏,但是每次只發(fā)轉一個)
55. spring Aop的實現(xiàn)原理,具體說說
56. 何時會內存泄漏耐薯,內存泄漏會拋哪些異常
57. 是否用過Autowire注解
58. spring的注入bean的方式
59. sql語句各種條件的執(zhí)行順序舔清,如select, where曲初, order by体谒, group by
60. select xx from xx where xx and xx order by xx limit xx; 如何優(yōu)化這個(看explain)
61. 四則元算寫代碼
62. 統(tǒng)計100G的ip文件中出現(xiàn)ip次數(shù)最多的100個ip
63. zookeeper的事物臼婆,結點抒痒,服務提供方掛了如何告知消費方
64. 5臺服務器如何選出leader(選舉算法)
65. 適配器和代理模式的區(qū)別
66. 讀寫鎖
67. static加鎖
68. 事務隔離級別
69. 門面模式,類圖(外觀模式)
70. mybatis如何映射表結構
71. 二叉樹遍歷
72. 主從復制
73. mysql引擎區(qū)別
74. 靜態(tài)內部類加載到了哪個區(qū)目锭?方法區(qū)
75. class文件編譯后加載到了哪
76. web的http請求如何整體響應時間變長導致處理的請求數(shù)變少评汰,該如何處理纷捞?用隊列痢虹,當處理不了那么多http請求時將請求放到隊列
中慢慢處理,web如何實現(xiàn)隊列
77. 線程安全的單例模式
78. 快速排序性能考慮
79. volatile關鍵字用法
80. 求表的size主儡,或做數(shù)據統(tǒng)計可用什么存儲引擎
81. 讀多寫少可用什么引擎
82. 假如要統(tǒng)計多個表應該用什么引擎
83. concurrenhashmap求size是如何加鎖的奖唯,如果剛求完一段后這段發(fā)生了變化該如何處理
84. 1000個蘋果放10個籃子,怎么放糜值,能讓我拿到所有可能的個數(shù)
85. 可重入的讀寫鎖丰捷,可重入是如何實現(xiàn)的坯墨?
86. 是否用過NIO
87. java的concurrent包用過沒
88. sting s=new string("abc")分別在堆棧上新建了哪些對象
89. java虛擬機的區(qū)域分配,各區(qū)分別存什么
90. 分布式事務(JTA)
91. threadlocal使用時注意的問題(ThreadLocal和Synchonized都用于解決多線程并發(fā)訪問病往。但是ThreadLocal與synchronized有本質的區(qū)別捣染。synchronized是利用鎖的機制,使變量或代碼塊在某一時該只能被一個線程訪問停巷。而ThreadLocal為每一個線程都提供了變量的副本耍攘,使得每個線程在某一時間訪問到的并不是同一個對象,這樣就隔離了多個線程對數(shù)據的數(shù)據共享畔勤。而Synchronized卻正好相反蕾各,它用于在多個線程間通信時能夠獲得數(shù)據共享)
92. java有哪些容器(集合,tomcat也是一種容器)
93. 二分查找算法
94. myisam的優(yōu)點庆揪,和innodb的區(qū)別
95. redis能存哪些類型
96. http協(xié)議格式式曲,get和post的區(qū)別
97. 可重入鎖中對應的wait和notify
98. redis能把內存空間交換進磁盤中嗎(這個應該是可以的,但是那個面試官非跟我說不可以)
99. java線程池中基于緩存和基于定長的兩種線程池缸榛,當請求太多時分別是如何處理的吝羞?定長的事用的隊列,如果隊列也滿了呢内颗?交換進磁盤脆贵?基于緩存的線程池解決方法呢?
100. synchronized加在方法上用的什么鎖
101. 可重入鎖中的lock和trylock的區(qū)別
102. innodb對一行數(shù)據的讀會枷鎖嗎起暮?不枷鎖卖氨,讀實際讀的是副本
103. redis做緩存是分布式存的?不同的服務器上存的數(shù)據是否重復负懦?guava cache呢筒捺?是否重復?不同的機器存的數(shù)據不同
104. 用awk統(tǒng)計一個ip文件中top10
105. 對表做統(tǒng)計時可直接看schema info信息纸厉,即查看表的系統(tǒng)信息
106. mysql目前用的版本
107. 公司經驗豐富的人給了什么幫助系吭?(一般boss面會問這些)
108. 自己相對于一樣的應屆生有什么優(yōu)勢
109. 自己的好的總結習慣給自己今后的工作帶了什么幫助,舉例為證
110. 原子類颗品,線程安全的對象肯尺,異常的處理方式
111. 4億個int數(shù),如何找出重復的數(shù)(用hash方法躯枢,建一個2的32次方個bit的hash數(shù)組则吟,每取一個int數(shù),可hash下2的32次方找到它在hash數(shù)組中的位置锄蹂,然后將bit置1表示已存在)
112. 4億個url氓仲,找出其中重復的(考慮內存不夠,通過hash算法,將url分配到1000個文件中敬扛,不同的文件間肯定就不會重復了晰洒,再分別找出重復的)
有1萬個數(shù)組,每個數(shù)組有1000個整數(shù)啥箭,每個數(shù)組都是降序的谍珊,從中找出最大的N個數(shù),N<1000
113. LinkedHashmap的底層實現(xiàn)
114. 類序列化時類的版本號的用途急侥,如果沒有指定一個版本號抬驴,系統(tǒng)是怎么處理的?如果加了字段會怎么樣缆巧?
115. Override和Overload的區(qū)別布持,分別用在什么場景
116. java的反射是如何實現(xiàn)的
【阿里巴巴面試題目含答案】
1,mysql的三大引擎是啥陕悬?
mysql常用的引擎有InnoDB题暖,MyISAM,Memory捉超,默認是InnoDB
InnoDB:磁盤表胧卤,支持事務,支持行級鎖拼岳,B+Tree索引
ps:優(yōu)點: 具有良好的ACID特性枝誊。適用于高并發(fā),更新操作比較多的表惜纸。需要使用事務的表叶撒。對自動災難恢復有要求的表。
缺點:讀寫效率相對MYISAM比較差耐版。占用的磁盤空間比較大祠够。
mysql的4大特性+4種隔離級別:
MyISAM:磁盤表,不支持事務粪牲,支持表級鎖古瓤,B+Tree索引
ps: 優(yōu)點:占用空間小,處理速度快(相對InnoDB來說)
缺點:不支持事務的完整性和并發(fā)性
MEMORY(Heap):內存表腺阳,不支持事務落君,表級鎖,Hash索引亭引,不支持Blob,Text大類型
ps: 優(yōu)點:速度要求快的绎速,臨時數(shù)據
缺點:丟失以后,對項目整體沒有或者負面影響不大的時候痛侍。
2朝氓,redis的hash算法用的是啥魔市?
redis應該是使用一致性hash算法---MurmurHash3 算法主届,具有低碰撞率優(yōu)點赵哲,google改進的版本cityhash也是redis中用到的哈希算法。
現(xiàn)有的主流的大數(shù)據系統(tǒng)都是用的 MurmurHash本身或者改進
3君丁,nosql為啥比sql快枫夺?
Nosql是非關系型數(shù)據庫,因為不需要滿足關系數(shù)據庫數(shù)據一致性等復雜特性所以速度快绘闷;
sql是關系型數(shù)據庫橡庞,功能強大,但是效率上有瓶頸
4印蔗,什么是索引為啥nosql沒索引扒最?nosql有索引滴
索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照數(shù)據存放的物理位置為順序的华嘹,而非聚簇索引就不一樣了吧趣;聚簇索引能提高多行檢索的速度,而非聚簇索引對于單行的檢索很快耙厚。
聚簇索引:有主鍵時强挫,根據主鍵創(chuàng)建聚簇索引;沒有主鍵時薛躬,會用一個唯一且不為空的索引列做為主鍵俯渤,成為此表的聚簇索引;如果以上兩個都不滿足那innodb自己創(chuàng)建一個虛擬的聚集索引
非聚簇索引:非聚簇索引都是輔助索引型宝,像復合索引八匠、前綴索引、唯一索引
5趴酣,B+樹和B樹區(qū)別臀叙?
B樹的非葉子節(jié)點存儲實際記錄的指針,而B+樹的葉子節(jié)點存儲實際記錄的指針
B+樹的葉子節(jié)點通過指針連起來了, 適合掃描區(qū)間和順序查找价卤。
BATJ面試題目
歡迎大家加入Java高級架構/互聯(lián)網:570210627
1劝萤,應該怎么封裝簡歷才有BATJ面試機會?
2,HashMap底層執(zhí)行原理慎璧,
3床嫌,hashtable和ConcurrentHashMap如何實現(xiàn)線程安全?
4胸私,jvm的內存布局厌处,垃圾回收機制
5,類加載機制里的岁疼,雙親委派模型
6阔涉,闡述事務的隔離級別和傳播屬性
7缆娃,高并發(fā)下,如何做到安全的修改同一行數(shù)據瑰排?
8贯要,A服務調用B服務多接口,響應時間最短方案椭住;
9崇渗,A系統(tǒng)給B系統(tǒng)轉100塊錢,如何實現(xiàn)京郑?
10宅广,動態(tài)代理的幾種實現(xiàn)方式及優(yōu)缺點
11,多線程下讀概率遠遠大于寫概率些举,如何解決并發(fā)問題跟狱?
12,按線程池內部機制户魏,當提交新任務時驶臊,有哪些異常要考慮?
13绪抛,@Transaction注解一般寫在什么位置?如何控制其回滾?
14资铡,說說Spring的IOC容器初始化流程?
15幢码,說說springboot啟動機制
16笤休,Redis高性能的原因大概可以講一些?
17,你是怎么控制緩存的更新症副?(被動方式/主動方式/增量/全量)店雅?
18,淺析Http和https的三次握手有什么區(qū)別贞铣。
19闹啦,談談Session/cookie機制,如何實現(xiàn)會話跟蹤辕坝?
20窍奋,什么是一致性hash?
21酱畅,MQ有可能發(fā)生重復消費琳袄,如何避免,如何做到冪等纺酸?
22窖逗,如何做限流策略,令牌桶和漏斗算法的使用場景餐蔬?