java中級(jí)崗位面試試題答案解析_第1頁(yè)
java中級(jí)崗位面試試題答案解析_第2頁(yè)
java中級(jí)崗位面試試題答案解析_第3頁(yè)
java中級(jí)崗位面試試題答案解析_第4頁(yè)
java中級(jí)崗位面試試題答案解析_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、單選題以下關(guān)于反射的說(shuō)法中,哪一項(xiàng)是錯(cuò)誤的? 回答錯(cuò)誤class.forName()和classLoader都可用來(lái)對(duì)類進(jìn)行加載classloader是將.class文件加載到JVM中,不會(huì)執(zhí)行static中的內(nèi)容class.forName得到的class是已經(jīng)初始化完成的,classloder得到的class是還沒(méi)有 鏈接的class.forName的所有重載方法無(wú)論任何情況下都會(huì)加載static塊 正確選項(xiàng)D考點(diǎn)Java基礎(chǔ)-面向?qū)ο缶幊?解析Class.forName(name, initialize, loader)帶參函數(shù)也可控制是否加載 static 塊, initialize為f

2、alse的時(shí)候是不加載static塊,所以選項(xiàng)D是錯(cuò)誤的,答案為D。單選題以下關(guān)于Map的說(shuō)法中,哪一項(xiàng)是正確的?回答錯(cuò)誤HashMap遍歷時(shí),取得數(shù)據(jù)的順序和插入順序一致,不允許key為null,允許value為 nullLinkedHashMap默認(rèn)的遍歷順序是按照元素的插入順序,也可以通過(guò)accessOrder來(lái) 改變遍歷順序?yàn)樵L問(wèn)順序Hashtable是HashMap的線程安全版,它支持線程的同步,即任一時(shí)刻只有一個(gè)線程 能寫(xiě)Hashtable,它允許記錄的鍵或者值為nullTreeMap實(shí)現(xiàn)SortMap接口,能夠把它保存的記錄根據(jù)鍵排序,默認(rèn)是按鍵值的降序排 序 正確選項(xiàng)B考點(diǎn)Ja

3、va基礎(chǔ)-工具類解析D.select name, hp_max from heros order by hp_max limit _;正確選項(xiàng)B考盧-J 八、數(shù)據(jù)庫(kù)-SQL解析選項(xiàng)A用于查詢數(shù)據(jù)表中第一條數(shù)據(jù)的英雄名字;選項(xiàng)C用于查詢數(shù)據(jù)表中第一條數(shù)據(jù) 的英雄名字和最大生命值;選項(xiàng)D用于查詢數(shù)據(jù)表中最大生命值最低的英雄名稱和最大生 命值,所以答案為Bo單選題下面是一段考查類初始化和反射的代碼,關(guān)于這段代碼,以下哪一項(xiàng)輸出結(jié)果是正確的?public class ChildClass extends Parentclass public int age;private String name;/靜

4、態(tài)代碼塊 static System.out.printin(ChildClass static);)/構(gòu)造代碼塊(System.out.printin(nChildClass block);)/構(gòu)造函數(shù)public ChildClass() System, out .print In (ChildClass constructor11);)/main方法public static void main(String f args) System. out .printin ( nChildClass start main*1);try Class classType =Class . forN

5、ame(Hcom.example.demo.mianshi.ChildClass”, false, ClassLoader.getSystemClassLoader();classType.newlnstance ();Field fields = classType.getFields();for (Field field : fields) System.out.print(field.getName()+”,);) catch (ClassNotFoundException | IllegalAccessException | InstantiationException ) e.pri

6、ntStackTrace ();)class Parentclass static System.out.printin(nParentClass static); ) (System.out.printin(ParntClass block); )public Parentclass () System.out.printIn(Parentclass constructorH; ) ) 回答錯(cuò)誤Parentclass static ChildClass static ChildClass start main Parentclass block Parentclass constructor

7、 ChildClass block ChildClass constructor ag,ChildClass start mainChildClass static Parentclass static ChildClass block ChildClass constructorParentclass blockParentclass constructorage,ChildClass start mainChildClass static Parentclass static ChildClass block ChildClass constructor Parentclass block

8、 ParntClass constructor age,nameParentclass staticChildClass staticChildClass start mainParentclass blockParentclass constructorChildClass blockChildClass constructorage,name 正確選項(xiàng) A 考點(diǎn)Java基礎(chǔ)-編程基礎(chǔ)解析首先運(yùn)行程序得找到入口,而main就是程序的入口,但運(yùn)行程序前需要加載類,類的加 載分為加載、鏈接、初始化三個(gè)過(guò)程,這里重點(diǎn)在初始化。main主方法會(huì)在構(gòu)造器之前、 static變量初始化之后調(diào)用,這是由于

9、Java的惰性初始化,即Java編譯器會(huì)保證每個(gè) 變量在使用之前會(huì)被初始化,而在main方法被調(diào)用之前無(wú)法知道是否存在主類的實(shí)例, 所以main主方法會(huì)在構(gòu)造器之前,static變量初始化之后調(diào)用,所以BC是不對(duì)的。 然后,開(kāi)始加載ChildClass類,因?yàn)镃hildClass類繼承于Parentclass類,加載 Parentclass類的時(shí)候,發(fā)現(xiàn)有static塊,便執(zhí)行了 static塊(如果有些代碼必須在項(xiàng) 目啟動(dòng)的時(shí)候就執(zhí)行的話,需要使用靜態(tài)代碼塊,這種代碼是主動(dòng)執(zhí)行的,靜態(tài)代碼塊在虛 擬機(jī)加載類的時(shí)候就會(huì)加載執(zhí)行,而且只執(zhí)行一次)。以上,當(dāng)在Parentclass類加載完成之后,

