摘要:面試,是跳槽后第一個需要面對的問題而且不同公司面試的著重點不同但是卻有一個共同點基礎是必考的。對自動災難恢復有要求的表。
貌似這一點適應的行業(yè)最廣,但是我可以很肯定的說:當你從事Java一年后,重新找工作時,才會真實的感受到這句話。
工作第一年,往往是什么都充滿新鮮感,什么都學習,沖勁十足的一年;WEB行業(yè)知識更新特別快,今天一個框架的新版本,明天又是另一個新框架,有時往往根據(jù)項目的需要來不斷學習新東西;所有,很多時候感覺,自己用過的東西真多呀!但是真正深入研究的東西卻不多。面試,是跳槽后第一個需要面對的問題;而且不同公司面試的著重點不同;但是卻有一個共同點:Java基礎是必考的。
工作第一年,可能問你String對象創(chuàng)建的理解,常用的框架是什么等等;
工作第三年,就問你Java內(nèi)存分配機制是什么,類是如何加載的等等;
工作第五年,就問你常用的設計模式是什么,你在工作中充當什么角色,怎么獨立完成一個模塊等等;
可以看出——這是一個典型的程序員的成長過程:
使用Java—->深入理解Java積累經(jīng)驗——>獨立設計分析能力——>獨當一面的多面手!
因此,必須學習:
數(shù)據(jù)庫
最常用的是Oracle了(當然銀行項目等需要DB2等),熟練掌握使用存儲過程,觸發(fā)器等;
UML
項目中經(jīng)常要寫文檔,項目經(jīng)理的基本功,程序員走向設計的基本功;
linux系統(tǒng)
需要掌握常用的linux命令——部署在windows操作系統(tǒng)上的項目很少吧。
其他就不多說了,大家可以補充。
學習上,興趣是最大的老師;項目驅(qū)動也是不錯的選擇,總之,不學習不行。
文章很長,可以先收藏
從阿里面試回來給大家分享一下阿里所問到的面試題
【阿里天貓、螞蟻、釘釘面試題目】
junit用法,before,beforeClass,after, afterClass的執(zhí)行順序
分布式鎖
nginx的請求轉發(fā)算法,如何配置根據(jù)權重轉發(fā)
用hashmap實現(xiàn)redis有什么問題(死鎖,死循環(huán),可用ConcurrentHashmap)
線程的狀態(tài)
線程的阻塞的方式
sleep和wait的區(qū)別
hashmap的底層實現(xiàn)
一萬個人搶100個紅包,如何實現(xiàn)(不用隊列),如何保證2個人不能搶到同一個紅包,可用分布式鎖
java內(nèi)存模型,垃圾回收機制,不可達算法
兩個Integer的引用對象傳給一個swap方法在方法內(nèi)部交換引用,返回后,兩個引用的值是否會發(fā)現(xiàn)變化
aop的底層實現(xiàn),動態(tài)代理是如何動態(tài),假如有100個對象,如何動態(tài)的為這100個對象代理
是否用過maven install。 maven test。git(make install是安裝本地jar包)
tomcat的各種配置,如何配置docBase
spring的bean配置的幾種方式
web.xml的配置
spring的監(jiān)聽器。
zookeeper的實現(xiàn)機制,有緩存,如何存儲注冊服務的
IO會阻塞嗎?readLine是不是阻塞的
用過spring的線程池還是java的線程池?
字符串的格式化方法 (20,21這兩個問題問的太低級了)
時間的格式化方法
定時器用什么做的
線程如何退出結束
java有哪些鎖?樂觀鎖 悲觀鎖 synchronized 可重入鎖 讀寫鎖,用過reentrantlock嗎?reentrantlock與synmchronized的區(qū)別
ThreadLocal的使用場景
java的內(nèi)存模型,垃圾回收機制
為什么線程執(zhí)行要調(diào)用start而不是直接run(直接run,跟普通方法沒什么區(qū)別,先調(diào)start,run才會作為一個線程方法運行)
qmq消息的實現(xiàn)機制(qmq是去哪兒網(wǎng)自己封裝的消息隊列)
遍歷hashmap的三種方式
jvm的一些命令
memcache和redis的區(qū)別
mysql的行級鎖加在哪個位置
ConcurrentHashmap的鎖是如何加的?是不是分段越多越好
myisam和innodb的區(qū)別(innodb是行級鎖,myisam是表級鎖)
mysql其他的性能優(yōu)化方式
linux系統(tǒng)日志在哪里看
如何查看網(wǎng)絡進程
統(tǒng)計一個整數(shù)的二進制表示中bit為1的個數(shù)
jvm內(nèi)存模型,java內(nèi)存模型
【阿里巴巴面試題目】
如何把java內(nèi)存的數(shù)據(jù)全部dump出來
如何手動觸發(fā)全量回收垃圾,如何立即觸發(fā)垃圾回收
hashmap如果只有一個寫其他全讀會出什么問題
git rebase
mongodb和hbase的區(qū)別
如何解決并發(fā)問題
volatile的用途
java線程池(好像之前我的理解有問題)
mysql的binlog
代理模式
mysql是如何實現(xiàn)事務的
讀寫分離何時強制要讀主庫,讀哪個從庫是通過什么方式?jīng)Q定的,從庫的同步mysql用的什么方式
mysql的存儲引擎
mysql的默認隔離級別,其他隔離級別
將一個鏈表反轉(用三個指針,但是每次只發(fā)轉一個)
spring Aop的實現(xiàn)原理,具體說說
何時會內(nèi)存泄漏,內(nèi)存泄漏會拋哪些異常
是否用過Autowire注解
spring的注入bean的方式
sql語句各種條件的執(zhí)行順序,如select, where, order by, group by
select xx from xx where xx and xx order by xx limit xx; 如何優(yōu)化這個(看explain)
四則元算寫代碼
統(tǒng)計100G的ip文件中出現(xiàn)ip次數(shù)最多的100個ip
zookeeper的事物,結點,服務提供方掛了如何告知消費方
5臺服務器如何選出leader(選舉算法)
適配器和代理模式的區(qū)別
讀寫鎖
static加鎖
事務隔離級別
門面模式,類圖(外觀模式)
mybatis如何映射表結構
二叉樹遍歷
主從復制
mysql引擎區(qū)別
靜態(tài)內(nèi)部類加載到了哪個區(qū)?方法區(qū)
class文件編譯后加載到了哪
web的http請求如何整體響應時間變長導致處理的請求數(shù)變少,該如何處理?用隊列,當處理不了那么多http請求時將請求放到隊列
中慢慢處理,web如何實現(xiàn)隊列
線程安全的單例模式
快速排序性能考慮
volatile關鍵字用法
求表的size,或做數(shù)據(jù)統(tǒng)計可用什么存儲引擎
讀多寫少可用什么引擎
假如要統(tǒng)計多個表應該用什么引擎
concurrenhashmap求size是如何加鎖的,如果剛求完一段后這段發(fā)生了變化該如何處理
1000個蘋果放10個籃子,怎么放,能讓我拿到所有可能的個數(shù)
可重入的讀寫鎖,可重入是如何實現(xiàn)的?
是否用過NIO
java的concurrent包用過沒
sting s=new string("abc")分別在堆棧上新建了哪些對象
java虛擬機的區(qū)域分配,各區(qū)分別存什么
分布式事務(JTA)
threadlocal使用時注意的問題(ThreadLocal和Synchonized都用于解決多線程并發(fā)訪問。但是ThreadLocal與synchronized有本質(zhì)的區(qū)別。synchronized是利用鎖的機制,使變量或代碼塊在某一時該只能被一個線程訪問。而ThreadLocal為每一個線程都提供了變量的副本,使得每個線程在某一時間訪問到的并不是同一個對象,這樣就隔離了多個線程對數(shù)據(jù)的數(shù)據(jù)共享。而Synchronized卻正好相反,它用于在多個線程間通信時能夠獲得數(shù)據(jù)共享)
java有哪些容器(集合,tomcat也是一種容器)
二分查找算法
myisam的優(yōu)點,和innodb的區(qū)別
redis能存哪些類型
http協(xié)議格式,get和post的區(qū)別
可重入鎖中對應的wait和notify
redis能把內(nèi)存空間交換進磁盤中嗎(這個應該是可以的,但是那個面試官非跟我說不可以)
java線程池中基于緩存和基于定長的兩種線程池,當請求太多時分別是如何處理的?定長的事用的隊列,如果隊列也滿了呢?交換進磁盤?基于緩存的線程池解決方法呢?
synchronized加在方法上用的什么鎖
可重入鎖中的lock和trylock的區(qū)別
innodb對一行數(shù)據(jù)的讀會枷鎖嗎?不枷鎖,讀實際讀的是副本
redis做緩存是分布式存的?不同的服務器上存的數(shù)據(jù)是否重復?guava cache呢?是否重復?不同的機器存的數(shù)據(jù)不同
用awk統(tǒng)計一個ip文件中top10
對表做統(tǒng)計時可直接看schema info信息,即查看表的系統(tǒng)信息
mysql目前用的版本
公司經(jīng)驗豐富的人給了什么幫助?(一般boss面會問這些)
自己相對于一樣的應屆生有什么優(yōu)勢
自己的好的總結習慣給自己今后的工作帶了什么幫助,舉例為證
原子類,線程安全的對象,異常的處理方式
4億個int數(shù),如何找出重復的數(shù)(用hash方法,建一個2的32次方個bit的hash數(shù)組,每取一個int數(shù),可hash下2的32次方找到它在hash數(shù)組中的位置,然后將bit置1表示已存在)
4億個url,找出其中重復的(考慮內(nèi)存不夠,通過hash算法,將url分配到1000個文件中,不同的文件間肯定就不會重復了,再分別找出重復的)
有1萬個數(shù)組,每個數(shù)組有1000個整數(shù),每個數(shù)組都是降序的,從中找出最大的N個數(shù),N<1000
LinkedHashmap的底層實現(xiàn)
類序列化時類的版本號的用途,如果沒有指定一個版本號,系統(tǒng)是怎么處理的?如果加了字段會怎么樣?
Override和Overload的區(qū)別,分別用在什么場景
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):內(nèi)存表,不支持事務,表級鎖,Hash索引,不支持Blob,Text大類型
ps: 優(yōu)點:速度要求快的,臨時數(shù)據(jù)
缺點:丟失以后,對項目整體沒有或者負面影響不大的時候。
2,redis的hash算法用的是啥?
redis應該是使用一致性hash算法---MurmurHash3 算法,具有低碰撞率優(yōu)點,google改進的版本cityhash也是redis中用到的哈希算法。
現(xiàn)有的主流的大數(shù)據(jù)系統(tǒng)都是用的 MurmurHash本身或者改進
3,nosql為啥比sql快?
Nosql是非關系型數(shù)據(jù)庫,因為不需要滿足關系數(shù)據(jù)庫數(shù)據(jù)一致性等復雜特性所以速度快;
sql是關系型數(shù)據(jù)庫,功能強大,但是效率上有瓶頸
4,什么是索引為啥nosql沒索引?nosql有索引滴
索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照數(shù)據(jù)存放的物理位置為順序的,而非聚簇索引就不一樣了;聚簇索引能提高多行檢索的速度,而非聚簇索引對于單行的檢索很快。
聚簇索引:有主鍵時,根據(jù)主鍵創(chuàng)建聚簇索引;沒有主鍵時,會用一個唯一且不為空的索引列做為主鍵,成為此表的聚簇索引;如果以上兩個都不滿足那innodb自己創(chuàng)建一個虛擬的聚集索引
非聚簇索引:非聚簇索引都是輔助索引,像復合索引、前綴索引、唯一索引
5,B+樹和B樹區(qū)別?
B樹的非葉子節(jié)點存儲實際記錄的指針,而B+樹的葉子節(jié)點存儲實際記錄的指針
B+樹的葉子節(jié)點通過指針連起來了, 適合掃描區(qū)間和順序查找。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/72137.html
摘要:面試,是跳槽后第一個需要面對的問題而且不同公司面試的著重點不同但是卻有一個共同點基礎是必考的。對自動災難恢復有要求的表。 貌似這一點適應的行業(yè)最廣,但是我可以很肯定的說:當你從事Java一年后,重新找工作時,才會真實的感受到這句話。 工作第一年,往往是什么都充滿新鮮感,什么都學習,沖勁十足的一年;WEB行業(yè)知識更新特別快,今天一個框架的新版本,明天又是另一個新框架,有時往往根據(jù)項目的需...
摘要:獲取的對象范圍方法獲取的是最終應用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據(jù)我測試不同環(huán)境結果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續(xù)更新中……,可以關注下github 項目地址 https:...
摘要:華為篇嚴格意義上來說,華為不算互聯(lián)網(wǎng)公司,網(wǎng)上的職級薪資數(shù)據(jù)也沒有對華為進行過調(diào)查報導。事實上,根據(jù)調(diào)查了解到的情況也確實如此,在華為供職年限越久,獎金越多,分紅規(guī)模越大。 BAT、頭條、華為們的最新技術職級序列是如何劃分的?各個職級的大致薪資范圍、股票都是多少?不同職級之間的晉升難度有多大,如何評審?校招、社招程序員想去大廠應該如何準備?本篇文章搜集整理了最新版數(shù)據(jù),為你一一解答!寫...
閱讀 2808·2023-04-25 18:06
閱讀 2603·2021-11-22 09:34
閱讀 1697·2021-11-08 13:16
閱讀 1323·2021-09-24 09:47
閱讀 3059·2019-08-30 15:44
閱讀 2784·2019-08-29 17:24
閱讀 2597·2019-08-23 18:37
閱讀 2446·2019-08-23 16:55