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