java初級工程師面試題答案解析_第1頁
java初級工程師面試題答案解析_第2頁
java初級工程師面試題答案解析_第3頁
java初級工程師面試題答案解析_第4頁
java初級工程師面試題答案解析_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單選題下面是一段考查Java序列化知識的測試代碼:public class Person implements Serializable private transient int age;private String name; private String sex;/ 省略 get setpublic static void main(String args) throws Exception serializePerson();Person p = deserializePerson();System.out.printin(p.getName()+”;+p getAge(); )pri

2、vate static void serializePerson () throws FileNotFoundException, lOException Person person = new Person();prson . stName (測試實例”);person.setAge(25);person.setSex(nmalen);ObjectOutputStream oo = new ObjectOutputstream(new FileOutputStream(nw File(n/xxx/data.txtn);oo.writeObject(person);oo close (); )

3、private static Person dsrializPrson () throws 工OExcption, Exception ObjectInputStream ois = new Objectinputstream(new FileInputStream(new File(H/xxx/data.txt);Person person = (Person) ois.readobject(); return person; ) )執行上述代碼并輸出相關結果,執行完成后,添加salary的int屬性和getset方法, 然后只執行deserializePerson方法,輸出相關結果。根據以

4、上操作,以下哪一項中的執 行結果是正確的? 回答正確載,-n用于查看網絡相關統計信息,而PSI (Pressure-Stall Information)信息可以用來查看Page Cache產生壓力情況,因此答案為C。單選題在異常處理中,如釋放資源,關閉數據庫、關閉文件,應由以下哪一項語句完成? 回答正確try子句catch子句finally 子句throw子句正確選項C點Java基礎-異常處理解析選項A中,try用來執行正常的程序,該程序可能發生異常。選項B中,catch捕捉try 代碼塊中的異常,并進行處理操作。選項C中,finally無論如果最終都將執行的代碼, 一般用來關閉資源的消耗。選

5、項D中,throw在方法體中拋出異常對象。綜上所述,本 題選Co單選題以下哪種情況不會對業務線程造成性能影響?回答錯誤關閉系統的軟中斷軟中斷的執行時間太長軟中斷函數在ksoftirqd里執行將基于CPU的網卡多隊列改為硬件網卡的硬件多隊列 正確選項D*士考點基礎工具-Linux解析硬中斷、軟中斷、ksoftirqd內核線程都會對用戶線程帶來一定的延遲,而D選項能夠將 處理網卡隊列的CPU資源改為網卡的硬件資源,因此答案為Do單選題在討論數據庫鎖的時候,我們會有樂觀鎖和悲觀鎖的說法,以下關于兩者的說法中,哪一項 是不正確的?回答錯誤悲觀鎖是指總是假設最壞的情況,每次訪問數據都加鎖傳統的數據庫鎖,

6、大多數都是悲觀鎖,例如行鎖、表鎖都是悲觀鎖樂觀鎖總是假設最好的情況,只有在沖突的時候才會加鎖悲觀鎖都是排他鎖正確選項D考占Q八、數據庫-MySQL解析悲觀鎖和樂觀鎖是一個常考的點。但是悲觀鎖、樂觀鎖和是否排他沒有關系,它們是兩個維 度上的事情。一般來說,我們會優先考慮使用樂觀鎖,以獲得更好的性能,故答案為Do單選題以下哪種情況不會導致TCP重傳?回答錯誤TCP數據包在傳輸過程中被第三方篡改后被服務端接收TCP數據包再網絡傳輸過程中,因為路由變化導致的亂序接收端的ACK包在未到達發送端之前,在某個交換機上排隊數據包在傳輸過程發送錯誤,被接收端丟棄正確選項A考點基礎工具-Linux解析引發TCP重

7、傳,主要有兩大類問題,一個是丟包、一個是擁塞。丟包是指接收端將數據包 丟棄,擁塞是指發送端和接收端中某個設備或鏈路導致數據包排隊造成超時。因此只有A 選項被服務器接收,不屬于這兩大類問題,所以答案為Ao單選題分析進程的內存泄漏原因,是有一定的步驟的,那么以下定位一個業務進程內存泄漏的基本 步驟,哪一項的順序是正確的?通過/proc/PID, /proc/meminfo等虛擬文件系統,得知該進程造成的更具體的資源 開銷數據通過top、pidstat等命令,觀察該進程哪個地址空間被消耗資源顯著增大,以及隨著 時間變化逐漸增大通過簡單的模擬程序,復現問題使用strace、systemtap或stra

8、cepoint等工具定位申請、釋放內存的關鍵調用,分 析程序行為回答錯誤正確選項D考點基礎工具-Linux解析分析內存泄漏的一般步驟要遵循逐步細化,校驗改進的方式進行,因此首先應該從整體內存 中,分析出內存的哪一部分出現內存泄漏問題,再逐步細化到系統/庫函數調用,定位出 現問題的代碼位置。由于業務程序多伴有邏輯復雜的特點,因此需要剔除業務邏輯,復現內 存泄漏的邏輯。多半采用編寫模擬程序復現問題,最后再進行代碼bug的修復,以及再次 觀察問題是否解決的通用解決步驟,因此正確的分析步驟應該為Do單選題以下關于Java中枚舉的說法中,哪一項是錯誤的?回答正確枚舉不允許繼承類,JVM在生成枚舉時已經繼

9、承了 Enum類,由于Java語言是單繼承, 不支持再繼承額外的類枚舉可以用等號比較,JVM會為每個枚舉實例對應生成一個類對象,這個類對象是用public static final修飾的,在static代碼塊中初始化,是一個單例枚舉不可以繼承枚舉,JVM在生成枚舉類時,將它聲明為final枚舉的valueOf方法傳入不存在的枚舉名稱時,會返回null正確選項D考占J八、Java基礎-面向對象編程解析valueOf在傳入不存在的枚舉名稱時,會直接拋出異常,不返回null,所以答案為D。單選題當你已經得知pread(2)系統調用在業務中調用耗時過長,后續應該采用哪個工具分析根 因更適合? 回答錯誤

10、straceftracegdbptrace正確選項B考點基礎工具-Linux解析strace的原理是發生系統調用后產生SIGTRAP信號,而已經確定pread系統調用問題, strace無法繼續追蹤內核層的原因;gdb用于代碼跟蹤;ptrace是系統調用,它能夠讓 父進程觀察子進程的執行過程。因此只有B選項能夠追蹤pread(2)在哪里耗費了這么 長的時間。單選題以下哪個操作不會使Page Cache占用內存的水位上升? 回答錯誤swap inswap out向/dev/shm文件夾里寫入數據打開一個文件并嘗試讀取文件的內容正確選項B考占V八、基礎工具-Linux解析開啟swap分區后,swa

11、p out操作可以將匿名內存換出到磁盤,釋放內存空間讓內存水 位下降。swap in操作是將硬盤上的匿名頁換回內存。而/dev/shm使用是tmpfs,寫 入數據會導致內存占用增加,打開文件會經由vfs產生緩存,同樣會導致內存水位上升, 因此答案為Bo單選題以下語句中,哪一項不是DDL語句?回答正確CREATE DATABASE nba;CREATE TABLE play工 (player_id int(11) NOT NULL AUTO_工NCREMENT, player_name varchar (2 55) NOT NULL);ALTER TABLE player ADD (age in

12、t (11);select * from nba;正確選項D考點數據庫-SQL解析選項A用于創建一個名為nba的數據庫,屬于DDL;選項B用于創建一個建一個球員表,表名為player,里面有兩個字段,一個是player_id ,它是int類型,另一個player_name字段是varchar(255)類型,屬于DDL;選項C是在nba表中添加一個age字段,類型為int(ll),也屬于DDL;而選項D是一個數據庫查詢語句, 所以答案為Do單選題以下關于Druid數據源配置熟悉的說法中,哪一項是錯誤的?回答正確validationQuery屬性用來檢測連接是否有效的sql,要求是一個查詢語句,常

13、用select*xvalidationQueryTimeout 屬性底層調用 jdbc Statement 對象的 void setTimeout(int seconds)方法testWhileldle屬性建議配置為true,不影響性能,并且保證安全性testOnBorrow屬性含義是申請連接時執行validationQuery檢測連接是否有效,做了 這個配置會降低性能 正確選項B考點框架-Spring基礎解析選項B中validationQueryTimeout調用的底層方法是Statement中的 setQueryTimeout方法,不是setTimeout方法,其他正確,所以答案為B。單選

14、題以下關于Mybatis的說法中,哪一項是錯誤的? 回答正確Mybatis中的DefaultSqISession作用是執行crud操作,不同線程之間可以互相使用Mybatis的緩存分為一級緩存和二級緩存Mybatis的全局配置文件中useGeneratedKeys默認值為falseMybatis中的SQLSessionFactory應該在應用運行期間都存在,不能頻繁銷毀和創建, 它是應用范圍級別 正確選項A考占P八、框架-Spring基礎解析DefaultSqISession是線程不安全的,不同線程之間不能共享使用,因此A的說法是錯 誤的,故答案為Ao單選題在以下選項中,哪個選項存取數據的速度

15、最快? 回答錯誤LI CacheSRAMDRAM寄存器正確選項D考點基礎工具-Linux解析CPU對自身以及存儲器的訪問速度是不同的,速度越快,容量越小。其中最快的是寄存器, 其次是SRAM即CPU的LI、L2、L3 Cache,之后是DRAM主內存,最后是磁盤。 因此訪問速度最快的是D選項。單選題為了解決Linux的數據同步的問題,以下選項引入的數據同步機制中,哪一項是有效的? 回答錯誤為了保證多個進程同時打開一個文件時,計數器變量能夠準確計數,可以使用一個原子類型 變量 atomic_t在代碼中使用volatile int *是為了讓編譯器對內存地址讀寫進行優化,同樣可以實現原 子操作為了

16、讓CPU支持中斷響應,經常會使用dowhile(0)表達式保證。中的代碼片段可以 循環執行,即使發生CPU中斷也不會影響代碼片段的執行順序自旋鎖會引起加鎖進程休眠,當自旋鎖被別的進程持有,加鎖進程定時被喚醒,查看是否該 自旋鎖的持有者已經釋放了鎖正確選項A考占J八、基礎工具-Linux解析選項B中,volatile int *是在編譯階段讓編譯器不要優化內存地址讀寫,每次必須強制 對內存讀寫;選項c中,dowhile(0)表達式會保證。中的代碼片段執行一次,保證 宏展開時這個代碼片段是一個整體;選項D中,自旋鎖不會引起加鎖進程休眠,如果自旋 鎖已經被別的進程持有,加鎖進程就需要一直循環在那里,

17、查看是否該自旋鎖的持有者已經 釋放了鎖,這也是自旋鎖的定義,綜上所述,只有選項A是有效的,所以答案為Ao單選題請看如下這段關于字符串初始化的測試代碼,以下哪一項的輸出結果是正確的?public class StringTest public static void main(String args) String si = new String (程序員”);String s2 = ern();String s3 = 程序員”;System.out.printin(si = s2);System.out.printin(s3 = s2);String strl = nstrn;String s

18、tr2 = ningH;String str3 = str” + ning;String str4 = strl + str2;String str5 = string;System.out.printIn(str3 = str4);System.out.printIn(str3 = str5);System.out.printIn(str4 = str5);) ) 回答正確A.false true falsetrue falseB.falsetruetrue falsetrue C.truetruefalsetruefalseD.falsefalsetruefalsefalse正確選項A考占