10、會(huì)繼續(xù)加載ChildClass類,然后發(fā)現(xiàn) ChildClass類中也有static塊,就會(huì)執(zhí)行static塊。在加載完所需的類之后,便開(kāi)始執(zhí) 行main方法。在main方法中執(zhí)行new ChildClass()的時(shí)候會(huì)先調(diào)用父類的代碼塊, 然后調(diào)用父類的構(gòu)造函數(shù),構(gòu)造代碼塊和構(gòu)造函數(shù)都是給對(duì)象進(jìn)行初始化的,但是構(gòu)造代碼 塊在對(duì)象一建立就運(yùn)行,優(yōu)先于構(gòu)造函數(shù)執(zhí)行,構(gòu)造代碼塊是給此類所有對(duì)象進(jìn)行的初始化, 構(gòu)造函數(shù)只是給它對(duì)應(yīng)的對(duì)象初始化,所以先調(diào)用代碼塊再調(diào)用構(gòu)造函數(shù),然后是調(diào)用自身 的代碼塊,然后是調(diào)用自身構(gòu)造函數(shù)。最后,getFields會(huì)獲得某個(gè)類的所有的公共(public)字段,包括父

11、類中的字段。所以 只有age,這樣就排除了 D選項(xiàng),所以選擇A。單選題為了讓網(wǎng)卡ethO支持多隊(duì)列,將其綁定到CPU0和CPU2上,假設(shè)該網(wǎng)卡的irq為 150,那么使用如下哪個(gè)指令能實(shí)現(xiàn)中斷的正確綁定? 回答錯(cuò)誤echo 5 /proc/irq/149/smp_affinityecho 4 /proc/irq/149/smp_affinityecho 3 /proc/irq/149/smp_affinitycho 2 /proc/irq/149/smp_affinity正確選項(xiàng)A考占p八、基礎(chǔ)工具-Linux解析CPU位掩碼計(jì)算是采用二進(jìn)制計(jì)算的,每一位表示一個(gè)CPU核,最右側(cè)是最低位,表示

12、 CPU0,例如0001表示綁定到CPU0上,0001綁定到CPU1上,而同時(shí)綁定到 CPU0和CPU2上,是0101,轉(zhuǎn)換為十六進(jìn)制為0 x5,因此答案為Ao單選題關(guān)于MySQL的幾種日志類型:redo log、binlog、undo log,以下哪個(gè)選項(xiàng)的說(shuō)法是錯(cuò) 誤的?回答錯(cuò)誤A.redo log是InnoDB存儲(chǔ)引擎層的日志,又稱重做日志文件,用于記錄事務(wù)操作的變化 B.binlog是屬于MySQL Server層面的,又稱為歸檔日志,屬于邏輯日志,是以二進(jìn)制的 形式記錄這個(gè)語(yǔ)句的原始邏輯undo log保存了事務(wù)發(fā)生之前數(shù)據(jù)的一個(gè)版本,可以用于回滾,同時(shí)可以提供多版本并發(fā) 控制下的讀

13、(MVCC),即非鎖定讀MySQL的binlog的statement模式不需要記錄每一行數(shù)據(jù)的變化,減少了 binlog 日志量,節(jié)省了 I/O以及存儲(chǔ)資源,所以在任何條件下都可以放心使用 正確選項(xiàng)D考點(diǎn)數(shù)據(jù)庫(kù)-MySQL解析在MySQL的binlog的statement模式中,發(fā)現(xiàn)不少情況會(huì)造成MySQL的復(fù)制出 現(xiàn)問(wèn)題,主要在修改數(shù)據(jù)的時(shí)候使用了某些特定的函數(shù)或者功能的時(shí)候會(huì)出現(xiàn)。比如: sleep()函數(shù)在有些版本中就不能被正確復(fù)制,在存儲(chǔ)過(guò)程中使用了 lastjnsert_id()函 數(shù),可能會(huì)使slave和master上得到不一致的id等等。row模式是基于每一行來(lái)記 錄的變化,不會(huì)

14、出現(xiàn)類似的問(wèn)題,所以D的說(shuō)法是錯(cuò)誤的,其他說(shuō)法都是正確的。單選題若你想要查詢笛卡爾積,以下兒個(gè)SQL命令中,哪一項(xiàng)是正確的? 回答正確SELECT * FROM player, teamSELECT playr_id, player . team_id, playr_nam,height,七am_nam FROM player, team WHERE player.team_id = team.team_idSELECT p.player_name, p.height, h.height_levelFROM playr AS p, height_grades AS hWHERE p.heigh

15、t BETWEEN h.height_lowest AND h.height_highestSELECT * FROM player LEFT JOIN team on player.team_id = tamtam_id 正確選項(xiàng)A考點(diǎn)數(shù)據(jù)庫(kù)-SQL解析B選項(xiàng)用于兩張表的等值連接就是用兩張表中都存在的列進(jìn)行連接。也可以對(duì)多張表進(jìn)行 等值連接;C選項(xiàng)用于進(jìn)行多表查詢的時(shí)候,如果連接多個(gè)表的條件是等號(hào)時(shí),就是等值 連接,其他的運(yùn)算符連接就是非等值查詢;D選項(xiàng)用于除了查詢滿足條件的記錄以外,外 連接還可以查詢某一方不滿足條件的記錄。兩張表的外連接,會(huì)有一張是主表,另一張是從 表。如果是多張表的外連

16、接,那么第一張表是主表,即顯示全部的行,而第剩下的表則顯示 對(duì)應(yīng)連接的信息,綜上所述,答案為Ao單選題這是一段考查位運(yùn)算的測(cè)試代碼,以下執(zhí)行結(jié)果中哪一項(xiàng)是正確的?public class MarkTest public static void main(String L args) int x = 1;int y = x;System.out.printin(y);)回答正確1-20_ 1正確選項(xiàng)B考占Q八、基礎(chǔ)工具-Linux解析假設(shè)int占2個(gè)字節(jié),那么1的二進(jìn)制表示是0000 0001 , 表示按位取反,則 0000 0001變?yōu)?111 1110,在計(jì)算機(jī)中整數(shù)用補(bǔ)碼形式表示,正數(shù)的補(bǔ)

