• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 第一部分 Java基礎
    第二部分 Java進階

    初級Java程序員面試題(114~130企業真題)

     

     

    114、編寫一個Filter,需要(B)

     

    A. 繼承 Filter 類

     

    B. 實現 Filter 接口

     

    C. 繼承 HttpFilter 類

     

    D. 實現 HttpFilter 接口

     

     

    115、有關MVC設計模式(B)描述不正確

     

    A. 使用 Servlet 作為控制器

     

    B. MVC 設計模式增大了維護難度

     

    C. MVC 設計模式屬于 Model 2

     

    D. 模型對象向客戶端顯示應用程序界面

     

    ● Model 1:

     

    Model 1的基礎是JSP文件,它由一些相互獨立的JSP文件,和其他一些Java Class 組成(不是必須的)。這些JSP從 HTTP Request中獲得所需要的數據,處理業務邏輯,然后將結果通過 Response 返回前端瀏覽器。

     

    ● Model 2:

     

    采用面向對象技術實現MVC模式從而擴展JSP/Servlet的模式被稱為是Model 2模式。Apache Jakarta 項目中Struts是一個實現Model 2的很好的框架,它通過一些Custom Tag Lib處理表現層,用ActionFrom Bean表示數據,用自己提供的一個ActionServlet作為控制器實現頁面的流轉的控制功能。說的直白一些,model1即為單純的 jsp+java,沒有框架參與,通過response和request對象傳送值域,而model2則使用較為流行的struts2框架(當然也可能是其他的MVC框架,例如SpringMVC)。

     

     

    116、在Linux中,可以使用命令(C)加掛計算機上的非Linux文件系統

     

    A. cat /proc/filesystems

     

    B. ln

     

    C. mount

     

    D. df

     

     

    117、下面關于Linux中shell的說法錯誤的是(D)

     

    A. shell 是解釋用戶在終端鍵入的命令的一種中間程序

     

    B. shell 可以讀取并執行腳本文件中的命令

     

    C. 用戶可以使用參數將命令行的參數傳遞給 shell 腳本,從而實現在 Linux 中的交互式編程

     

    D. 默認情況下,Linux 中創建的所有文件都具有執行權限

     

     

    118、在Oracle中,當需要使用顯式游標更新或刪除游標中的行時,UPDATE 或 DELETE 語句必須使用(C)子句

     

    A. WHERE CURRENT OF

     

    B. WHERE CURSOR OF

     

    C. FOR UPDATE

     

    D. FOR CURSOR OF

     

     

    119、在Oracle中,使用下列的語句CREATE PUBLIC SYNONYM parts FOR Scott.inventory;完成的任務是(D)

     

    A. 將Scott.inventory 對象的訪問權限賦予所有用戶

     

    B. 指定了新的對象權限

     

    C. 指定了新的系統權限

     

    D. 給Scott.inventory對象創建一個公用同義詞 parts

     

     

    120、下列說法正確的有(C)

     

    A. class中的constructor不可忽略

     

    B. constructor可以作為普通方法被調用

     

    C. constructor在一個對象new時被調用

     

    D. 一個class只能定義一個 constructor

     

     

    121、下列運算符合法的是(D)

     

    A、&&

     

    B、<>

     

    C、If

     

    D、:=

     

     

    122、下列哪種說法不正確(ABC)

     

    A、實例方法可以直接調用超類的實例方法

     

    B、實例方法可以直接調用超類的類方法

     

    C、實例方法可以直接調用其他類的實例方法

     

    D、實例方法可以直接調用本類的類方法

     

     

    123、執行如下程序代碼后,c 的值是(C)

     

    int a = 0;
    int c = 0;
    do {
        --c;
        a = a - 1;
    } while (a > 0);

     

    A、0

     

    B、1

     

    C、-1

     

    D、死循環

     

     

    124、什么時候使用抽象類和接口

     

    如果你擁有一些方法并且想讓它們中的一些有默認實現,那么使用抽象類吧。

     

    如果你想實現多重繼承,那么你必須使用接口。由于 Java 不支持多繼承,子類不能夠繼承多個類,但可以實現多個接口。因此你就可以使用接口來解決它。

     

    如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實現了該接口的類。

     

    多數情況下抽象類都是共同特征的抽象,而接口是共同行為的抽象。

     

     

    125、throws和throw有什么不同點?

     

    throw和throws都是異常處理機制當中的關鍵字,throw是手動拋異常,throws是以聲明的方式拋出異常,并且拋給調用者處理。

     

     

    126、請編寫一個jdbc查詢任意一個數據庫(如 MySQL、Oracle 等),數據庫名為test,表名為user,只有一個字段。

     

    class SqlConnectionUtil {
        public static void main(String[] args) {
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            String sql;
            String url = "jdbc:MySQL://localhost:3306/test?user=root&password=root&useUnicode=true&characterEncoding=UTF8";
            try {
                Class.forName("com.MySQL.jdbc.Driver");
                conn = DriverManager.getConnection(url);
                stmt = conn.createStatement();
                sql = "select * from user";
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    String name = rs.getString("name");
                    System.out.println("姓名是:" + name);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (rs != null) {
                    try {
                        rs.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (stmt != null) {
                    try {
                        stmt.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

     

     

    127、寫一個多線程程序,四個線程對一個int 變量,2 個加 1,2 個減1,輸出。

     

    class TMain {
        int j = 1;
    
        public synchronized void inc() {
            j++;
            System.out.println(Thread.currentThread().getName() + "-inc:" + j);
        }
    
        class T1 implements Runnable {
            public void run() {
                inc();
            }
        }
    
        public synchronized void dec() {
            j--;
            System.out.println(Thread.currentThread().getName() + "-dec:" + j);
        }
    
        class T11 implements Runnable {
            public void run() {
                dec();
            }
        }
    
        public static void main(String[] args) {
            TMain t = new TMain();
            T1 t1 = t.new T1();
            T11 t11 = t.new T11();
            for (int i = 0; i < 2; i++) {
                Thread thread = new Thread(t1);
                thread.start();
                Thread thread1 = new Thread(t11);
                thread1.start();
            }
        }
    }

     

     

    128、說出常用的10個linux操作命令,至少 5 個,并簡述命令的作用。

     

    ● ls命令

     

    -作用:顯示目錄內容,類似 DOS 下的 DIR

     

    -格式:LS【options】【filename】

     

    -常用參數:

     

    >-a:all,不隱藏任何以"."字符開始的文件

     

    >-l:使用較長的格式列出信息

     

    >-r:按照文件名的逆序打印輸出

     

    >-F:加上文件類型的指示符ls -lF | grep / 過濾

     

     

    ● man ls 查詢 ls 的幫助文件

    ???????

    ● cat命令

     

    -作用:顯示文件內容,concatenate 的縮寫,類似 dos 的 type 命令。

     

    -格式:cat【options】【fielname】

     

    -常用參數:

     

    >-n:顯示文件內容的行號。

     

    >-b:類似-n,但是不對空白行進行編號。

     

    >-s:當遇到有連續兩行以上的空白行時,就代換為一行的空白行。

     

    ● mv 命令

     

    -作用:更改文件或者目錄的名字。

     

    -格式:mv[options]source destination

     

    -常用參數:

     

    >-f:強制模式,覆蓋文件不提示。

     

    >-i:交互模式,當要覆蓋文件的時候給提示。

     

    ● rm 命令

     

    -作用:刪除文件命令,類似 dos 的 del 命令

     

    -格式:rm【options】filenames

     

    -常用參數:???????

     

    >-f:強制模式,不給提示。

     

    >-r,-R:刪除目錄,recursive

     

     

    ???????129、說出常見的5個linux系統日志,至少3個并做簡述日志的用途。

     

    ● access-log記錄 HTTP/web 的傳輸

     

    ● acct/pacct記錄用戶命令

     

    ● aculog記錄 MODEM 的活動

     

    ● btmp記錄失敗的紀錄

     

    ● lastlog記錄最近幾次成功登錄的事件和最后一次不成功的登錄

     

    ● messages從 syslog 中記錄信息(有的鏈接到 syslog 文件)

     

    ● sudolog記錄使用 sudo 發出的命令

     

    ● sulog記錄使用 su 命令的使用

     

    ● syslog從 syslog 中記錄信息(通常鏈接到 messages 文件)

     

    ● utmp記錄當前登錄的每個用戶

     

    ● wtmp一個用戶每次登錄進入和退出時間的永久紀錄

     

    ● xferlog記錄 FTP 會話

     

     

    130、創建一張員工表,表名EMPLOYEES,有四個字段,EMPLOYEE_ID: 員工表( 主鍵)、DEPT_ID: 部門號、EMPLOYEE_NAME:員工姓名、EMPLOYEE_SALARY:員工工資。

     

    ● 寫出建表語句:

     

    CREATE TABLE EMPLOYEES(

     

    EMPLOYEE_ID int not null primary key,

     

    DEPT_ID int,

     

    EMPLOYEE_NAME char(40),

     

    EMPLOYEE_SALARY double

     

    );

     

    ● 檢索出員工工資最高的員工姓名和工資

     

    select * from user where employee_salary= (select max(employee_salary) from user);

     

    ● 檢索出部門中員工最多的部門號和此部門員工數量

    ???????

    select dept_id,count(*) cno from user GROUP BY dept_id desc limit 1;

    ???????

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