19、J八、Java基礎-編程基礎解析_System, out .printIn (si = s2) ; /false,因為一個是堆內存中的 String 對象 一個是常量池中的String對象System. out .printin (s3 = s2) ; /true,因為兩個都是常量池中的 String 對象String str3 = str + ingn ; / 常量:也中的對象String str4 = strl + str2; /在堆上創建的新的對象String str5 = string;/ 常量)也中的對象System.out.printIn(str3 = str4);/falseSy

20、stem.out.printin(str3 = str5);/trueSystem.out.printin(str4 = str5);/false單選題以下關于Java中抽象類和接口的說法中,哪一項是錯誤的?回答正確abstract修飾的類不能被實例化,必須被子類繼承,類只要有一個抽象方法就必定是抽象 類,但抽象類不一定要有抽象方法接口中不能有構造方法,抽象類中可以有,初始化抽象類的成員,可以被繼承它的子類使用一個類可以實現多個接口,同樣也可以繼承多個抽象類接口中的方法一定是抽象方法,所以不用abstract修飾正確選項C考點Java基礎-面向對象編程解析選項ABD均為正確表述,容易混淆的是選

21、項C, 一個類只能繼承一個其他的類,在Java 語言中禁止多重繼承,如果一個類繼承了兩個類,但是這兩個類中有相同的方法,那么子類 調用,無法確定應該調用哪個方法,因此選項C的說法是錯誤的,所以答案為Co單選題請看如下這段關于字符串初始化的測試代碼,以下哪一項的輸出結果是正確的?public class StringTest public static void main(String f args) String si = new String (程序員);String s2 = ern();String s3 = 程序員”;Systm.out.printin(si = s2);System.