17、碼是它本身, 負(fù)數(shù)的補(bǔ)碼是原數(shù)值除符號(hào)位按位取反再加1,由補(bǔ)碼求原數(shù)值也是按位取反再加1,那 么1111 1110除符號(hào)位按位取反再加1變成1000 0010,即-2。故答案B正確。單選題小劉準(zhǔn)備執(zhí)行如下代碼:public class StackOvrflowErrorDmo public static void main(String args) javaKeeper();)private static void j avaKeeper() j avaKeeper();)執(zhí)行后他發(fā)現(xiàn)代碼拋出異常,以下異常中,哪一項(xiàng)是該代碼拋出的? 回答正確A.java.lang.OutOfMemoryErr

18、or: Java heap spaceB.java.lang.OutOfMemoryError: unable to create new native threadC.java.lang.OutOfMemoryError: Out of swap spaceD.j ava ,lang.StackOverflowError正確選項(xiàng)D考占-J 八、Java 高級(jí)-JVM解析JVM虛擬機(jī)棧是有深度的,在執(zhí)行方法的時(shí)候會(huì)伴隨著入棧和出棧,上邊的方法可以看到, main方法執(zhí)行后不停的遞歸,遲早把棧撐爆了,所以會(huì)拋出java.lang.StackOverflowError, 答案為 D。單選題關(guān)于下面

19、這段代碼,以下哪一項(xiàng)的執(zhí)行結(jié)果是正確的?public class IntegerTest public static void main(String args) Integer a = 10;Integer b = 10;Integer c = 129;Integer d = 129;System.out.printIn(a = b);System.out.printin(c = d);)回答正確A.true trueB.false falseC.true falseD.false true正確選項(xiàng)c考占V八、Java基礎(chǔ)-編程基礎(chǔ)解析int是基本數(shù)據(jù)類型,interger是int的封裝類,

20、int默認(rèn)值為0 ,而interger默認(rèn)值 為null, Interger使用需要判空處理,Integer的緩存機(jī)制是:為了節(jié)省內(nèi)存和提高性 能,Integer類在內(nèi)部通過(guò)使用相同的對(duì)象引用實(shí)現(xiàn)緩存和重用,Integer類默認(rèn)在-128 z 127之間,可以通過(guò)-XX:AutoBoxCacheMax進(jìn)行修改,且這種機(jī)制僅在自動(dòng)裝箱 的時(shí)候有用,在使用構(gòu)造器創(chuàng)建Integer對(duì)象時(shí)無(wú)用。所以通過(guò)分析可知。當(dāng)d和b小 于128時(shí),他們的引用相同,所以第一個(gè)是true。第二個(gè)大于128以后內(nèi)存地址引用 不同,所以是false,那么答案應(yīng)該是Co單選題下面關(guān)于Java單元測(cè)試的說(shuō)法,哪一項(xiàng)是錯(cuò)誤的?

21、回答正確JUnit的Test依附在public void方法,可以作為一個(gè)測(cè)試案例JUnit的Before依附的方法全局只會(huì)執(zhí)行一次,而且是第一個(gè)運(yùn)行JUnit的After依附的方法在測(cè)試方法運(yùn)行之后運(yùn)行采用Mockito框架虛擬出一個(gè)單元測(cè)試的外部依賴,通過(guò)只注重測(cè)試代碼的流程與結(jié)果, 真正地實(shí)現(xiàn)測(cè)試目的正確選項(xiàng)B考占J八、Java基礎(chǔ)-編程基礎(chǔ)解析Before:方法之前運(yùn)行一次,不是只能全局執(zhí)行一次,所以B錯(cuò)誤。BeforeClass:測(cè)試類所有方法之前運(yùn)行一次,所以答案B應(yīng)該是用BeforeClass才 對(duì)。單選題關(guān)于Spring事務(wù),以下哪個(gè)說(shuō)法是錯(cuò)誤的?回答正確private方法是不

22、會(huì)被Spring代理的,因此是不會(huì)有事務(wù)產(chǎn)生的當(dāng)前類調(diào)用的內(nèi)部調(diào)用。在內(nèi)部被調(diào)用方法上加Transactional(rollbackFor = Exception.class),這個(gè)是不生效的事務(wù)方法異常被catch住,事務(wù)不生效在調(diào)用方法上添加Transactional,但是方法拋出了 lOException,事務(wù)會(huì)回滾正確選項(xiàng)D考占J八、框架-Spring基礎(chǔ)解析Transactional沒(méi)有指定回滾異常,這個(gè)時(shí)候默認(rèn)的回滾異常是RuntimeException , 如果出現(xiàn)其他異常那么就不會(huì)回滾事物,lOException沒(méi)有繼承RuntimeException。 綜上所述,答案選擇Do

23、單選題在異常處理中,如釋放資源,關(guān)閉數(shù)據(jù)庫(kù)、關(guān)閉文件,應(yīng)由以下哪一項(xiàng)語(yǔ)句完成? 回答正確try子句catch子句finally 子句throw子句正確選項(xiàng)C考占P八、Java基礎(chǔ)-異常處理解析選項(xiàng)A中,try用來(lái)執(zhí)行正常的程序,該程序可能發(fā)生異常。選項(xiàng)B中,catch捕捉try 代碼塊中的異常,并進(jìn)行處理操作。選項(xiàng)C中,finally無(wú)論如果最終都將執(zhí)行的代碼, 一般用來(lái)關(guān)閉資源的消耗。選項(xiàng)D中,throw在方法體中拋出異常對(duì)象。綜上所述,本 題選Co單選題在Linux系統(tǒng)下,我們?cè)诓榭磧?nèi)存使用情況時(shí),經(jīng)常會(huì)使用到free命令,其中我們經(jīng)常 觀察buffer/cache的值,關(guān)于其代表的含義,

