六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場 > 面試題 > javaweb常見面試題及參考答案

javaweb常見面試題及參考答案

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

javaweb常見面試題及參考答案

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

  javaweb常見面試題及參考答案

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

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

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

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

  C 棧具有記憶作用

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

  正確答案: B

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

  (2)對(duì)于長度為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)槊芭?,那由時(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

  請將正確選項(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

  三、判斷題

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

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

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

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

  三、填空題

  請將每空的正確答案寫在答題紙上【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():喚醒被等待的線程。通常都喚醒線程池中的第一個(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)簡述String和StringBuffer、ArrayList和LinkedList、HashMap和HashTable的特點(diǎn)及區(qū)別。

  答:String 對(duì)象的長度一旦定義就固定就不可以改變,對(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)長inkedList要移動(dòng)指針。對(duì)于新增和刪除操作add和remove,LinkedList比較占優(yōu)勢,因?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