記第一次面經

記第一次面經

  1. String str=new String("abc"); 建立了幾個對象?html

    這是個極簡單極常規的問題:答案是:2個web

    面試的時候不知道是第一次面試緊張仍是以爲問題簡單太自信,張口就說了1個。回來的路上猛地想起來,差點找個地縫鑽進去。面試

    例:String str="abc";                             毫無疑問,這行代碼建立了一個String對象。
    例:String a="abc"; String b="abc";       那這裏呢?答案仍是一個。
    例:String a="ab"+"cd";                         再看看這裏呢?答案是三個。sql

    String對象的聲明數據庫

    原來寫過==equals的區別時也提到過    equals與==的區分編程

  2. 寫一段冒泡排序數組

    /*冒泡排序:
      冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。
      即在第一趟:首先比較第1個和第2個數,將小數放前,大數 放後。
      而後比較第2個數和第3個數,將小數放前,大數放後,
      如此繼續,直至比較最後兩個數,將小數放前,大數放後。
      至此第一趟結束,將最大的數放到了最後。
      在第二趟:仍從第一對數開始比較 
     (由於可能因爲第2個數和第3個數的交換,使得第1個數再也不小於第2個數),將小數放前中,大數放後.
      一直比較到倒數第二個數(倒數第一的位置上已是最大的).
      第二趟 結束,在倒數第二的位置上獲得一個新的最大數(其實在整個數列中是第二大的數)。
      如此下去,重複以上過程,直至最終完成排序。*/
    
     public class SortTest {
     public static void main(String[] args) {
     //定義數組
     int arr[] = { 24, 13, 48, 25, 88, 66, 20, 14, 45, 360, 65, 77 };
     int k = 0;
     // 冒泡排序
     for (int i = 0; i < arr.length - 1; i++) {           //設定i爲第i行
         for (int j = 0; j < arr.length - 1; j++) {       //設定j爲第j個數
             if (arr[j] < arr[j + 1]) {                   //若是前邊的數小於後邊的數
                 int t = arr[j];                         
                 arr[j] = arr[j + 1];
                 arr[j + 1] = t;                         //進行交換,把大的放在前面
                 k++;                                    //交換的總次數
             }
    
             System.out.print("第" + (i+1) + "行的第j=" + (j+1) + "次交換\t");
             for (int d = 0; d < arr.length; d++) {
                 System.out.print(arr[d] + "\t");          //輸出 
             }
    
             System.out.println();
         }
     }
    
         System.out.println("交換的次數爲" + k);
    
         }
     }
    
    **寫一段選擇排序**
    
    
    
     public class Sort2Test {
    
     /*選擇排序
     第一次從下標爲0的開始下標爲0的這個數與後面的n-1個進行比較;
     找出最小或者最大的放在下標爲0的這個位置;
     第二次從下標爲1的開始比較;查詢剩下的最大或者最小值;放在 
     下標爲1的位置;以此類推;直到排序完成.*/
    
     public static void main(String[] args) {
     //定義數組
     int arr[] = { 24, 13, 48, 25, 88, 66, 20, 14, 45, 360, 65, 77 };
     // 選擇排序
             int l = 0;
             for (int i = 0; i < arr.length - 1; i++) {
                 for (int j = i + 1; j < arr.length - 1; j++) {
                     if (arr[i] < arr[j]) {
                         int t = arr[i];
                         arr[i] = arr[j];
                         arr[j] = t;
                         l++;
                     }
                     System.out.print("第" + (i+1) + "趟的第j=" + j + "次交換\t");
    
                     for (int d = 0; d < arr.length; d++) {
                         System.out.print(arr[d] + "\t");
                     }
                     System.out.println();
                 }
             }
             /*for (int i = 0; i < arr.length; i++) {
                 System.out.print(arr[i] + "\t");
             }*/
             System.out.println("交換的次數爲" + l);
         }
     }
  3. Oracle、Mysql的分頁程序服務器

    Oracle:代理

    SELECT * FROM  
    (  
    SELECT A.*, ROWNUM RN  
    FROM (SELECT * FROM TABLE_NAME) A  
    WHERE ROWNUM <= 40  
    )  
    WHERE RN >= 21

    Mysql:code

    取前5條數據
    select * from table_name limit 0,5 
    
    查詢第11到第15條數據
    select * from table_name limit 10,5
  4. 單例模式

    百度百科

    Java中單例模式定義:「一個類有且僅有一個實例,而且自行實例化向整個系統提供。」

    顯然單例模式的要點有三個;一是某個類只能有一個實例;二是它必須自行建立這個實例;三是它必須自行向整個系統提供這個實例。

  5. 說一下Servlet執行流程和生命週期

    執行流程:

    1. 客戶端發出請求,經過表單或者超連接,找到相對應的servlet(@WebServlet(「」)

      WEB3.1以後註解開發不須要再去web.xml中配置了,可是兩者不能同時有
    2. servlet接收客戶端傳來的數據,對客戶端的請求進行處理,根據請求方式肯定調用doGet()方法或者doPost()方法、操縱數據庫等
    3. 經過redirect方法或者forward方法將數據返回到客戶端

    生命週期

    1. 客戶端發送請求後首先判斷是否存在Servlet實例,若是沒有存在建立Servlet實例(Servlet的構造方法)。(Servlet引擎載入servlet)

    2. 若是存在Servlet實例,則開始其初始化階段,執行器初始化方法(init()方法)。

    3. 第三階段是響應客戶端請求階段,調用service()方法,根據提交方式選擇執行doGet()方法或者doPost()方法。

    4. 最後是銷燬階段,程序結束或者是服務器中止,調用其銷燬方法(destroy()方法)

  6. Spring的核心是什麼?

    IOC和AOP

    IOC:一個bean容器,其中的bean可實現控制反轉(依賴注入)

    依賴注入(控制反轉)的意思就是你不用顯示的在一個類裏用new關鍵字來生成你想要的對象而只需在xml配置文件裏添加相應節點便可,這樣就讓你整個程序的組成變得靈活多樣。

    AOP:面向切面編程

    Spring中AOP代理由Spring的IOC容器負責生成、管理,其依賴關係也由IOC容器負責管理。

    參考網址

    2018.06.27.保定
相關文章
相關標籤/搜索