24、以下哪一項(xiàng)是正確的?回答錯(cuò)誤buff/cache = Buffers + Cachedbuff/cache = Buffers + Cached + SReclaimablec.buff/cache = total - used - freeD.buff/cache = total - used - available正確選項(xiàng)B考占J 八、基礎(chǔ)工具-Linux解析使用free命令時(shí),可以觀察到該命令的視角,內(nèi)存分為total、used、free、buff/cache、 available,五個(gè)組成部分,這里的buff/cache除了包含常規(guī)意義上的Buffers + Cached部分外還包含了

25、一個(gè)我們極容易忽略的部分SReclaimable。buff/cache的功 能主要強(qiáng)調(diào)那些能被回收的,而其中SReclaimable是指可以被回收的內(nèi)核內(nèi)存,由于被 內(nèi)核管理,所以在設(shè)計(jì)應(yīng)用程序占用內(nèi)存、以及計(jì)算當(dāng)前系統(tǒng)還有哪些內(nèi)存可以使用時(shí),由 于內(nèi)存是動(dòng)態(tài)變化的,極容易錯(cuò)誤估計(jì)是否內(nèi)存大小,產(chǎn)生00M問(wèn)題。單選題以下函數(shù)中,哪一項(xiàng)不是聚集函數(shù)?回答正確countmaxsumhaving正確選項(xiàng)D考占J 八、數(shù)據(jù)庫(kù)-SQL解析A選項(xiàng)是用于統(tǒng)計(jì)總行數(shù),屬于聚集函數(shù);B選項(xiàng)是用于求列中的最大值,也屬于聚集函 數(shù);C選項(xiàng)是用于求列中數(shù)字的和,也屬于聚集函數(shù);D選項(xiàng)不屬于聚集函數(shù),having主 要

26、用于數(shù)據(jù)分組,綜上所述,答案為Do單選題如下是一段SELECT語(yǔ)句:SELECT aa,bb FROM cc WHERE dd GROUP BY ee;以下該語(yǔ)句執(zhí)行順序中,哪一項(xiàng)是正確的?以下為 HashMap、Hashtable、LinkedHashMap 和 TreeMap 的相關(guān)概念:l.HashMap是最常用的Map,它根據(jù)鍵的HashCode值存儲(chǔ)數(shù)據(jù),根據(jù)鍵可以直接獲 取它的值,具有很快的訪問(wèn)速度,遍歷時(shí),取得數(shù)據(jù)的順序是完全隨機(jī)的。因?yàn)殒I對(duì)象不可 以重復(fù),所以HashMap最多只允許一條記錄的鍵為Null,允許多條記錄的值為Null, 是非同步的。.Hashtable與Hash

27、Map類似,是HashMap的線程安全版,它支持線程的同步,即 任一時(shí)刻只有一個(gè)線程能寫(xiě)Hashtable,因此也導(dǎo)致了 Hashtale在寫(xiě)入時(shí)會(huì)比較慢,它 繼承自Dictionary類,不同的是它不允許記錄的鍵或者值為null,同時(shí)效率較低。.LinkedHashMap保存了記錄的插入順序,在用Iteraor遍歷LinkedHashMap時(shí), 先得到的記錄肯定是先插入的,在遍歷的時(shí)候會(huì)比HashMap慢,有HashMap的全部 特性。.TreeMap實(shí)現(xiàn)SortMap接口,能夠把它保存的記錄根據(jù)鍵排序,默認(rèn)是按鍵值的升序 排序(自然順序),也可以指定排序的比較器,當(dāng)用Iterator遍歷T

28、reeMap時(shí),得至U 的記錄是排過(guò)序的,不允許key值為空,非同步的。由此可知,B的表述有誤,故答案為Bo單選題關(guān)于SQL語(yǔ)句的優(yōu)化,以下哪一項(xiàng)說(shuō)法是錯(cuò)誤的? 回答正確類似分頁(yè)功能的SQL,建議先用主鍵關(guān)聯(lián),然后返回結(jié)果集,效率會(huì)高很多通常情況下,join的性能比較差,建議改造成子查詢寫(xiě)法多表聯(lián)接查詢時(shí),關(guān)聯(lián)字段類型盡量一致,并且都要有索引盡可能不使用TEXT/BLOB類型,確實(shí)需要的話,建議拆分到子表中,不要和主表放在一 起,避免SELECT*的時(shí)候讀取數(shù)據(jù)性能太差 正確選項(xiàng)B考點(diǎn)數(shù)據(jù)庫(kù)-SQL 解析通常情況下,子查詢的性能比較差,建議改造成join寫(xiě)法,所以選擇Bo單選題在海量用戶的應(yīng)用

29、開(kāi)發(fā)和運(yùn)維工作中,發(fā)現(xiàn)某個(gè)服務(wù)器經(jīng)常出現(xiàn)內(nèi)存不足的報(bào)警,經(jīng)分析服 務(wù)器為頻繁10操作并有大量?jī)?nèi)存是緩存,于是某系統(tǒng)管理員采取了兩項(xiàng)措施緩解內(nèi)存不 足:措施一:建立一個(gè)新的swap分區(qū),并開(kāi)啟swap措施二:每隔 5 分鐘,定時(shí)運(yùn)行 echo 3 /proc/sys/vm/drop_caches回答正確FROM WHERE GROUP BY SELECTWHERE FROM GROUP BY SELECTc.SELECT FROM WHERE GROUP BYD.FROM WHERE SELECT GROUP BY正確選項(xiàng)A考點(diǎn)數(shù)據(jù)庫(kù)-SQL解析SELECT語(yǔ)句的標(biāo)準(zhǔn)執(zhí)行順序?yàn)椋篎ROM WHE

30、RE GROUP BY SELECT,故A選項(xiàng)正 確。單選題如下是一段線程的運(yùn)行代碼,以下輸出的結(jié)果中,哪一項(xiàng)是正確的?public class Counter public volatile static int volatileCount = C;static Atomic工ntgar atomicCount=new Atomiclnteger();public static void inc () try (Thread.sleep(5); catch (InterruptedException e) )volatileCount+;atomicCount.incrementAndGet

