2017年9月面試

JAVA

1.集合
ArrayList,LinkedList,Vector等區(qū)別
HashMap,LinkedMap,HashTable,SortMap,TreeMap等區(qū)別
2.代理
答:a.靜態(tài)代理:
優(yōu)點(diǎn):不修改目標(biāo)對(duì)象的前提下冒滩,對(duì)目標(biāo)功能進(jìn)行處理。
缺點(diǎn):代理對(duì)象與目標(biāo)對(duì)象實(shí)現(xiàn)相同的接口
b.JDK動(dòng)態(tài)代理:
實(shí)現(xiàn):生成接口的代理類,將AOP邏輯寫入代理類德频,在運(yùn)行時(shí)動(dòng)態(tài)織入AOP,通過反射調(diào)用邏輯。
優(yōu)點(diǎn):代理對(duì)象不需要實(shí)現(xiàn)接口望艺,利用static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces,InvocationHandler h )方法生成代理類
缺點(diǎn):目標(biāo)對(duì)象需要實(shí)現(xiàn)接口
c.Cglib動(dòng)態(tài)代理:
實(shí)現(xiàn):在運(yùn)行期間票腰,目標(biāo)類的字節(jié)碼加載后堕油,生成目標(biāo)類的子類,將切片邏輯加入到子類中乐严。
優(yōu)點(diǎn):不需要實(shí)現(xiàn)接口
代理工廠需要實(shí)現(xiàn)MethodInterceptor接口
缺點(diǎn):final類不能實(shí)現(xiàn)代理
3.線程
1.ThreadLocal:用ThreadLocal修飾的變量瘤袖,都會(huì)為每一個(gè)線程創(chuàng)建一個(gè)副本。yi空間換時(shí)間昂验,保障不發(fā)生并發(fā)問題捂敌。
2.ThreadLocal內(nèi)存泄漏原因:ThreadLocalMap的生命周期與線程相同,若沒有remove()key的話則會(huì)導(dǎo)致內(nèi)存泄漏凛篙。
4.鎖
答:synchronized原理:
a.當(dāng)同步對(duì)象時(shí),通過monitorenter和monitorexist指令實(shí)現(xiàn)栏渺;
b.當(dāng)同步方法時(shí)呛梆,通過方法修飾符ACC_SYNCHRONIZED實(shí)現(xiàn),在字節(jié)碼中沒有體現(xiàn),但是在class文件的方法表中磕诊,將access_flags字段中的synchronized設(shè)置為1填物,鎖的對(duì)象為此方法的類對(duì)象,調(diào)用此方法的對(duì)象霎终;
c.當(dāng)同步代碼塊時(shí)滞磺,monitorenter插入在開始,monitorexist插入在結(jié)束位置莱褒。

redis

1.redis有那些數(shù)據(jù)類型击困?
答:a.字符串類型 - 可以存儲(chǔ)字符串,json字符串等广凸,最大容量為512MB
b.HashMap -已key ,value 形式存儲(chǔ)阅茶,key,value都只能為字符串谅海,hashMap大小為2^31-1
c.list - 為一個(gè)雙向鏈表脸哀,向兩端添加元素的復(fù)雜度為O(1),通過索引訪問就需要從第一個(gè)開始查詢
d.set - 集合扭吁,元素不能重復(fù)
e.sortset - 有序集合

2.redis持久化
答:1.filesnapshotting:設(shè)置一個(gè)save n m ,也就是每過m/n秒后撞蜂,redis fork一個(gè)子進(jìn)程,子進(jìn)程會(huì)將redis中的數(shù)據(jù)寫入一個(gè)RDB的臨時(shí)文件中侥袜,當(dāng)寫完之后蝌诡,覆蓋原來的RDB文件。這樣的好處就是copy-on-write枫吧。
2.Append-only:當(dāng)有數(shù)據(jù)修改時(shí)送漠,就會(huì)將修改命令記錄到AOF文件中。只要設(shè)置appendonly yes
appendfsync everysec //每秒鐘強(qiáng)制寫入磁盤一次由蘑,在性能和持久化方面做了很好的折中闽寡,推薦使用BGREWRITEAOF.

spring

1.spring 容器