22、out.printIn(s3 = s2);String strl=nstrn;String str2=ingH;String str3 = nstrn + ningn;String str4=strl +str2;String str5=string;Systm.out.printin(str3 = str4);System.out.printin(str3 = str5);System.out.printIn(str4 = str5);)回答正確A.falsetruefalsetruefalseB.falsetruetruefalsetrueC.測試實例;25測試實例;25測試實例;0測試實

23、例;0測試實例;25拋出異常測試實例;0拋出異常正確選項D考點Java基礎-編程基礎解析已經使用transient修飾過的對象是不能被序列化的,所以輸出為0。另外在序列化到硬 盤以后,新增加了屬性,而題目的代碼中沒有加serialVersionUID,所以反序列化失敗, 所以選擇Do相關定義:serialVersionUID常量:是指JVM在序列化對象的時候,會把這個常量表示 序列化對象所屬的類的類ID。在反序列化時,反序列化對象的serialVersionUID能匹配 上程序里面的類的serialVersionUID時,就判斷這個反序列化的對象就是這個類生成的, 因此允許反序列化。根據上面定

24、義。題目中由于沒有添加serialVersionUID相關屬性。所以在字段增加以后 反序列化出現異常,所以選D,其他結果不正確。單選題如下是一段關于字符集的代碼,以下輸出的結果中,哪一項是正確的?import j ava.io.UnsupportedEncodingException;public class EncodeTestpublic static void main(String args) throws UnsupportdEncociingExcption String str = na;String str2 = 中”;System.out.printIn(str.getByt

25、es(nUTF-8 ) .length);System.out.printin(str2.getBytes(nUTF-8).length);System.out.printin(str.getBytes(nUTF-16n).length);truetruefalsetruefalseD.falsefalsetruefalsefalse正確選項A考點Java基礎-編程基礎解析System. out .printIn (si = s2) ; /false,因為個是堆內存中的 String 對象 一個是常量池中的String對象System. out .printin (s3 = s2) ; /tr

