好程式設計師大資料培訓分享大資料面試寶典六

好程式設計師發表於2020-05-15

1、 資料型別之間的轉換:

  1)如何將數值型字元轉換為數字?

  2)如何將數字轉換為字元?

  3)如何取小數點前兩位並四捨五入? 【基礎】

  答:

  1)呼叫數值型別相應包裝類中的方法parse***(String)或valueOf(String)即可返回相應基本型別或包裝型別數值;

  2)將數字與空字串相加即可獲得其所對應的字串;另外對於基本型別數字還可呼叫String 類中的valueOf(…)方法返回相應字串,而對於包裝型別數字則可呼叫其toString()方法獲得相應字串;

  3)可用該數字構造一java.math.BigDecimal 物件,再利用其round()方法進行四捨五入到保留小數點後兩位,再將其轉換為字串擷取最後兩位。

1、  You need to insert an inner class declaration at line 3 Which two inner class declarations are valid?(Choose two.)

  public class OuterClass {

private double d1 = 1.0;

//insert code here

}

  A. class InnerOne{

public static double methoda() {return d1;}

  }

  B. public class InnerOne{

static double methoda() {return d1;}

  }

  C. private class InnerOne{

double methoda() {return d1;}

  }

  D. static class InnerOne{

protected double methoda() {return d1;}

  }

  E. abstract class InnerOne{

public abstract double methoda();

  }

  答:答案為C、E;說明如下:

  1)靜態內部類可以有靜態成員,而非靜態內部類則不能有靜態成員;故A、B錯;

  2)靜態內部類的非靜態成員可以訪問外部類的靜態變數,而不可訪問外部類的非靜態變數;故D 錯;

  3)非靜態內部類的非靜態成員可以訪問外部類的非靜態變數;故C 正確。

 

2、  字串操作:如何實現字串的反轉及替換?【基礎】

  答:可用字串構造一StringBuffer 物件,然後呼叫StringBuffer 中的reverse方法即可實現字串的反轉,呼叫replace 方法即可實現字串的替換。

 

3、  編碼轉換:怎樣將GB2312 編碼的字串轉換為 ISO-8859-1 編碼的字串?【基礎】

  答:示例程式碼如下:

  String s1 = "你好";

  String s2 = new String(s1.getBytes("GB2312"), "ISO-8859-1");

 

4、  寫一個函式,要求輸入一個字串和一個字元長度,對該字串進行分隔。【基礎】

  答:函式程式碼如下:

  public String[] split(String str, int chars){

int n = (str.length()+ chars - 1)/chars;

String ret[] = new String[n];

for(int i=0; i<n; i++){

if(i < n-1){

ret[i] = str.substring(i*chars , (i+1)*chars);

}else{

ret[i] = str.substring(i*chars);

}

}

return ret;

  }

 

5、  字串操作:如何實現字串的反轉及替換?【基礎】

  答:可用字串構造一StringBuffer 物件,然後呼叫StringBuffer 中的reverse方法即可實現字串的反轉,呼叫replace 方法即可實現字串的替換。

 

6、  日期和時間:

  1)如何取得年月日、小時分秒?

  2)如何取得從1970 年到現在的毫秒數?

  3)如何取得某個日期是當月的最後一天?

  4)如何格式化日期?【基礎】

  答:

  1)建立java.util.Calendar 例項(Calendar.getInstance()),呼叫其get()方法傳入不同的引數即可獲得引數所對應的值,如:calendar.get(Calendar.YEAR);//獲得年

  2)以下方法均可獲得該毫秒數:

  Calendar.getInstance().getTimeInMillis();System.currentTimeMillis();

  3)示例程式碼如下:

  Calendar time = Calendar.getInstance();

  time.set(Calendar.DAY_OF_MONTH,

  time.getActualMaximum(Calendar.DAY_OF_MONTH));

 

7、  什麼時候用assert ?【中等難度】

  答:assertion(斷言)在軟體開發中是一種常用的除錯方式,很多開發語言中都支援這種機制。一般來說,assertion 用於保證程式最基本、關鍵的正確性。assertion 檢查通常在開發和測試時開啟。為了提高效能,在軟體釋出後, assertion 檢查通常是關閉的。在實現中,斷言是一個包含布林表示式的語句,在執行這個語句時假定該表示式為true;如果表示式計算為false,那麼系統會報告一個Assertionerror。

  斷言用於除錯目的:

  assert(a > 0); // throws an Assertionerror if a <= 0

  斷言可以有兩種形式:

  assert Expression1 ;

  assert Expression1 : Expression2 ;

  Expression1 應該總是產生一個布林值。

  Expression2 可以是得出一個值的任意表示式;這個值用於生成顯示更多除錯資訊的String 訊息。

  斷言在預設情況下是禁用的,要在編譯時啟用斷言,需使用source 1.4 標記:

  javac -source 1.4 Test.java

  要在執行時啟用斷言,可使用-enableassertions 或者-ea 標記。

  要在執行時選擇禁用斷言,可使用-da 或者-disableassertions 標記。

  要在系統類中啟用斷言,可使用-esa 或者-dsa 標記。還可以在包的基礎上啟用或者禁用斷言。可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用於驗證傳遞給私有方法的引數。不過,斷言不應該用於驗證傳遞給公有方法的引數,因為不管是否啟用了斷言,公有方法都必須檢查其引數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試後置條件。另外,斷言不應該以任何方式改變程式的狀態。

 

8、  Java 中的異常處理機制的簡單原理和應用?【基礎】

  答:當JAVA 程式違反了JAVA 的語義規則時,JAVA 虛擬機器就會將發生的錯誤表示為一個異常。違反語義規則包括2 種情況。一種是JAVA 類庫內建的語義檢查。例如陣列下標越界,會引發IndexOutOfBoundsException;訪問null 的物件時會引發NullPointerException。另一種情況就是JAVA 允許程式設計師擴充套件這種語義檢查,程式設計師可以建立自己的異常,並自由選擇在何時用throw 關鍵字引發異常。所有的異常都是java.lang.Thowable 的子類。

 

9、  error exception 有什麼區別 ? 【基礎】

  答:error 表示系統級的錯誤和程式不必處理的異常,是恢復不是不可能但很困難的情況下的一種嚴重問題;比如記憶體溢位,不可能指望程式能處理這樣的情況;exception 表示需要捕捉或者需要程式進行處理的異常,是一種設計或實現問題;也就是說,它表示如果程式執行正常,從不會發生的情況。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2692369/,如需轉載,請註明出處,否則將追究法律責任。

相關文章