31、();)public static void main (String args) throws InterruptedException (final CountDownLatch latch = new CountDownLatch(1000);/同時(shí)啟動(dòng)1000個(gè)線程,去進(jìn)行i + +計(jì)算,看看實(shí)際結(jié)果 for (int i = 0; i 680K(54784K)2908K-688K(180736K)r 0.0314018 secs Times: user=0.00 sys=0.00z real=0.07 secsFi 1 1 GC (System . gc () ) PSYoungGe

32、n : 6fiOK-9K (547S4K) ParOl dGen : 8K-530K(125952K) 688K-530K(180736K), Metaspace:2656K-2656K(1056768K)r 0.0115257 secs Times: user=0.03 sys=0.00, real=0.01 secs以下關(guān)于這段日志的說(shuō)法中,哪一項(xiàng)是錯(cuò)誤的?回答正確GC日志開(kāi)頭的GC和Full GC說(shuō)明了這次垃圾收集的類型PSYoungGen和ParOldGen是指GC發(fā)生的區(qū)域,分別代表使用ParallelScavenge垃圾收集器的新生代和使用Parallel old垃圾收集器的老生代

33、PSYoungGen后面的2908K-680K(54784K)代表的是GC前Java堆已使用容量-GC后Java堆已使用容量(Java堆總?cè)萘?0.0314018 secs代表該內(nèi)存區(qū)域GC所占用的時(shí)間,單位是秒正確選項(xiàng)C考點(diǎn)Java 高級(jí)-JVM解析1.在方括號(hào)中PSYoungGen:后面的2908K-680K(54784K)代表的是GC前該內(nèi)存區(qū)域已使用的容量-GC后該內(nèi)存區(qū)域已使用的容量(該內(nèi)存區(qū)域總?cè)萘?2.在方括號(hào)之外的2908K-688K(180736K)代表的是GC前Java堆已使用容量-GC后Java堆已使用容量(Java堆總?cè)萘?綜上所述,答案為Co單選題如果你想要修改內(nèi)核參

34、數(shù),讓Linux支持更大的接收窗口,提高網(wǎng)絡(luò)性能,可以修改以下 哪個(gè)參數(shù)?回答錯(cuò)誤net . ipv4.tcp_window_scalingnet . ipv4.tcp_fastopennet . ipv4.tcpkeepalivetimenet . ipv4.tcp_slow_start_after_idle正確選項(xiàng)A考占J八、基礎(chǔ)工具-Linux解析net. ipv4 . tcp_fastopen是允許服務(wù)器和客戶端在連接建立握手階段開(kāi)始傳輸數(shù)據(jù),為服務(wù)器節(jié)省個(gè)RTT的時(shí)延;net. ipv4 . tcpkeepalivetime是開(kāi)啟tcp長(zhǎng)鏈接,用于在指定描述后沒(méi)有數(shù)據(jù)爆文傳輸時(shí),啟動(dòng)

35、探測(cè)報(bào)文; net. ipv4 . tcp_slow_start_af ter_idle 是提升 HTTP keepalive 連接的網(wǎng)絡(luò)性能;net. ipv4 . tcp_window_scaling能夠提高窗口的大小,獲得更好的傳輸性能,因此答案為Ao單選題如下是一段Java代碼,以下輸出的結(jié)果中,哪一項(xiàng)是正確的?public class Stringiest public static void main(StringM args) Stringsi=Hello;Strings2=nHellon;Strings3=nHeln + nloH;Strings4=nHeln + newStr

36、ing (Hlon);String s5 = new String (HHelloH);String s6 = ern();String s7 = nH;String s8 = ello;String s9 = s7 + s8;System.out.printin(si = s2);System.out.printIn(si = s3);System.out.printIn(si = s4);System.out.printin(si = s9);System.out.printIn(s4 = s5);System.out.printIn(si = s6);)回答正確A.truefalsefa

37、lsefalsefalsefalseB.true true false false false falsetruetruefalse false false truetrue true false true false true 正確選項(xiàng) C 考點(diǎn)Java基礎(chǔ)-編程基礎(chǔ)解析si在創(chuàng)建對(duì)象的同時(shí),在字符串池中也創(chuàng)建了其對(duì)象的引用。由于s2也是利用字面量創(chuàng) 建,所以會(huì)先去字符串池中尋找是否有相等的字符串,顯然si已經(jīng)幫他創(chuàng)建好了,它可 以直接使用其引用。那么si和s2所指向的都是同一個(gè)地址,所以sl =s2o S3是一 個(gè)字符串拼接操作,參與拼接的部分都是字面量,編譯器會(huì)進(jìn)行優(yōu)化,在編譯時(shí)S3就變

38、 成Hello了,所以sl =s3o s4雖然也是拼接,但、lo是通過(guò)new關(guān)鍵字創(chuàng)建的,在 編譯期無(wú)法知道它的地址,所以不能像S3 一樣優(yōu)化。所以必須要等到運(yùn)行時(shí)才能確定, 必然新對(duì)象的地址和前面的不同,同理,s9由兩個(gè)變量拼接,編譯期也不知道他們的具體 位置,不會(huì)做出優(yōu)化。s5是new出來(lái)的,在堆中的地址肯定和s4不同。s6利用intern() 方法得到了 s5在字符串池的引用,并不是s5本身的地址。由于它們?cè)谧址氐囊?都指向同一個(gè)Hello”對(duì)象,自然sl = =s6o綜上所述,答案為Co單選題由于業(yè)務(wù)延遲較大,為了優(yōu)化業(yè)務(wù)性能,所以手動(dòng)增大了 TCP發(fā)送緩沖區(qū)的最大值內(nèi)核參 數(shù),

