java中級(jí)工程師(1)

1.請(qǐng)你簡(jiǎn)單介紹一下SpringCloud組件分別是什么,并有什么用處?

SpringCloud中有五個(gè)組件,分別是:

服務(wù)發(fā)現(xiàn)——Eureka

負(fù)載均衡——Ribbon

斷路器——Hystrix

網(wǎng)關(guān)——Zuul

配置——SpringCloud Config

Eureka是 Netflix的一個(gè)子模塊,也是核心的模塊之一,Eureka是一個(gè)基于rest的服務(wù),用于定位服務(wù),服務(wù)注冊(cè)等功能,有了這些功能,只需要使用服務(wù)的標(biāo)識(shí)符,就可以訪問(wèn)到服務(wù),而不需要調(diào)用服務(wù)的配置文件了,功能類似于dobbo中的zookerper。

Ribbon主要提供負(fù)載均衡算法,它提供了一系列的配置項(xiàng),比如連接超時(shí),重試,重試算法等,他有一些實(shí)現(xiàn)策略:簡(jiǎn)單輪詢負(fù)載均衡,加權(quán)響應(yīng)時(shí)間,區(qū)域感知輪詢,隨機(jī)負(fù)載均衡。

Hystrix 可以防止應(yīng)用程序多次試圖執(zhí)行一個(gè)操作,就是很可能失敗的操作,斷路器模式也可以檢測(cè)出故障是否解決了,如果問(wèn)題得到了解決,那么應(yīng)用程序就可以嘗試調(diào)用操作。

網(wǎng)關(guān)——Zuul ,類似于Nginx,反向代理,不過(guò)Netflix自己增加了一些配合其他組件的特性

配置——Config,配置中心,將配置文件集中管理,為各子服務(wù)模塊提供配置調(diào)度


2.list和map的相互轉(zhuǎn)化

①list轉(zhuǎn)化為map

Iterator<User> iterator = list.iterator();迭代list

? ? ? ? while (iterator.hasNext()) {

? ? ? ? ? ? User u = iterator.next();

? ? ? ? ? ? map.put(u.getId(), u);

? ? ? ? }

②map轉(zhuǎn)化為list

//1、根據(jù)map.keySet();

? ? ? ? Set<Integer> keySet = map.keySet();

? ? ? ? for (Integer integer : keySet) {

? ? ? ? ? ? User u = map.get(integer);

? ? ? ? ? ? System.out.println(u);

? ? ? ? }

//2、推薦 使用

? ? ? ? for(Entry<Integer, User> entry:? map.entrySet()) {

? ? ? ? ? ? System.out.println(entry.getKey()+" -"+entry.getValue());

? ? ? ? }

3.java中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡(jiǎn)單說(shuō)明

存在。雖然Java有垃圾回收器,但是依然存在內(nèi)存泄漏

首先,什么是內(nèi)存泄漏?

內(nèi)存泄漏的定義:對(duì)象不再被應(yīng)用程序使用,但是垃圾回收器卻不能移除它們,因?yàn)樗鼈冋诒灰谩?/p>

為什么會(huì)發(fā)生內(nèi)存泄漏?

對(duì)象A引用了對(duì)象B。A的生命周期(t1-t4)要比B的生命周期(t2-t3)要長(zhǎng)很多。當(dāng)B不再用于應(yīng)用中時(shí),A仍然保持有對(duì)它的引用,在這種方式下,垃圾回收器就不能將B從內(nèi)存中移除。這將可能導(dǎo)致出現(xiàn)內(nèi)存溢出的問(wèn)題。如果A對(duì)更多的對(duì)象做同樣的事情,那么內(nèi)存中將會(huì)有很多無(wú)法回收的對(duì)象,這將極度消耗內(nèi)存空間。

如何組織內(nèi)存泄漏?

(1)注意集合類,例如HashMap,ArrayList,等等。因?yàn)樗麄兪莾?nèi)存泄漏經(jīng)常發(fā)生的地方。當(dāng)它們被聲明為靜態(tài)時(shí),它們的生命周期就同應(yīng)用程序的生命周期一般長(zhǎng)。

(2)注意事件監(jiān)聽(tīng)器和回調(diào),如果一個(gè)監(jiān)聽(tīng)器已經(jīng)注冊(cè),但是當(dāng)這個(gè)類不再被使用時(shí)卻未被注銷,就會(huì)發(fā)生內(nèi)存泄漏。

4.鎖機(jī)制有什么用?簡(jiǎn)述悲觀鎖和樂(lè)觀鎖

在數(shù)據(jù)庫(kù)的鎖機(jī)制中介紹過(guò),數(shù)據(jù)庫(kù)管理系統(tǒng)中的并發(fā)控制的任務(wù)是確保在多個(gè)事務(wù)同時(shí)存取數(shù)據(jù)庫(kù)中同一數(shù)據(jù)時(shí)不破壞事務(wù)的隔離性和統(tǒng)一性以及數(shù)據(jù)庫(kù)的統(tǒng)一性

樂(lè)觀并發(fā)控制(樂(lè)觀鎖)和悲觀并發(fā)控制(悲觀鎖)是并發(fā)控制主要采用的技術(shù)手段

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容