【298天】我愛刷題系列057(2017.11.30)

叨叨兩句

  1. 搞定~

牛客網——java專項練習037

1

Java中用正則表達式截取字符串中第一個出現的英文左括號以前的字符串。好比:北京市(海淀區)(朝陽區)(西城區),截取結果爲:北京市。正則表達式爲()
正確答案: Ahtml

  1. ".*?(?=\()"
  2. ".*?(?=()"
  3. ".*(?=\()"
  4. ".*(?=()"
http://www.cnblogs.com/xudong-bupt/p/3586889.html
1.什麼是正則表達式的貪婪與非貪婪匹配
如:String str="abcaxc";
Patter p="ab*c";
貪婪匹配:正則表達式通常趨向於最大長度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字符串str,結果就是匹配到:abcaxc(ab*c)。
非貪婪匹配:就是匹配到結果就好,就少的匹配字符。如上面使用模式p匹配字符串str,結果就是匹配到:abc(ab*c)。
2.編程中如何區分兩種模式
默認是貪婪模式;在量詞後面直接加上一個問號?就是非貪婪模式。
量詞:{m,n}:m到n個
*:任意多個
+:一個到多個
?:0或一個
以上來自博主的博客,而後這道題目
.表示除\n以外的任意字符
*表示匹配0-無窮 
+表示匹配1-無窮
(?=Expression) 順序環視,(?=\\()就是匹配正括號
懶惰模式正則: 
src=".*? (?=\\()) "
結果:北京市
由於匹配到第一個"就結束了一次匹配。不會繼續向後匹配。由於他懶惰嘛。

2

下列不屬於java語言魯棒性特色的是
正確答案: Bjava

  1. java能檢查程序在編譯和運行時的錯誤
  2. java能運行虛擬機實現跨平臺
  3. java本身操縱內存減小了內存出錯的可能性
  4. java還實現了真數組,避免了覆蓋數據的可能
魯棒性(Robust,即健壯性)
Java在編譯和運行程序時,都要對可能出現的問題進行檢查,以消除錯誤的產生。它提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生 的錯誤。經過集成的面向對象的例外處理機制,在編譯時,Java揭示出可能出現但未被處理的例外,幫助程序員正確地進行選擇以防止系統的崩潰。另外, Java在編譯時還可捕獲類型聲明中的許多常見錯誤,防止動態運行時不匹配問題的出現。
感受B選項雖然描述也對,可是,不該該把它歸結於魯棒性,B選項主要是體現Java的因爲虛擬機,實現了一次編譯,處處運行,跨平臺性的特色。所以,我選B。

3

java中Hashtable, Vector, TreeSet, LinkedList哪些線程是安全的?
正確答案: A B 你的答案: B (錯誤)程序員

  1. Hashtable
  2. Vector
  3. TreeSet
  4. LinkedList

線程安全概念:
若是你的代碼所在的進程中有多個線程在同時運行,而這些線程可能會同時運行這段代碼。若是每次運行結果和單線程運行的結果是同樣的,並且其餘的變量的值也和預期的是同樣的,就是線程安全的。正則表達式

線程安全問題都是由全局變量及靜態變量引發的。編程

若每一個線程中對全局變量、靜態變量只有讀操做,而無寫操做,通常來講,這個全局變量是線程安全的;如有多個線程同時執行寫操做,通常都須要考慮線程同步,不然的話就可能影響線程安全。數組

LinkedList 和 ArrayList 都是不一樣步的,線程不安全;
Vector 和 Stack 都是同步的,線程安全;
Set是線程不安全的;安全

Hashtable的方法是同步的,線程安全;
HashMap的方法不是同步的,線程不安全;spa

相關文章
相關標籤/搜索