2.springMVC
1.多例:@scope,但是多例下普通屬性不會(huì)公用代兵,靜態(tài)屬性會(huì)公用。
2.SpringMVC核心處理流程: a.DispatcherServlet前端控制器接收發(fā)過來的請(qǐng)求爷狈,交給HandlerMapping處理器映射器
b.HandlerMapping處理器映射器植影,根據(jù)請(qǐng)求路徑找到相應(yīng)的HandlerAdapter處理器適配器(處理器適配器就是那些攔截器或Controller)
c.HandlerAdapter處理器適配器,處理一些功能請(qǐng)求涎永,返回一個(gè)ModelAndView對(duì)象(包括模型數(shù)據(jù)思币、邏輯視圖名)
d.ViewResolver視圖解析器,先根據(jù)ModelAndView中設(shè)置的View解析具體視圖
e.然后再將Model模型中的數(shù)據(jù)渲染到View上
3.spring AOP
答:1.before
2.afterretruning
3.around
4.spring IOC
答:對(duì)于spring來說羡微,就是為了控制對(duì)象的生命周期以及依賴谷饿。過程:初始化的時(shí)候,將對(duì)象分解成beanid,beanType,properties.查找的時(shí)候就通過反射去創(chuàng)建這個(gè)對(duì)象實(shí)例妈倔,并將properties注入到對(duì)象屬性博投。
5.spring 事務(wù)
一、傳播屬性:
1.PROPAGATION_REQUIRED :支持當(dāng)前事務(wù)盯蝴,如果沒有毅哗,新建
2.PROPAGATION_SUPPORTS :支持當(dāng)前事務(wù),如果沒有捧挺,以非事務(wù)執(zhí)行
3.PROPAGATION_MANDATORY : 支持當(dāng)前事物虑绵,沒有,拋出異常
4.PROPAGATION_REQUIRES_NEW : 新建事務(wù)闽烙,存在翅睛,掛起當(dāng)前事務(wù)
5.PROPAGATION_NOT_SUPPORTED : 以非事務(wù)執(zhí)行,存在黑竞,掛起當(dāng)前事務(wù)
6.PROPAGATION_NEVER : 以非事務(wù)執(zhí)行宏所,存在,拋出異常
7.PROPAGATION_NESTED : 存在摊溶,則在嵌套的事務(wù)中執(zhí)行爬骤。否則,創(chuàng)建莫换。
二霞玄、隔離級(jí)別:
1.DEFAULT:默認(rèn)隔離級(jí)別
2.READ_UNCOMMITTED:最低的隔離級(jí)別,允許一個(gè)事務(wù)看到另外一個(gè)事務(wù)未提交的數(shù)據(jù)拉岁,產(chǎn)生臟讀坷剧,不可重復(fù)讀,幻象讀取喊暖。
3.READ_COMMITTED:提交后才能讀惫企。
4.REPEATABLE_READ:可能出項(xiàng)幻象讀。
5.SERIALIZABLE:花費(fèi)最高,最可靠狞尔,事務(wù)為順序執(zhí)行丛版。

分布式

1.分布式鎖
redis分布式鎖:1.setNx命令,成功獲取偏序,失敗
2.查詢時(shí)間是否超時(shí)页畦,超時(shí)則重新getSet超時(shí)時(shí)間

2.分布式事務(wù)
a.兩階段提交協(xié)議:首先需要一個(gè)協(xié)調(diào)器。1.客戶端發(fā)請(qǐng)求到協(xié)調(diào)器研儒;2.協(xié)調(diào)器記錄prepare日志豫缨。然后將prepare信息發(fā)送給事務(wù)執(zhí)行器;3.事物執(zhí)行器記錄prepare日志端朵,執(zhí)行本機(jī)事務(wù)好芭,但是不commit。執(zhí)行成功發(fā)送yes,否則no;4.然后協(xié)調(diào)器根據(jù)所以事務(wù)執(zhí)行器的返回結(jié)果來確定是commit,還是rollback.
缺點(diǎn):多次多節(jié)點(diǎn)通信冲呢,通信時(shí)間太長(zhǎng)舍败;相對(duì)的事務(wù)執(zhí)行時(shí)間變長(zhǎng),鎖定的資源也變長(zhǎng)碗硬;
b.三階段提交協(xié)議:比兩階段提交協(xié)議增加了1.cancelCommit,協(xié)調(diào)器發(fā)請(qǐng)求確認(rèn)是否能執(zhí)行事務(wù)瓤湘;2增加了超時(shí)處理瓢颅;
c.利用消息隊(duì)列實(shí)現(xiàn)兩階段提交協(xié)議恩尾;

mysql