26、ue,因為兩個都是常量池中的 String 對象String str3 = str + Hingn; / 常量7也中的對象String str4 = strl + str2; /在堆上創建的新的對象String str5 = string;/ 常量池中的對象System.out.printin(str3 = str4);/falseSystem.out.printIn(str3 = str5);/trueSystem.out.printIn(str4 = str5);/false綜合以上,本題選Ao單選題關于Java反射機制的描述,以下哪一項說法是錯誤的? 回答正確在運行時判斷對象所屬的類在運

27、行時判斷類所具有的成員變量和方法在運行時改變方法的實現在運行時調用一個對象的方法正確選項C考點Java基礎-編程基礎解析在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象, 都能夠調用它的任意一個方法和屬性;這種動態(在運行時)獲取類的信息以及動態調用對 象的方法的功能稱為Java語言的反射機制。簡單來說,就是Java對每一個類和類中的 所有成員都進行了封裝,這樣每個類都有一個與之對應的Class對象(編譯之后產生的 class對象),通過這個對象可以直接訪問類中的所有成員,因此C選項中改變方法的實 現是錯誤的。單選題下面關于 Spring Redis 中 Red

28、isTemplate 和 StringRedisTemplate 區別的說法中, 哪一項是錯誤的?回答正確StringRedisTemplate 繼承自 RedisTemplateStringRedisTemplate 默認使用 String 序列化方式,RedisTemplate 默認使用 jdk 自帶的序列化方式StringRedisTemplate和RedisTemplate兩者數據不互通,只能各自管理各自處理過 的數據,推薦使用StringRedisTemplateRedisTemplate是非線程安全的,需要每次使用的期間new 一個實例執行redis操作 正確選項D考占Q八、框架-

