天天影视综合久久|制服丝袜在线精品|av大片无码专区|狠狠爱丁香色五月|高潮舒服亚洲国产|日韩精品一区三区|天天干视频爱爱视频毛片|av导航在线大全|日韩人妻一级毛片|性调教视频网站入口

高級Java面試題(2)

時間:2024-10-11 15:36:22 學人智庫 我要投稿
  • 相關(guān)推薦

高級Java面試題集合(2)

  垃圾回收的最佳做法?

高級Java面試題集合(2)

  用編程的方式,我們可以要求(記住這只是一個請求——不是一個命令)JVM通過調(diào)用System.gc()方法來運行垃圾回收。

  當內(nèi)存已滿,且堆上沒有對象可用于垃圾回收時,JVM可能會拋出OutOfMemoryException。

  對象在被垃圾回收從堆上刪除之前,會運行finalize()方法。我們建議不要用finalize()方法寫任何代碼。

  什么是初始化數(shù)據(jù)塊?

  初始化數(shù)據(jù)塊——當創(chuàng)建對象或加載類時運行的代碼。

  有兩種類型的初始化數(shù)據(jù)塊:

  靜態(tài)初始化器:加載類時運行的的代碼

  實例初始化器:創(chuàng)建新對象時運行的代碼

  什么是靜態(tài)初始化器?

  請看下面的例子:static{和}之間的代碼被稱為靜態(tài)初始化器。它只有在第一次加載類時運行。只有靜態(tài)變量才可以在靜態(tài)初始化器中進行訪問。雖然創(chuàng)建了三個實例,但靜態(tài)初始化器只運行一次。

  public class InitializerExamples {

  static int count;

  int i;

  static{

  //This is a static initializers. Run only when Class is first loaded.

  //Only static variables can be accessed

  System.out.println("Static Initializer");

  //i = 6;//COMPILER ERROR

  System.out.println("Count when Static Initializer is run is " + count);

  }

  public static void main(String[] args) {

  InitializerExamples example = new InitializerExamples();

  InitializerExamples example2 = new InitializerExamples();

  InitializerExamples example3 = new InitializerExamples();

  }

  }

  示例輸出

  Static Initializer

  Count whenStaticInitializer is run is0.

  什么是實例初始化塊?

  讓我們來看一個例子:每次創(chuàng)建類的實例時,實例初始化器中的代碼都會運行。

  public class InitializerExamples {

  static int count;

  int i;

  {

  //This is an instance initializers. Run every time an object is created.

  //static and instance variables can be accessed

  System.out.println("Instance Initializer");

  i = 6;

  count = count + 1;

  System.out.println("Count when Instance Initializer is run is " + count);

  }

  public static void main(String[] args) {

  InitializerExamples example = new InitializerExamples();

  InitializerExamples example1 = new InitializerExamples();

  InitializerExamples example2 = new InitializerExamples();

  }

  }

  示例輸出

  Instance Initializer

  Count when Instance Initializer is run is 1

  Instance Initializer

  Count when Instance Initializer is run is 2

  Instance Initializer

  Count when Instance Initializer is run is 3

  什么是正則表達式?

  正則表達式能讓解析、掃描和分割字符串變得非常容易。Java中常用的正則表達式——Patter,Matcher和Scanner類。

  什么是令牌化?

  令牌化是指在分隔符的基礎(chǔ)上將一個字符串分割為若干個子字符串。例如,分隔符;分割字符串a(chǎn)c;bd;def;e為四個子字符串a(chǎn)c,bd,def和e。

  分隔符自身也可以是一個常見正則表達式。

  String.split(regex)函數(shù)將regex作為參數(shù)。

  給出令牌化的例子?

  private static void tokenize(String string,String regex) {

  String[] tokens = string.split(regex);

  System.out.println(Arrays.toString(tokens));

  }

  tokenize("ac;bd;def;e",";");//[ac, bd, def, e]

  如何使用掃描器類(Scanner Class)令牌化?

  private static void tokenizeUsingScanner(String string,String regex) {

  Scanner scanner = new Scanner(string);

  scanner.useDelimiter(regex);

  List matches = new ArrayList();

  while(scanner.hasNext()){

  matches.add(scanner.next());

  }

  System.out.println(matches);

  }

  tokenizeUsingScanner("ac;bd;def;e",";");//[ac, bd, def, e]

  如何添加小時(hour)到一個日期對象(Date Objects)?

  現(xiàn)在,讓我們?nèi)绾慰纯刺砑有r到一個date對象。所有在date上的日期操作都需要通過添加毫秒到date才能完成。例如,如果我們想增加6個小時,那么我們需要將6小時換算成毫秒。6小時= 6 * 60 * 60 * 1000毫秒。請看以下的例子。

  Date date = new Date();

  //Increase time by 6 hrs

  date.setTime(date.getTime() + 6 * 60 * 60 * 1000);

  System.out.println(date);

  //Decrease time by 6 hrs

  date = new Date();

  date.setTime(date.getTime() - 6 * 60 * 60 * 1000);

  System.out.println(date);

  如何格式化日期對象?

  格式化日期需要使用DateFormat類完成。讓我們看幾個例子。

  //Formatting Dates

  System.out.println(DateFormat.getInstance().format(

  date));//10/16/12 5:18 AM

  帶有區(qū)域設(shè)置的格式化日期如下所示:

【高級Java面試題(2)】相關(guān)文章:

java面試題及答案10-03

10個經(jīng)典的Java面試題集合09-20

德國公司經(jīng)典面試題(2)07-10

計算機二級JAVA沖刺試題及答案(2)08-13

評高級職稱述職報告范文(2)05-15

小學高級教師述職報告(2)06-14

計算機二級Java備考沖刺試題及答案(2)09-24

計算機二級《JAVA》選擇題及答案(2)10-26

教師高級職稱述職報告(2)09-14

企業(yè)高級管理人員業(yè)績評價體系(2)08-25