39、但是優(yōu)化以后發(fā)現(xiàn)TCP發(fā)送緩沖區(qū)的最大值沒(méi)有生效,以下原因中,哪一項(xiàng)是最有可 能的?這兩項(xiàng)措施明顯改善了服務(wù)器內(nèi)存的高水位,那么從長(zhǎng)期運(yùn)行的角度來(lái)看,這兩種做法是否 對(duì)用戶體驗(yàn)也起到了優(yōu)化作用?回答正確起到了長(zhǎng)期優(yōu)化作用,通過(guò)降低內(nèi)存占用率,讓用戶可以使用更多的內(nèi)存空間使用swap起到了長(zhǎng)期優(yōu)化作用,因?yàn)閷?nèi)存交互到磁盤(pán)后,可以使用更多的內(nèi)存,但 echo 3 /proc/sys/vm/drop_caches 沒(méi)能夠有效釋放內(nèi)存使用swap不能起到優(yōu)化作用,因?yàn)橐M(jìn)行swap in操作會(huì)帶來(lái)更高的I。負(fù)載。echo 3 /proc/sys/vm/drop_caches起到了優(yōu)化作用,釋放了內(nèi)存

40、中長(zhǎng)期不被使用的文件 緩存swap短期內(nèi)能緩解內(nèi)存不足,但是長(zhǎng)期來(lái)看,換入換出時(shí)易導(dǎo)致10性能抖動(dòng),echo 3 /proc/sys/vm/drop_cdches臨時(shí)釋放內(nèi)存可以在系統(tǒng)自動(dòng)釋放前,更早的人為介入匿名 內(nèi)存的釋放工作,但是經(jīng)常手動(dòng)執(zhí)行,只會(huì)讓進(jìn)程訪問(wèn)緩存失效,更頻繁的訪問(wèn)磁盤(pán)會(huì)導(dǎo)致 用戶體驗(yàn)下降 正確選項(xiàng)D考占7八、基礎(chǔ)工具-Linux解析正如D選項(xiàng)描述的,swap在swap in/out , drop_caches在用戶頻繁訪問(wèn)熱點(diǎn)文件 時(shí),都會(huì)造成文件I/O的頻繁讀寫(xiě),造成10壓力增大,因此長(zhǎng)期運(yùn)行不會(huì)對(duì)用戶體驗(yàn)起 到優(yōu)化,反而會(huì)造成卡頓、系統(tǒng)毛刺等現(xiàn)象。單選題為了定位某臺(tái)服

41、務(wù)器可用內(nèi)存突然增大,是操作系統(tǒng)主動(dòng)釋放了內(nèi)存(例如:內(nèi)存緊張、00M等原因)還是人為使用echo控制選項(xiàng)/proc/sys/vm/drop_caches 釋放了內(nèi)存問(wèn)題,你可以觀察至ij /proc/vmstat 文件的變化,然后執(zhí)行以下命令:$ grep drop /proc/vmstatdrop_pagecache 3drop_slab 2你發(fā)現(xiàn)該文件的兩個(gè)選項(xiàng)drop_pagecache 、 drop_slab對(duì)應(yīng)的值不是0。以下通過(guò)這兩個(gè)內(nèi)存事件的關(guān)鍵參數(shù)得到的結(jié)論中,哪一項(xiàng)是正確的?回答正確A.回答錯(cuò)誤net. ipv4 . tcp_wmem 和 nt.ipv4.tcp_mem 需

42、要同時(shí)調(diào)整才能生效net. ipv4 . tcp_wmem由操作系統(tǒng)動(dòng)態(tài)調(diào)整,開(kāi)發(fā)者必須在應(yīng)用程序手動(dòng)設(shè)置最大和 最小發(fā)送緩存net. ipv4 . tcp_wmem 的 max 超過(guò)了 net. core . wmem_max , 系統(tǒng)以net. core . wmem_max值作為T(mén)CP發(fā)送緩沖區(qū)最大值net. core . wmem_max的值設(shè)置過(guò)大,超過(guò)了系統(tǒng)的內(nèi)存,導(dǎo)致其設(shè)置項(xiàng)不生效正確選項(xiàng)C考點(diǎn)基礎(chǔ)工具-Linux解析Linux的內(nèi)核參數(shù)往往受到多個(gè)參數(shù)之間的制約,net. ipv4 . tcp_wmem的max值就會(huì)受至U net. core . wmem_max 的影響, 旦

43、超過(guò) net. core . wmem_max 后,系統(tǒng)會(huì)以 net. core . wmem_max 值作為 TCP 發(fā) 送緩沖區(qū)最大值,因此答案為Co單選題為了研究某一程序是否會(huì)存在內(nèi)存泄露,使用了 strace來(lái)分析該命令的執(zhí)行過(guò)程,結(jié)果 如下:$ strace cat /etc/passwdexecve (n/usr/bin/catHf catnr n/etc/passwdnr 0 x7ffdffdad2e8 /* 24 vars */) = 0brk(NULL)= 0 x555dd7706000 mmap(NULL, 40915, PROT_READ, MAP_PRTVATE, 3,

44、 0) = 0 x7f9df16f5000munmap(0 x7f9df16f5000 z 40915)= 0brk(0 x555dd7727000)= 0 x555dd7727000 close (2)exit group (0)+ exited with 0 +通過(guò)對(duì)該程序的分析可知,以下對(duì)該程序使用地址空間描述中,哪一項(xiàng)是不正確的? 回答正確該程序是用了 mmap(2)和munmapd(2),所以在進(jìn)程虛擬地址空間通過(guò)Memory Mapping Region (內(nèi)存映射區(qū))方式修改了進(jìn)程的地址空間(address space)該程序是用了 brk(2),所以在進(jìn)程虛擬地址空間通過(guò)hea