29、Spring基礎解析RedisTemplate是線程安全的,開箱即用,可以在多個實例中重復使用,所以答案為D。單選題以下關于Java監控命令的描述中,哪一項是錯誤的?回答正確jps -v輸出完全的包名,應用主類名,jar的完全路徑名j stat -gcutil pid是垃圾回收統計C.jmap -dump : live, f ormat=b, f ile=/home/dev pid 是 dump 存活的對象堆文件以特定的格式到指定的文件名D.在程序發生死鎖時可以用jstack -1 pid來觀察鎖持有情況正確選項A考占J 八、Java基礎-工具類解析jps主要用來輸出JVM進程狀態信息:-q不

30、輸出類名、Jar名和傳入main方法的參數;-m輸出傳入main方法的參數;-1輸出main類或Jar的全限名;-v輸出傳入JVM的參數。所以選項A中應為-I,故答案為Ao單選題為了監控內核臟頁回寫的開始和結束時間,以下哪個操作是必須執行的?cat /sys/kernel/debug/tracing/traceecho 1 /sys/kernel/debug/tracing/events/writeback/writeback_start/enableecho 1 /sys/kernel/debug/tracing/events/writeback/writeback_written/enab

31、leecho 1 /sys/kernel/debug/tracing/events/writeback/writeback_startecho 1 /sys/kernel/debug/tracing/events/writeback/writeback_written 回答錯誤 正確選項 B考占P八、基礎工具-Linux解析為了能夠觀察tracepoint,首先需要打開調試開關;選項中是開關的正確路徑,其 他內核參數會在/sys/kernel/debug/tracing/events下,以目錄方式存在,并在該目錄 下采用enable文件記錄開關的打開和關閉狀態。如果監控內核臟頁回寫的開始和結束

32、時 間,必須采用覆蓋模式()將對應路徑下的enable文件的值改寫為1,同時使用 文件來查看kernel tracer捕獲的開始和結束時間,因此正確答案為B。單選題下面關于Java單元測試的說法,哪一項是錯誤的?回答錯誤JUnit的Test依附在public void方法,可以作為一個測試案例JUnit的Before依附的方法全局只會執行一次,而且是第一個運行JUnit的After依附的方法在測試方法運行之后運行采用Mockito框架虛擬出一個單元測試的外部依賴,通過只注重測試代碼的流程與結果, 真正地實現測試目的正確選項B考點Java基礎-編程基礎解析Before:方法之前運行一次,不是只能

33、全局執行一次,所以B錯誤。BeforeClass:測試類所有方法之前運行一次,所以答案B應該是用BeforeClass才 對。單選題drop和truncate雖然從語義上來說很不一樣,但是當我們試圖清理一張表的所有數據的 時候,可以用truncate,也可以drop之后新建。那么關于這兩者在MySQL實現上的 不同點的描述,哪一項是錯誤的? 回答正確truncate 和 drop 都屬于 DDLtruncate和drop都是不可回滾操作truncate不僅僅把所有數據都刪除了,還把索引也刪除了兩者的速度都很快正確選項C考占V八、數據庫-MySQL解析兩者的核心區別就在于,truncate會保留

34、表結構,包含索引。這里的索引是指索引本身, 而不是指索引的數據。另外一個要注意的是,truncate和drop都是不可回滾操作,現實 中要謹慎使用,故答案為Co多選題下列關于類方法的描述中,哪些說法是錯誤的?回答錯誤在類方法中可用this來調用本類的類方法漏選在類方法中調用本類的類方法時可直接調用在類方法中只能調用本類中的類方法在類方法中絕對不能調用實例方法正確選項A、C、D考點Java基礎一線程解析選項A中,在類方法中不能使用this關鍵字;選項C中,在類方法中可以調用其它類 中的類方法;選項D中,在類方法中可以通過實例化對象調用實例方法。多選題以下關于Spring事務說法中,哪些選項是正確

35、的?回答錯誤Spring提供了兩種編程式事務管理的方法:使用TransactionTemplate或者TransactionalOperator,直接實現 TransactionManager 接口漏選Spring事務隔離級別中的REQUIRES_NEW指的是如果當前線程已經在一個事務中,則 加入該事務,否則新建一個事務TransactionTemplate是線程安全的,我們可以全局配置一個TransactionTemplate, 然后所有的類都共享這個TransactionTemplate在方法上面加上Transactional注解,然后在方法中throw new Exception錯誤 “

