亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場(chǎng) > 面試題 > javaweb常見面試題及參考答案

      javaweb常見面試題及參考答案

      時(shí)間: 如英753 分享

      javaweb常見面試題及參考答案

        javaweb個(gè)人求職者要去參加面試之前,得先了解一下javaweb面試中一些常見的面試題并學(xué)會(huì)怎么回答。下面是學(xué)習(xí)啦小編為大家?guī)淼膉avaweb常見面試題及參考答案,相信對(duì)你會(huì)有幫助的。

        javaweb常見面試題及參考答案

        (1)下列各題ABCD四個(gè)選頊中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)填寫在答題紙上

        (1)下列關(guān)于棧的描述中錯(cuò)誤的是( B)

        A. 棧是先進(jìn)后出的線性表

        B 棧只能順序存儲(chǔ)

        C 棧具有記憶作用

        D 對(duì)棧的插入弓刪除操作中,不需要改變棧底指針

        正確答案: B

        分析: 棧是鏈?zhǔn)酱鎯?chǔ)的

        (2)對(duì)于長(zhǎng)度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是( )

        A 冒泡排序?yàn)閚/2

        B 冒泡排序?yàn)閚

        C 快速排序?yàn)閚

        D 快速排序?yàn)閚(n-l)/2

        正確答案: D

        分析:

        想想快速排序,每次都會(huì)選取線性表的軸值,隨后以此軸值劃分為兩個(gè)子線性表再分別進(jìn)行快排,在最壞情況下,也就是說每次選出的線性表軸值完全不能將這個(gè)線性表劃分為兩個(gè)子線性表。那么此時(shí)快速排序退化為冒泡排序了。

        那么第一趟排序時(shí),軸值(線性表的中間位置)被選出,這個(gè)值絕對(duì)是這個(gè)線性表中最大的(不然也不能是最壞情況),其他值都比他小,那么線性表現(xiàn)在分為完全不對(duì)等的兩段(一段是0,另一段是n - 1),一段是這個(gè)值,一段是其他值。同樣第二趟排序在剛才剩下的值中選中間值(剩余值中最大的那個(gè)),又分為不對(duì)等兩段,依次遞推。也就是說每次都比較了N - 1個(gè)元素(軸值選出后都與它比較大小),那么肯定是比較了n - 1次(如第一次先挑了個(gè)軸值,然后剩下n - 1比較),n代表當(dāng)前子線性表中元素個(gè)數(shù) 由此最白癡的數(shù)列問題出現(xiàn)了,如下

        1 + 2 + 3 + .......... + n - 2 + n - 1 = n(n - 1) / 2

        還有一種投機(jī)取巧的方法,在最垃圾情況下既然快排變?yōu)槊芭荩怯蓵r(shí)間復(fù)雜度知其必為o(n ^ 2)的復(fù)雜度,答案中ABC都是線性時(shí)間復(fù)雜,顯然錯(cuò)誤

        (3)下列對(duì)于線性鏈表的描述中正確的是( )

        A 存儲(chǔ)空間間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的

        B 存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

        C 存儲(chǔ)定間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

        D 存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

        答案是A, 分析 鏈接存儲(chǔ)并不要求存儲(chǔ)空間連續(xù),存儲(chǔ)位置也不用有序

        (4)為了使模塊爆可能獨(dú)立,要求( )

        A 模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

        B 模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

        C 模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

        D 模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

        答案:B

        分析:高內(nèi)聚,低耦合。

        5)下列敘述中,正確的是( )

        A Java語言的標(biāo)識(shí)符是區(qū)分大小寫的

        B 源文件名與public類名可以不相同

        C 源文件擴(kuò)展名為.jar

        D 源文件中public類的數(shù)目不限

        答案:A

        6)下列屬于合法的Java標(biāo)識(shí)符是( )

        A _cat

        B 5books

        C +static

        D -3.14159

        答案:A

        7) 在Java中,表示換行符的轉(zhuǎn)義字符是( )

        A \n

        B \f

        C ‘n’

        D \dd

        答案:A

        ( 8)扯Java中,所有類的根類是( )

        A. java.lang.Object

        B.java.lang.Class

        C.java.applet.Applet

        D.java.awt.Frame

        答案:A

        (9).在Java+中,用Package語句說明一個(gè)包時(shí),該包的層次結(jié)構(gòu)必須是(

        A 與文件的結(jié)構(gòu)相同

        B 與文件目錄的層次相同 )

        C 與文件類型相同

        D 與文件大小相同

        答案:A

        (10)在讀字符文件Employee.dat時(shí),使用該文件作為參數(shù)的類是( )。

        A BufferReader

        B DatalnputStream

        C DataOutoutStream

        D FileInputStream

        答案:D

        (11)在Java中,能實(shí)現(xiàn)多重繼承效果的方式是( )。

        A 內(nèi)部類

        B 適配器

        C 接口

        D 同步

        答案:C

        (12) char類型的取值范圍是( )。

        A 2-7~27-1

        B 0~216-1

        C -215~215—1

        D 0~28-1

        答案:A

        (13)下列方法中可以用來創(chuàng)建一個(gè)新線程的是( )。

        A 實(shí)現(xiàn)java.lang.Runnable接口并重寫start0方法

        B 實(shí)現(xiàn)java.iang.Runnable接口并重寫run0方法

        C 繼承java.lang.Thread類并重寫run0方法

        D 繼承java.lang.Thread類并重寫start0方法

        答案:C

        (14)下列關(guān)于線程優(yōu)先級(jí)的說法中,正確的是( )。

        A.線程的優(yōu)先級(jí)是不能改變的

        B.線程的優(yōu)先級(jí)是在創(chuàng)建線程時(shí)設(shè)置的

        C.在創(chuàng)建線程后的任何時(shí)候都可以設(shè)置

        D. B和C

        答案:C

        (15)下列代碼中,將引起一個(gè)編譯錯(cuò)誤的行是( )。

        1) public class Test{

        2) int m, n;

        3) public Test(){}

        4)

        5)

        6)

        7)

        8)

        9)

        10)

        11)

        12)} public Test(int a){ m=a;) public static void main(String args0){ Test t1, t2; int j, k; j=0; k=0; t1 = new Test(); } t2 = new Test(j,k);

        A.第3行

        B.第5行

        C.第6行

        D.第10行

        答案:D

        (16)閱讀下列代碼后

        public class Person{

        int arr[]=new int[10];

        public static void main(String args[ ]){

        System.out.println(arr[l]);

        正確的說法是( )。

        A 編譯時(shí)將產(chǎn)生錯(cuò)誤

        B 編譯時(shí)正確,運(yùn)行時(shí)將產(chǎn)生錯(cuò)誤

        C 輸出零

        D 輸出空

        答案:A

        (17) AIDL支持以下哪種數(shù)據(jù)類型?l)string 2)list 3)map 4)All native java datatype( ){,

        A.1,2和3

        B.4

        C.以上所有

        D.都不支持

        答案:C

        分析:

        AIDL 服務(wù)只支持有限的數(shù)據(jù)類型,如果用AIDL服務(wù)傳遞一些復(fù)雜的數(shù)據(jù)就需要做更一步處理,AIDL 服務(wù)支持的數(shù)據(jù)類型如下:

        1. Java 的原生類型

        2. String 和CharSequence

        3. List 和 Map ,List和Map 對(duì)象的元素必須是AIDL支持的數(shù)據(jù)類型;

        以上三種類型都不需要導(dǎo)入(import)

        4. AIDL 自動(dòng)生成的接口

        需要導(dǎo)入(import)

        5. 實(shí)現(xiàn)android.os.Parcelable 接口的類. 需要導(dǎo)入(import)。

        二、多項(xiàng)選擇題

        下列各題A.、B.、C.、D.四個(gè)選項(xiàng)中,有一個(gè)或多個(gè)選項(xiàng)是正確的, (l)下列說法正確的有( )。

        A. 環(huán)境變量可在編譯source code時(shí)指定.

        B.在編譯程序時(shí),所能指定的環(huán)境變盛不包括class path

        C.javac -次可同時(shí)編譯數(shù)個(gè)Java源文件

        D. javac.exe能指定編譯結(jié)果要置于哪個(gè)目錄(directory)

        答案:BCD

        (2)不能用來修飾interface的有( )

        A. private B.public C.protected D.static

        答案:ACD

        (3)下列說法錯(cuò)誤的有( )

        A.在類方法中可用this來調(diào)用本類的類方法

        B。在類方法中調(diào)用本類的類方法時(shí)可直接調(diào)用

        C.在類方法中只能調(diào)用本類中的類方法

        D.在類方法中絕對(duì)不能調(diào)用實(shí)例方法

        答案:ACD

        請(qǐng)將正確選項(xiàng)填寫在答題紙上

        (4)下列說法錯(cuò)誤的有( )

        A. Java面向?qū)ο笳Z言容許單獨(dú)的過程與函數(shù)存在

        B. Java面向?qū)ο笳Z言容許單獨(dú)的方法存在

        C. Java語畝中的方法屬于類中的成員(member)

        D. Java語言中的方法必定隸屬于某…類(對(duì)象),調(diào)用方法與過程或函數(shù)相同 答案:ABC

        (5)下列說法錯(cuò)誤的有( )。

        A.能被java.exe成功運(yùn)行的java class文件必須有main()方法

        B.J2SDK就是Java API

        C. Appletviewer.exe可利用jar選項(xiàng)運(yùn)行Jar文件

        D.能被Appletviewer成功運(yùn)行的java class文件必須有main()方法

        答案:BCD

        三、判斷題

        請(qǐng)將每空的正確答案寫在答題紙上,答在試卷上不得分。

        (1) Java程序中的起始類名稱必須與存放該類的文件名相同。(對(duì))

        (2) Unicode是用16位來表示一個(gè)字的。(對(duì))

        (3) 原生類中的數(shù)據(jù)類型均可任意轉(zhuǎn)換。(對(duì))

        三、填空題

        請(qǐng)將每空的正確答案寫在答題紙上【l】至【25】序號(hào)的橫線上,答在試卷上不得分。 (l)某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【1】 二叉樹的終端結(jié)點(diǎn)(葉子結(jié)點(diǎn))數(shù)等于雙分支結(jié)點(diǎn)數(shù)加1。

        (2)在面向?qū)ο蠓椒ㄖ校惖膶?shí)例稱為【2】

        (3)診斷和改正程序中錯(cuò)誤的工作通常稱為【3】

        (4)在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【4】

        (5)Java 源文件中最多只能有一個(gè)【5】 public 類, 其他類的個(gè)數(shù)不限。

        (6)線程在生命周期中要經(jīng)歷5中狀態(tài),分別是新建狀態(tài)(準(zhǔn)備)、可運(yùn)行狀態(tài)(就緒)、運(yùn)行狀態(tài)(運(yùn)行)?!?】 暫停(阻塞) 狀態(tài)和終止?fàn)顟B(tài)(死亡)。

        (7)FileInputStream 是字節(jié)流;BufferedWriter是字符流, ObjectOutputStream是 【7】 對(duì)象序列化流

        (8)當(dāng)使用Thread t = new Thread(r)創(chuàng)建一個(gè)線程時(shí),表達(dá)式r instance of Thread 的值為【8】 false 。 r instanceOf Runnable

        1.抽象類和接口的區(qū)別?

        抽象類:

        1)抽象方法,只有行為的概念,沒有具體的行為實(shí)現(xiàn)。使用abstract

        關(guān)鍵字修飾,沒有方法體。子類必須重寫這些抽象方法。

        2)包含抽象方法的類,一定是抽象類。

        3)抽象類只能被繼承,一個(gè)類只能繼承一個(gè)抽象類。

        接口:

        1)全部的方法都是抽象方法,屬型都是常量

        2)不能實(shí)例化,可以定義變量。 3)接口變量可以引用具體實(shí)現(xiàn)類的實(shí)例 4)接口只能被實(shí)現(xiàn),一個(gè)具體類實(shí)現(xiàn)接口,必須實(shí)現(xiàn)全部的抽象方法 5)接口之間可以多實(shí)現(xiàn) 6)一個(gè)具體類可以實(shí)現(xiàn)多個(gè)接口,實(shí)現(xiàn)多繼承現(xiàn)象

        2.列舉你所知道的線程同步的方法:

        1)wait():讓線程等待。將線程存儲(chǔ)到一個(gè)線程池中。

        2)notify():?jiǎn)拘驯坏却木€程。通常都喚醒線程池中的第一個(gè)。讓被喚醒的線程處于臨時(shí)阻塞狀態(tài)。

        3)notifyAll(): 喚醒所有的等待線程。將線程池中的所有線程都喚醒。

        3.equals()方法和“==”操作符的區(qū)別是什

        么?重寫equals()方法的時(shí)候,我們還需要重寫哪些方法?為什么?

        “==”比較的是一個(gè)對(duì)象在內(nèi)存中的地址值,棧中的內(nèi)容是否相同

        equals()是針對(duì)引用的,比較的是引用類型的內(nèi)容一樣不一樣,堆中的內(nèi)容是否相同

        重寫equals()方法的時(shí)候,需重寫hashcode方法,這樣比較的時(shí)候,比較的是兩個(gè)對(duì)象的hash值,不同對(duì)象的hash值不同。

        7.寫一個(gè)函數(shù)計(jì)算但參數(shù)為n(n很大)時(shí)

        的值1-2+3-4+5-6+7„„+n。(提示:考慮程序執(zhí)行效率)

        private static void jisuan(int n) {

        int sum=0;

        if(n%2==0){

        sum=-(n/2);

        (11)簡(jiǎn)述String和StringBuffer、ArrayList和LinkedList、HashMap和HashTable的特點(diǎn)及區(qū)別。

        答:String 對(duì)象的長(zhǎng)度一旦定義就固定就不可以改變,對(duì)于已經(jīng)存在的String對(duì)象的修改都是創(chuàng)建一個(gè)新的對(duì)象,然后把新的值存進(jìn)去,String類不能被繼承。StringBuffer是一個(gè)可變對(duì)象,當(dāng)對(duì)它進(jìn)行修改的時(shí)候不會(huì)像String那樣重新建立對(duì)象。它只能通過構(gòu)造函數(shù)來建立對(duì)象。另外StringBuffer還是一個(gè)線程安全的類。

        ArrayList是實(shí)現(xiàn)了基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu)用于,LinkedList基于連表的數(shù)據(jù)結(jié)構(gòu),二者都可以存儲(chǔ)對(duì)象的引用。對(duì)于隨機(jī)訪問get和set,ArrayList優(yōu)于LinkedList,因?yàn)長(zhǎng)inkedList要移動(dòng)指針。對(duì)于新增和刪除操作add和remove,LinkedList比較占優(yōu)勢(shì),因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)。

        HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,在只有一個(gè)線程訪問的情況下,效率要高于Hashtable。

        HashMap允許將null作為一個(gè)entry的key或者value,而Hashtable不允許。 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因?yàn)閏ontains方法容易讓人引起誤解。

        Hashtable繼承自Dictionary類,而HashMap是Java1.2引進(jìn)的Map interface的一個(gè)實(shí)現(xiàn)。

        最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個(gè)線程訪問Hashtable時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而HashMap 就必須

        } System.out.println(""+sum); }else{ sum=-(n-1)/2+n; System.out.println(""+sum); }

        為之提供外同步。

      點(diǎn)擊下頁還有更多>>>javaweb常見面試題及參考答案

      1082023