45、p(堆)方式修改了進(jìn)程的地址空 間(address space)該程序是用了 brk(2),所以在進(jìn)程虛擬地址空間通過(guò)stack(棧)方式修改了進(jìn)程的地址 空間(address space)該程序使用了 Paging (分頁(yè))來(lái)轉(zhuǎn)換虛擬地址為物理地址,實(shí)現(xiàn)了應(yīng)用程序到虛擬地址再 到物理地址的訪問(wèn)正確選項(xiàng)C考占Z7 八、基礎(chǔ)工具-Linux解析進(jìn)程直接讀寫(xiě)的都是虛擬地址,虛擬地址最終會(huì)通過(guò)內(nèi)核的Paging (分頁(yè))功能來(lái)轉(zhuǎn)換 為物理內(nèi)存的地址;虛擬地址根據(jù)應(yīng)用程序調(diào)用的函數(shù),有不同的劃分,其中brk(2)和 sbrk(2)修改的是 heap(堆),而 mmap(2)和 munmap(2)修改的

46、是 Memory Mapping Region (內(nèi)存映射區(qū)),因此正確答案為C。多選題在分布式系統(tǒng)的架構(gòu)下,網(wǎng)絡(luò)存儲(chǔ)技術(shù)可以讓?xiě)?yīng)用與物理服務(wù)器解耦,提升靈活性和可運(yùn)維 性,以下關(guān)于分布式存儲(chǔ)技術(shù)的描述中,哪些是正確的? 回答錯(cuò)誤10密集型的應(yīng)用不應(yīng)該考慮使用NFS技術(shù),因?yàn)镹FS會(huì)損失一定10性能分布式系統(tǒng)設(shè)計(jì)應(yīng)優(yōu)先使用對(duì)象存儲(chǔ)技術(shù)(Object Storage),而不是塊存儲(chǔ)技術(shù)(Block Storage),因?yàn)閷?duì)象存儲(chǔ)維護(hù)成本更低、擴(kuò)展性更強(qiáng)搭建分布式存儲(chǔ)系統(tǒng)使用的物理服務(wù)器,一般不需要考慮磁盤(pán)RAID相比軟件分布式存儲(chǔ),商業(yè)硬件存儲(chǔ)產(chǎn)品可靠性更高,因此在生產(chǎn)環(huán)境一般不使用軟件分布 式

47、存儲(chǔ)正確選項(xiàng)A、B、C考占V八、分布式架構(gòu)-存儲(chǔ)解析選項(xiàng)A中,NFS會(huì)損失一定10性能;選項(xiàng)B中,分布式系統(tǒng)設(shè)計(jì)應(yīng)優(yōu)先使用對(duì)象存 儲(chǔ)技術(shù)(ObjectStorage);選項(xiàng)C中,分布式存儲(chǔ)系統(tǒng)從軟件層面解決了數(shù)據(jù)多副本的 跨服務(wù)器冗余,一般不需要做磁盤(pán)RAID,故A、B、C的描述正確;選項(xiàng)D中,商業(yè)存 儲(chǔ)產(chǎn)品價(jià)格高,生產(chǎn)環(huán)境大規(guī)模使用軟件分布式存儲(chǔ)案例已經(jīng)很多,所以D的描述不正確, 因此答案為ABCo多選題在系統(tǒng)設(shè)計(jì)中,可以通過(guò)哪些設(shè)計(jì)模式降低資源使用率? 回答錯(cuò)誤A.prototype B.abstract factoryC.singleton D.flyweight漏選正確選項(xiàng)C、D考點(diǎn)框

48、架-設(shè)計(jì)模式解析單例模式肯定降低了資源使用率,保證該類的實(shí)例永遠(yuǎn)只有一個(gè),原型模式適用于在初始化 信息不發(fā)生變換的情況,克隆的方法比較適合,主要的目的是避免重新初始化對(duì)象,如果后 面需要對(duì)新對(duì)象進(jìn)行,還需要區(qū)分深拷貝和淺拷貝。無(wú)論是深拷貝還是淺拷貝只是復(fù)制了資 源,并沒(méi)有降低資源使用率。享元模式(Flyweight):基于共享技術(shù)用于把一些共同的信 息(或模塊)抽象出來(lái),避免了大量相類似的開(kāi)銷(xiāo),也降低了資源的使用率,所以答案C和 D是符合要求的。多選題以下場(chǎng)景中,哪些會(huì)存在索引失效的情況? 回答錯(cuò)誤A.a = 1漏選B.a like 1%a fa 1漏選a = 1 or b = 2正確選項(xiàng)A、

49、 B、 C、 D坐上考點(diǎn)數(shù)據(jù)庫(kù)-SQL解析在選擇度比較低的時(shí)候,選項(xiàng)A和選項(xiàng)C都可能存在失效的場(chǎng)景;選項(xiàng)B在左模糊不 適用于B+樹(shù)索引所以導(dǎo)致失效;選項(xiàng)D在條件之中,兩個(gè)字段在只有一個(gè)字段有索引 的情況下,索引沒(méi)失效。多選題以下關(guān)于Java的引用類型的描述,哪些說(shuō)法是正確的?回答錯(cuò)誤如果一個(gè)對(duì)象是強(qiáng)引用,它就會(huì)一直存在于內(nèi)存中如果一個(gè)對(duì)象只具有軟引用,則內(nèi)存空間足夠,垃圾回收器就不會(huì)回收它;如果內(nèi)存空間不 足了,就會(huì)回收這些對(duì)象的內(nèi)存漏選在GC時(shí),不論內(nèi)存是否充足,當(dāng)發(fā)現(xiàn)了只具有弱引用的對(duì)象,都會(huì)回收它的空間 漏選如果一個(gè)對(duì)象僅持有虛引用,那么它在任何時(shí)候都可能被垃圾回收器回收正確選項(xiàng)B、 C