36、),可以回滾事務正確選項A、C考占口八、框架-Spring基礎解析選項B中,概念錯誤,REQUIRES_NEW是無論如何都會創建一個新的事務,如果當前 線程已經在一個事務中,則掛起當前事務,創建一個新的事務;選項D中,這樣事務不生 效,因為默認回滾的是RuntimeException,如果想觸發其他異常的回滾,需要在注解上 配置一下,如:Transactional(rollbackFor = Exception.class)綜上所述,答案為ACo多選題假設你要使用Java的Stack類完成一個學生學號的輸入,其中有4個學生的學號分別 為1、2、3、4,那么借助這個Stack類得到的學號輸出序列

37、可能的是以下哪些情況? 回答錯誤123443211342漏選4123正確選項A、B、C考點Java基礎-編程基礎解析根據棧先進后出,后進先出的規則,我們對以上選項進行綜合分析:A. 1進棧再出棧, 2進棧再出棧,3進棧再出棧,4進棧再出棧,所以出棧順序可以是1234; B. 1234依 次進棧,再4321依次出棧,所以B的順序也對;C. 1進棧再出棧,然后2和3依次 進棧,然后3出棧(這時棧里只有2),接著4進棧再出棧,最后2出棧,所以1342的 順序也是可能的,所以ABC均有可能出現;而依據規則,不可能得到4123的輸出序列, 因此答案為ABCo多選題以下事務隔離的級別中,哪些是正確的?回答

38、錯誤讀未提交讀已提交漏選可重復讀串行化正確選項A、 B、 C、 D考點數據庫-SQL解析讀未提交,也就是允許讀到未提交的數據,這種情況下查詢是不會使用鎖的,可能會產生臟 讀、不可重復讀、幻讀等情況。讀已提交就是只能讀到已經提交的內容,可以避免臟讀的產 生,屬于RDBMS中常見的默認隔離級別(比如說Oracle和SQL Server),但如果 想要避免不可重復讀或者幻讀,就需要我們在SQL查詢的時候編寫帶加鎖的SQL語句(我會在進階篇里講加鎖)。可重復讀,保證一個事務在相同查詢條件下兩次查詢得到的數 據結果是一致的,可以避免不可重復讀和臟讀,但無法避免幻讀。MySQL默認的隔離級別 就是可重復讀

39、。可串行化,將事務進行串行化,也就是在一個隊列中按照順序執行,可串行 化是最高級別的隔離等級,可以解決事務讀取中所有可能出現的異常情況,但是它犧牲了系 統的并發性。多選題以下四種異常中,哪些屬于非檢查型異常? 回答正確SQLExceptionEOFExceptionIllegalArgumentExceptionNumberFormatException正確選項C、D考點Java基礎-異常處理解析在Java中所有不是RuntimeException派生的Exception都是檢查型異常。當函數 中存在拋出檢查型異常的操作時該函數的函數聲明中必須包含throws語句。調用改函數的函數也必須對該異

40、常進行處理,如不進行處理則必須在調用函數上聲明 throws 語句。SQLException和EOFException沒有繼承RuntimeException。所以是檢查型異常在 Java中所有RuntimeException的派生類都是非檢查型異常,與檢查型異常相對拋出非 檢查型異常可以不在函數聲明中添加throws語句,調用函數上也不需要強制處理。IIlegalArgumentException 和 NumberFormatException 繼承了 RuntimeExceptiono所以是非檢查異常,所以答案為CD。多選題從數據庫查詢出的數據集合在遍歷過程中,需要基于某些條件對里面的部分

41、元素進行刪除。 以下說法中,哪些是錯誤的?回答錯誤集合在ForEach循環里進行元素的remove操作集合采用Iterator進行元素的刪除操作,絕對是線程安全的 漏選集合無法實現在遍歷時,進行刪除元素操作集合使用Iterator方式,如果有并發,需要對Iterator對象加鎖 正確選項A、B、C考占P八、Java基礎-編程基礎解析在 ForEach 刪除過程中 remove 會拋出 ConcurrentModificationException,異常出 現在checkForComodification()方法中。而在多線程中通過Iterator來訪問容器的話, 事實上是不需要獲取鎖就可以訪問

