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

    初級Java工程師面試題(42~81企業真題)

     

     

    42、設有一個二維數組 A[m][n],假設A[0][0]存放的位置在 644(10),A[2][2]存放的文職在676(10)每個元素占一個空間,問 A[3][3](10)存放在什么位置? 腳注(10)表示用 10進制表示(C)

     

    A.688

     

    B.678

     

    C.692

     

    D.699

     

     

    43、下列代碼執行結果是(B)

     

    public static void main(String args[]) {
        Thread t = new Thread() {
            public void run() {
                pong();
            }
        };
        t.run();
        System.out.print("ping");
    }
    static void pong() {
        System.out.print("pong");
    }

     

    A.pingpong

     

    B.pongping

     

    C.pingpong 和 pongping 都有可能

     

    D.都有可能

     

     

    44、下面程序能正常運行嗎(可以)

     

    class NULL {
        public static void haha() {
            System.out.println("haha");
        }
        public static void main(String[] args) {
            ((NULL) null).haha();
        }
    }

     

     

    45、解釋一下什么是 Servlet, 說一說 Servlet 的生命周期

     

    Servlet 是一種服務器端的 Java 應用程序,具有獨立于平臺和協議的特性,可以生成動態的 Web 頁面。 它擔當客戶請求(Web 瀏覽器或其他 HTTP 客戶程序)與服務器響應(HTTP 服務器上的數據庫或應用程序)的中間層。Servlet是位于 Web 服務器內部的服務器端的 Java 應用程序,與傳統的從命令行啟動的 Java 應用程序不同,Servlet 由 Web 服務器進行加載,該 Web 服務器必須包含支持 Servlet 的 Java 虛擬機。

     

    Servlet 生命周期可以分成四個階段:加載和實例化、初始化、服務、銷毀。當客戶第一次請求時,首先判斷是否存在 Servlet 對象,若不存在,則由 Web 容器創建對象,而后調用 init()方法對其初始化,此初始化方法在整個 Servlet 生命周期中只調用一次。完成 Servlet 對象的創建和實例化之后,Web 容器會調用 Servlet 對象的 service()方法來處理請求。當 Web 容器關閉或者 Servlet 對象要從容器中被刪除時,會自動調用 destory()方法。

     

     

    46、過濾器有哪些作用和用法?

     

    對于一個 web 應用程序來說,過濾器是處于 web 容器內的一個組件,它會過濾特定請求資源請求信息和響應信息。一個請求來到時,web 容器會判斷是否有過濾器與該信息資源相關聯,如果有則交給過濾器處理,然后再交給目標資源,響應的時候則以相反的順序交給過濾器處理,最后再返回給用戶瀏覽器。

     

    常見的過濾器用途主要包括:對用戶請求進行統一認證、對用戶的訪問請求進行記錄和審核、對用戶發送的數據進行過濾或替換、轉換圖象格式、對響應內容進行壓縮以減少傳輸量、對請求或響應進行加解密處理、觸發資源訪問事件等。

     

     

    47、寫出一個冒泡排序

     

    public static void bubbleSort() {
        int arr[] = {-5, 29, 7, 10, 5, 16};
        for (int i = 1; i < arr.length; i++) {
            for (int j = 0; j < arr.length - i; j++) {
                if (arr[j] < arr[j + 1]) {
                    int temp;
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(" " + arr[i] + " ");
        }
    }

     

     

    48、寫出一個單例的實現(懶加載方式)

     

    class LazySingleton {
        private LazySingleton() {
        }
    
        private static class SingletonHolder {
            private static LazySingleton instance = new LazySingleton();
        }
    
        public static LazySingleton getInstance() {
            return SingletonHolder.instance;
        }
    }

     

     

    49、2006 年某人連續打工 24 天,共賺了 190 元(日工資 10 元,星期日工資 5 元,星期日休息無工資)。已知他打工是從 1 月下旬的某一天開始的,這個月的 1 日恰好是星期日, 這人打工結束的那一天是 2 月(C)日

     

    A.2 月 6 日

     

    B.2 月 14 日

     

    C.2 月 18 日

     

    D.2 月 21 日

     

     

    50、由甲地到乙地有一天線路的巴士,全程行駛時間 42 分鐘,到達總站后,司機至少休息 10 分鐘,巴士就掉頭行駛,如果這條線路甲,乙兩邊總站每隔 8 分鐘都發一輛(不必是同一時間),則這條線路至少需要是多少倆巴士(C)

     

    A.15

     

    B.14

     

    C.13

     

    D.12

     

     

    51、編號為 1 至 10 的 10 個果盤中,每盤都盛有水果,共盛放 100 個。其中第一盤里有 16 個,并且編號相鄰的三個果盤中水果是的和都相等,求第 8 盤中水果最多可能有幾個(A)

     

    A.11

     

    B.12

     

    C.13

     

    D.14

     

     

    52、假設一個池塘,里面有無窮多的水,現在有 2 個空水壺,容積分別是 5 升和 6 升,問如何用這兩只水壺取得 3 升水。

     

    5L 桶打滿水,全部倒入 6L 桶;

     

    5L 桶再次打滿,往 6L 桶倒水至其滿。此時 5L 桶留下 4L 水;

     

    6L 桶清空,將 5L 桶中的 4L 水倒入 6L 桶;

     

    5L 桶打滿水,往 6L 桶倒水至其滿,則 5L 桶中得 3L 水。

     

     

    53、在房里有三盞燈,房外有三個開關,在房外看不見房內的情況,你只能進門一次,你用什么方法來區分那個開關控制哪一盞燈。

     

    先打開第一個開關,開一會再關上,然后打開第二個開關進入房間再摸一下每個燈,發熱的那盞是第一個開關的,亮的那盞是第二個開關的,沒變化的那盞是第三個開關的。

     

     

    54、兩個盲人,他們各自買個兩雙黑襪和白襪,8 雙襪子的布質,大小完全相同,每雙襪子都有 1 張商標紙連著,兩位盲人不小心把 8 雙襪子混在的一起,問他們怎樣才能取回黑襪和白襪各兩雙。

     

    把每雙襪子分成兩只。每人各拿一只。這樣,每人手中就有四只黑襪,四只白襪。每人也就有兩雙黑襪,兩雙白襪了。

     

     

    55、一樓到十樓的每層電梯門口都方和一顆鉆石,鉆石大小不一,你乘坐電梯從一樓到十樓,每層樓電梯門都會打開一次,手里只能拿一顆鉆石,問怎樣才能拿到最大的鉆石。

     

    電梯每層都會開一下的,所以,在第一層就拿,到第二層,看到更大就換一下,更小就不換,一直這樣上去,到最上層后,拿到的就是最大的。

     

     

    56、ArrayList list = new ArrayList(20);語句中的 list 集合大小擴充了幾次(A)

     

    A.0

     

    B.1

     

    C.2

     

    D.3

     

     

    57、如果去掉了 main 方法的 static 修飾符會怎樣(B)

     

    A.程序無法翻譯。

     

    B.程序能正常編譯,運行時或拋出 NoSuchMethodError 異常。

     

    C.程序能正常編譯,正常運行。

     

    D.程序能正常編譯,正常運行一會會立刻退出。

     

     

    58、啟動 java 程序進程時,輸入一下哪個參數可以實現年輕代的堆大小為 50M(C )

     

    A.-Xms50M

     

    B.-Xmx50M

     

    C.-Xmn50M

     

    D.-Xss50M

     

     

    59、下面程序輸出的結果是(A)

     

    static boolean foo(char c) {
        System.out.print(c);
        return true;
    }
    
    public static void main(String[] args) {
        int i = 0;
        for (foo('A'); foo('B') && (i < 2); foo('C')) {
            i++;
            foo('D');
        }
    }

     

    A.ABDCBDCB

     

    B.ABDCDBCB

     

    C.ABDBCDCB

     

    D.ABDBCDCB

     

     

    60、下面哪些是 Thread 類的方法(A,B,D)

     

    A.start()

     

    B.run()

     

    C.exit()

     

    D.getPriority()

     

     

    61、以下語句輸出的結果是什么(C)

     

    System.out.print(Integer.MAX_VALUE*2);

     

    System.out.print(Integer.MIN_VALUE*2);

     

    A.-2 -1

     

    B.-1 -2

     

    C.-2 0

     

    D.-1 -1

     

     

    62、??log4j的優先級從高到低的排序為(A)

     

    A.error>warn>info>debug

     

    B.warn>info>debug>error

     

    C.warn >debug>error>info

     

    D.error>warn>debug>info

     

     

    63、下列哪些方法可以使線程從運行狀態進入到阻塞狀態(BCD)

     

    A.notify

     

    B.wait

     

    C.sleep

     

    D.yield

     

     

    64、下列關于 Thread 類提供的線程控制的方法中,錯誤的一項是(A)

     

    A.在線程A中執行線程 B 的 join()方法,則線程 A 等待直到 B 執行完成。

     

    B.線程A通過調用 interrupt()方法來中斷其阻塞狀態。

     

    C.currentThread()方法返回當前線程的引用。

     

    D.若線程A調用方法 isAlive()返回為 true,則說明A正在執行中。

     

     

    65、設String s1 =”Topwalk”;String s2 =”Company”; 以 下 方 法 可 以 得 到 字 符 串“TopwalkCompany” 有:(ABD)

     

    A.s2+s1;

     

    B.s1.concat(s2)

     

    C.s1.append(s2);

     

    D.StringBuffer buf = new StringBuffer(s1); buf.append(s2);

     

     

    ???????66、String a = new String(“1”+”2”)最終創建了幾個對象(D)

     

    A.1

     

    B.2

     

    C.3

     

    D.4

     

     

    ???????67、int 類型占用(B)個字節?

     

    A.2

     

    B.4

     

    C.8

     

    D.16

     

     

    ???????68、下列那一條語句可以實現快速的復制一張數據庫表(C)

     

    A.select * into b from a where 1<>1;

     

    B.creat table b as select * from a where 0=1;

     

    C.insert into b as select * from a where 1<>1;

     

    D.insert into b select * from a where 1<>1;

     

     

    ???????69、屬于單例模式的特點的是(ACD)

     

    A.提供了對唯一實現的受控訪問

     

    B.允許可變數目的實例

     

    C.單例模式的抽象層會導致單例類擴展有和那的困難

     

    D.單例模式很容易導致數據庫的連接池溢出

     

     

    70、選擇 Oracle 的分頁語句的關鍵字(A)

     

    A.rownum

     

    B.limit

     

    C.TOP

     

    D.pagenum

     

     

    ???????71、選出可以查詢出所有的表和視圖的方法:(B)

     

    A.preparedStatement.getMetaData().getTables(***);

     

    B.connection.getMetaData().getTables(***);

     

    C.result.getMetaData().getTables(***);

     

    D..DiverManager.getMeta().getTables(***);

     

     

    ???????72、可以監控到數據庫變化的機制有哪些(ABC)

     

    A.存儲過程

     

    B.數據庫日志

     

    C.觸發器

     

    D.物化視圖

     

     

    ???????73、清空表所有數據的性能最優的語句是哪一個(B)

     

    A.delete from tsuer;

     

    B.truncate table tuser;

     

    C.drop table tuser;

     

    D.delete tuser;

     

     

    ???????74、文件對外共享的協議有哪幾個(AB)

     

    A.FTP

     

    B.Windows 共享

     

    C.TCP

     

    D.SSH

     

     

    ???????75、關于Java中特殊符號的用法正確的是(AD)

     

    A.判斷一個字符串 str 中是否含有“.”,可以根據 str.indexOf(“.”)是否等于-1 判斷。

     

    B.判斷一個字符串 str 是否含有“.”,可以根據 str.indexOf(“\\.”)是否等于-1 判斷。

     

    C.根據“.”分隔字符串 str 的寫法可以是 str.split(“\\.”)

     

    D.根據“.”分隔字符串 str 的寫法可以是 str.split(“.”)

     

     

    76、根據以下代碼回答問題,放置什么方法在第 6 行,會引起編譯錯誤的是(B)

     

    1.class Super {
    2.    public float getNum() {
    3.    }
    4.}
    5.public class Sub extends Super {
    6.
    7.}

     

    A.public float getNum{return 4.0f;}

     

    B.public void getNum(){}

     

    C.public void getNum(double d()){}

     

    D.public double getNum(float d){return 4.0d;}

     

     

    ???????77、根據以下代碼回答問題:輸出結果是什么?(B)

     

    class Foo {
        public static void main(String args[]) {
            try {
                return;
            } finally {
                System.out.println("Finally");
            }
        }
    }

     

    A.print out nothing;

     

    B.print out “Finally”

     

    C.編譯錯誤

     

    D.以上都不對

     

     

    ???????78、根據以下代碼回答問題,請問輸出 i 和 j 的值是多少(D)

     

    int i = 1, j = 10;
    do {
        if (i++ > --j) continue;
    } while (i < 5);

     

    A.i=6 j=5

     

    B.i=5 j=5

     

    C.i=6 j=4

     

    D.i=5 j=6

     

     

    79、???????請問以下是java關鍵字的有?(CD)

     

    A.run

     

    B.low

     

    C.import

     

    D.implements

     

     

    ???????79、以下哪些不屬于約束(CD)

     

    A.主鍵

     

    B.外鍵

     

    C.索引

     

    D.唯一索引

     

    E.not null

     

     

    ???????80、下列關于數據庫連接池的說法中哪個是錯誤的(D)

     

    A.服務器啟動時會初始建立一定數量的池連接,并一直維持不少于此數目的池連接。

     

    B.客戶端程序需要連接時,池驅動程序會返回一個使用的池連接并將其使用計數加 1。

     

    C.如果當前沒有空閑連接,驅動程序就會再新建一定數量的連接,新建連接的數量可以由配置參數決定。

     

    D.當使用池連接調用完成后,池驅動程序將此連接標記為空間,其他調用就可以使用這個連接。

     

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