50、 D考點(diǎn)Java基礎(chǔ)-面向?qū)ο缶幊探馕鲆唬簭?qiáng)引用只要強(qiáng)引用存在,垃圾回收器將永遠(yuǎn)不會(huì)回收被引用的對(duì)象,哪怕內(nèi)存不足時(shí),JVM也會(huì) 直接拋出OutOfMemoryError,不會(huì)去回收。如果想中斷強(qiáng)引用與對(duì)象之間的聯(lián)系,可以 顯示的將強(qiáng)引用賦值為null,這樣一來(lái),JVM就可以適時(shí)的回收對(duì)象了。二:軟引用軟引用是用來(lái)描述一些非必需但仍有用的對(duì)象。在內(nèi)存足夠的時(shí)候,軟引用對(duì)象不會(huì)被回收, 只有在內(nèi)存不足時(shí),系統(tǒng)則會(huì)回收軟引用對(duì)象,如果回收了軟引用對(duì)象之后仍然沒(méi)有足夠的 內(nèi)存,才會(huì)拋出內(nèi)存溢出異常。這種特性常常被用來(lái)實(shí)現(xiàn)緩存技術(shù),比如網(wǎng)頁(yè)緩存,圖片緩 存等。在 JDK1.2 之后,用 ja va.

51、la ng. ref. SoftReference 類來(lái)表示軟引用。三:弱引用弱引用的引用強(qiáng)度比軟引用要更弱一些,無(wú)論內(nèi)存是否足夠,只要JVM開(kāi)始進(jìn)行垃圾回收, 那些被弱引用關(guān)聯(lián)的對(duì)象都會(huì)被回收。在JDK1.2之后,用 java.lang.ref.WeakReference 來(lái)表示弱弓【用。四:虛引用虛引用是最弱的一種引用關(guān)系,如果一個(gè)對(duì)象僅持有虛引用,那么它就和沒(méi)有任何引用一樣, 它隨時(shí)可能會(huì)被回收,在JDK1.2之后,用PhantomReference類來(lái)表示,通過(guò)查看這 個(gè)類的源碼,發(fā)現(xiàn)它只有一個(gè)構(gòu)造函數(shù)和一個(gè)get()方法,而且它的get()方法僅僅是返 回一個(gè)null,也就是說(shuō)將永遠(yuǎn)

52、無(wú)法通過(guò)虛引用來(lái)獲取對(duì)象,虛引用必須要和 ReferenceQueue引用隊(duì)列一起使用。綜上所述,答案為ABCDo有用戶剛剛執(zhí)行過(guò) echo 1 /proc/sys/vm/drop_caches有用戶剛剛執(zhí)行過(guò) echo 3 /proc/sys/vm/drop_caches有用戶剛剛執(zhí)行過(guò) echo 2 /proc/sys/vm/drop_caches用戶曾經(jīng)使用過(guò)echo 控制選項(xiàng) /proc/sys/vm/drop_caches ,但無(wú)法根據(jù)此事件判斷當(dāng)前內(nèi)存空間增大,是用戶手工執(zhí)行該指令還是操作系統(tǒng)主動(dòng)是否內(nèi)存造 成的正確選項(xiàng)D考點(diǎn)基礎(chǔ)工具-Linux解析首先drop_caches是一種

53、內(nèi)存事件,內(nèi)核會(huì)在/proc/vmstat中來(lái)記錄這一事件,上面兩個(gè)參數(shù)中,echo 1會(huì)導(dǎo)致drop_pagecache增加,echo 2會(huì)導(dǎo)致 drop_slab 增力口, echo 3 會(huì)導(dǎo)致 drop_pagecache 和 drop_slab 同時(shí)增加。但是要注意的是,該值表示上一次重啟操作系統(tǒng)之后運(yùn)行次數(shù)的累加,因此在沒(méi)有將 此參數(shù)進(jìn)行實(shí)時(shí)監(jiān)控時(shí),無(wú)法確定用戶何時(shí)執(zhí)行了 echo指令,只能確定用戶執(zhí)行過(guò)該操 作,因此答案為Do單選題Linux內(nèi)核為了保障高優(yōu)先級(jí)的任務(wù)運(yùn)行,設(shè)置了不同的任務(wù)調(diào)度器,內(nèi)核會(huì)優(yōu)先從哪個(gè) 調(diào)度器中選擇任務(wù)執(zhí)行? 回答錯(cuò)誤CFS調(diào)度器RT調(diào)度器Deadlin

54、e調(diào)度器FIFO調(diào)度器正確選項(xiàng)C考點(diǎn)基礎(chǔ)工具-Linux解析每個(gè)CPU都有自己的運(yùn)行隊(duì)列,每個(gè)需要運(yùn)行的線程必須要先加入到這些隊(duì)列才能運(yùn)行。 隊(duì)列的調(diào)度器優(yōu)先級(jí)從高到低依次為Deadline, RT(RealTime)、CFS(Fair),因此答案 為Co單選題很多時(shí)候我們會(huì)依賴于SELECT的執(zhí)行順序來(lái)判斷查詢是否會(huì)返回我們希望的數(shù)據(jù),以下 SELECT執(zhí)行的順序中,哪一項(xiàng)是正確的?回答正確FROM WHERE GROUP BY HAVING SELECT 的字段 DISTINCT ORDER BY LIMITSELECT 的字段 FROM WHERE GROUP BY HAVING DIS

55、TINCT ORDER BY LIMITFROM WHERE SELECT 的字段 GROUP BY HAVING DISTINCT ORDER BY LIMITFROM WHERE HAVING SELECT 的字段 GROUP BY DISTINCT ORDER BY LIMIT正確選項(xiàng)A考占J八、數(shù)據(jù)庫(kù)-SQL解析SELECT語(yǔ)句的執(zhí)行順序是很重要的一個(gè)點(diǎn),我們可以從執(zhí)行順序上來(lái)推斷一個(gè)SQL會(huì) 發(fā)生什么,從而理解我們的查詢能夠得到什么結(jié)果。正確的執(zhí)行順序是FROM WHERE GROUP BY HAVING SELECT 的字段 DISTINCT ORDER BY LIMIT,所 以選

56、Ao單選題如下是一段Java代碼,以下輸出的結(jié)果中,哪一項(xiàng)是正確的?public class ExceptionTest public int testExceptionReturn() int i = 1;try (i + + ;int x = i / 0; catch (Exception e) i+;return i; finally i + +;)return i;)public static void main(String args) ExceptionTest exceptionTest = new ExceptionTest();int testReturn3 = exceptionTest.testExcept

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論