42、。所以多線程的解決方法有以下兩種,分別是:1.在使 用Iterator迭代的時候使用synchronized或者Lock進行同步;2.使用并發容器 CopyOnWriteArrayList代替ArrayList和Vector,所以D是正確的,綜上所述,答 案為ABCoSystem.out.printin(str2.getBytes(nUTF-16n).length);)回答正確A.44B.1C.D.3正確選項B考點Java基礎-編程基礎解析UTF-8編碼下一個英文占用1個字節,一個漢字占用了 3個字節;在UTF-16下輸出 為4個字節。前兩個字節是相同的,均為十六進制下的FEFF,第三個字節與

43、第四個字節的組合正是字符 本身在UTF-16下的代碼單元,所以答案為Bo單選題以下關于Maven命令的說法中,哪一項是錯誤的?回答錯誤A.mvn install將打包的jar/war文件復制到你的本地倉庫中,供其他模塊使用 B.mvn deploy將打包的文件發布到遠程參考,提供其他人員進行下載依賴mvn -D是使用指定的Profile配置,mvn -P是傳入屬性參數mvn dependency: tree是打印出項目的整個依賴樹正確選項C考點Java基礎-工具類解析mvn -D的功能是傳入屬性參數,比如命令:mvn package -Dmavn,tstskip=tru以-D開頭,將的值設為t

44、rue,就是告訴maven打包的時候跳過 單元測試。同理,mvn deploy-Dmaven.test.skip=true代表部署項目并跳過單元測試。-P使用指定的Profile配置。可以是mvn package -P dev , C的表述與概念相反,所以答案為Co單選題MySQL支持視圖,以下關于視圖說法中,哪一項是錯誤的?回答正確創建視圖或者刪除視圖,都不會影響源表視圖可以由來自不同的表的列組成所有的視圖都可以修改數據對視圖的修改,會直接影響源表正確選項C考點數據庫-MySQL解析視圖可以看做是一個虛表,是一個邏輯上的抽象,它只是按照我們的要求,聚合了數據。 在修改視圖數據的時候,有兩種情

45、況,如果該視圖是通過多張表產生的,那么該視圖是無法 修改的;而如果視圖只是來源于單一的表,那么修改會直接影響源表,故答案為Co單選題如下是一段Java代碼,現需要你在橫線處寫一行代碼,從而讓代碼輸出run方法內容, 關于這一行應該補充的代碼,以下哪一項是正確的?_public class ThreadTest implements Runnable public static void main(String args) throws InterruptedException t start ();System.out.printIn(hello main);Thread.sleep(1000

46、);)public void run () System.out.printin(hello thread!);)回答正確Thread t = new Thread(new ThreadTest();ThreadTest t = nw ThreadTest();Thread t = new Test();Thread t = new Thread();正確選項A考點Java基礎一線程解析線程的創建有兩種方式,其中之一就是實現Runnable接口。此接口只有一個抽象方法 run()方法,啟動線程又需要start()方法,此時還需要借助Thread類,根據Thread 類的構造方法:public

47、Thread(Runnable run)需要傳入Runnable接口對象,所以選項A是正確的。除了此方法外,還有另一種方法,即定義一個類繼承Thread類,并重寫Thread類的 run()方法,但試題中沒有符合該方法的選項,故答案為Ao單選題兩臺Linux服務器采用TCP通信時出現了連接超時的情況,通過觀察日志后發起,發起 TCP連接的服務器在啟動網絡通信的程序后,等待約7秒并提示了如下錯誤:javant,SocktTimoutExcption: Read timd out為了讓客戶端程序盡早報告錯誤,減少等待時間,可以修改以下哪個內核參數? 回答正確net . ipv4.tcp_syn_r

48、etriesnet . ipv4.tcp_max_syn_backlognet . ipv4.tcp_syncookiesnet . ipv4.tcp_synack_retries正確選項A考點基礎工具-Linux解析作為Client服務器,在發出SYN后1秒,還沒有收到Server的ACK響應,那么 內核默認會進行第一次重傳。如果tcp_syn_retries為3。如果SYN 一直發送失 敗,會在1 + 2 + 4秒后產生TIMEOUT的錯誤。為了讓Client盡早報錯,可以減 少net. ipv4 . tcp_syn_retries的值,即減少重試次數,因此答案為A。單選題事務并發處理時,可能會存在異常,以下異常中,哪一項是不可能會在事務并發處理時

溫馨提示

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

評論

0/150

提交評論