1.數(shù)據(jù)庫(kù)引擎
答:innerDB ,MyISAM,
區(qū)別:innerDB有事務(wù)挽懦,MyISAM沒有事物翰意;innerDB支持行級(jí)鎖,MyISAM不支持信柿;innerDB支持外鍵冀偶,MyISAM不支持;
2.數(shù)據(jù)庫(kù)索引

3.數(shù)據(jù)庫(kù)優(yōu)化

協(xié)議

1.http/https
https需要CA證書渔嚷,是SSL安全加密,默認(rèn)端口443形病;
cookies:保存在客戶端客年,內(nèi)容:名稱漠吻,值,過期時(shí)間途乃,域和路徑绍傲。不安全耍共,可以篡改猎塞。保存數(shù)據(jù)大小不能超過4k.
session:保存在服務(wù)端,有服務(wù)端產(chǎn)生枫弟。
Http1.x:同一時(shí)間對(duì)單一的域名訪問數(shù)量有限制;
Http2.x:使用了多路復(fù)用淡诗,對(duì)單一的http鏈接發(fā)起多重的請(qǐng)求,相應(yīng)韩容。在應(yīng)用層(Http2)與傳輸層(TCP/UDP)中間增加了一個(gè)二進(jìn)制分幀款违。
Http2:1.單鏈接多資源的方式群凶,減小服務(wù)端的壓力。內(nèi)存占用更少请梢,吞吐量更高
2.TCP/IP
組成:1.連路層:
3.RESTFUL

RPC框架

設(shè)計(jì)模式

秒殺系統(tǒng)

1.對(duì)現(xiàn)有業(yè)務(wù)的沖擊
2.對(duì)數(shù)據(jù)庫(kù)的負(fù)載
3.對(duì)帶寬的要求
4.直接下單

Rabbitmq

a.生產(chǎn)者確認(rèn):
1.通過事務(wù)保證一致性:channel.txSelect();channel.txCommit();
2.設(shè)置channel的confirm模式:channel上的消息都會(huì)生成一個(gè)唯一id(從1開始),一旦消息推送到隊(duì)列上毅弧,broker代理服務(wù)器就會(huì)像生產(chǎn)者推送一條消息气嫁,保護(hù)消息的唯一id
b.消費(fèi)者確認(rèn):令noAck=false,當(dāng)消費(fèi)者調(diào)用完業(yè)務(wù)邏輯后够坐,會(huì)顯示的調(diào)用basicAck寸宵,這樣mq就會(huì)將隊(duì)列中的消息刪除。如果此時(shí)消費(fèi)者斷開元咙,mq會(huì)將消息重新放入隊(duì)列安排下一次消費(fèi)梯影。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市庶香,隨后出現(xiàn)的幾起案子甲棍,更是在濱河造成了極大的恐慌,老刑警劉巖赶掖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件感猛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡倘零,警方通過查閱死者的電腦和手機(jī)唱遭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呈驶,“玉大人拷泽,你說我怎么就攤上這事。” “怎么了司致?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵拆吆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我脂矫,道長(zhǎng)枣耀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任庭再,我火速辦了婚禮捞奕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拄轻。我一直安慰自己颅围,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布恨搓。 她就那樣靜靜地躺著院促,像睡著了一般。 火紅的嫁衣襯著肌膚如雪斧抱。 梳的紋絲不亂的頭發(fā)上常拓,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音辉浦,去河邊找鬼弄抬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛盏浙,可吹牛的內(nèi)容都是我干的眉睹。 我是一名探鬼主播荔茬,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼废膘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了慕蔚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤孔飒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后桂对,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蕉斜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年宅此,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片父腕。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖璧亮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情财搁,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布尖奔,位于F島的核電站穷当,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏馁菜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一峭火、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卖丸,春花似錦盏道、人聲如沸稍浆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至论皆,卻和暖如春歧斟,著一層夾襖步出監(jiān)牢的瞬間偏形,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工俊扭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人萨惑。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像庸蔼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子姐仅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)劳翰,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,748評(píng)論 6 342
  • 什么是Spring Spring是一個(gè)開源的Java EE開發(fā)框架佳簸。Spring框架的核心功能可以應(yīng)用在任何Jav...
    jemmm閱讀 16,441評(píng)論 1 133
  • 今天終于可以不用等到快睡覺時(shí)才寫了生均。文章最開始腥刹,感謝科技的發(fā)展,現(xiàn)在已經(jīng)在北京的地鐵上了肛走,才有時(shí)間悠哉悠哉的寫東西...
    貝貝向前沖閱讀 199評(píng)論 0 0