java初級(jí)工程師面試題及答案(答案在文末)

java初級(jí)工程師面試題及答案(答案在文末)

天津卓眾教育      2022-03-12 13:20:01     13

java初級(jí)工程師面試題及答案(答案在文末),  一、選擇題:(每題1分,共65分,包含復(fù)選題和單選題,復(fù)選題已做標(biāo)記,其余為單選題)1.下面哪一種修飾詞能使一個(gè)類(lèi)中的成員

課程價(jià)格 請(qǐng)咨詢(xún)

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

  


一、選擇題:(每題1分,共65分,包含復(fù)選題和單選題,復(fù)選題已做標(biāo)記,其余為單選題)


1.下面哪一種修飾詞能使一個(gè)類(lèi)中的成員變量?jī)H僅具有包可見(jiàn)性:


A、protected 


B、public


C、private 


D、以上皆不對(duì)



  2.符合對(duì)象(object)和類(lèi)(class)關(guān)系的是:


A、人和老虎


B、書(shū)和汽車(chē)


C、樓和涼亭


D、汽車(chē)和交通工具



  3.關(guān)于選擇結(jié)構(gòu)下列那個(gè)說(shuō)法正確?


A、if語(yǔ)句和else語(yǔ)句必須成對(duì)出現(xiàn) 


B、if語(yǔ)句可以沒(méi)有else語(yǔ)句對(duì)應(yīng)


C、switch結(jié)構(gòu)中每個(gè)case語(yǔ)句中必須用break語(yǔ)句 


D、switch結(jié)構(gòu)中必須有default語(yǔ)句



  4.return語(yǔ)句:


A、可以讓方法返回?cái)?shù)值


B、方法都必須含有


C、方法中可以有多句return 


D、不能用來(lái)返回對(duì)象



  5.throws的作用:


A、沒(méi)有意義 


B、表示后面的是方法的輸出值


C、表示方法可能會(huì)拋出意外 


D、方法的標(biāo)志,每個(gè)方法都必須有



  6.下列那個(gè)說(shuō)法正確?


A、不需要定義類(lèi),就能創(chuàng)建對(duì)象 


B、對(duì)象中必須有屬性和方法定義 


C、屬性必須是簡(jiǎn)單對(duì)象 


D、屬性可以是簡(jiǎn)單變量,也可以是一個(gè)對(duì)象



  7.關(guān)于方法的說(shuō)法哪個(gè)正確?


  A、方法中的形參BCD可以和方法所屬類(lèi)定義的屬性(變量)同名


  B、方法必須有形參


  C、同類(lèi)不同的方法中不能有同名的自變量?否則會(huì)有不可預(yù)測(cè)的結(jié)果


  D、沒(méi)有返回值的方法可以用void來(lái)表示,也可以不加



  8.下列那個(gè)是正確?


A、一個(gè)程序可以包含多個(gè)源文件 


B、一個(gè)源文件中只能有一個(gè)類(lèi)


C、一個(gè)源文件中可以有多個(gè)公共類(lèi) 


D、一個(gè)源文件只能供一個(gè)程序使用



  9.下列那個(gè)說(shuō)法正確?


  A、Java允許一個(gè)子類(lèi)有多個(gè)父類(lèi)


  B、某個(gè)類(lèi)是一個(gè)類(lèi)的子類(lèi),它仍有可能成為另一個(gè)類(lèi)的父類(lèi)


  C、一個(gè)父類(lèi)只能有一個(gè)子類(lèi)


  D、繼承關(guān)系最多不能超過(guò)四層



  10.關(guān)于構(gòu)造方法的說(shuō)法哪個(gè)正確?


A、一個(gè)類(lèi)只能有一個(gè)構(gòu)造方法 


B、一個(gè)類(lèi)可以有多個(gè)不同名的構(gòu)造方法


C、構(gòu)造方法與類(lèi)同名 


D、構(gòu)造方法必須自己定義,不能使用父類(lèi)的構(gòu)造方法



  11.下列那個(gè)說(shuō)法正確?


  A、子類(lèi)只能覆蓋父類(lèi)的方法,而不能重載


  B、子類(lèi)只能重載父類(lèi)的方法,而不能覆蓋


  C、子類(lèi)不能定義和父類(lèi)同名同形參的方法,否則,系統(tǒng)將不知道調(diào)用哪個(gè)方法


  D、重載就是一個(gè)類(lèi)中有多個(gè)同名但有不同形參和方法體的方法



  12.關(guān)于抽象類(lèi)下列哪個(gè)說(shuō)法正確?


  A、抽象類(lèi)中不可以有非抽象方法


  B、某個(gè)非抽象類(lèi)的父類(lèi)是抽象類(lèi),則這個(gè)子類(lèi)必須重載父類(lèi)的所有抽象方法


  C、抽象類(lèi)無(wú)法創(chuàng)建對(duì)象


  D、接口和抽象類(lèi)是同一回事



  13.哪個(gè)(些)是java關(guān)鍵字? (復(fù)選題)


A、run 


B、default


C、implement 


D、import



  14.被聲明為private、protected及public的類(lèi)成員,在類(lèi)外部:


A、只能訪(fǎng)問(wèn)聲明為public的成員 


B、只可能訪(fǎng)問(wèn)到聲明為protected和public的成員


C、都可以訪(fǎng)問(wèn) 


D、都不能訪(fǎng)問(wèn)



  15.關(guān)于抽象方法,下列描述正確的是?


A、可以有方法體 


B、可以出現(xiàn)在非抽象類(lèi)中


C、是沒(méi)有方法體的方法 


D、抽象類(lèi)中的方法都是抽象方法



  16.關(guān)于main()方法的說(shuō)法哪個(gè)正確?


  A、main()方法只能放在公共類(lèi)中


  B、main()方法的頭定義可以根據(jù)情況任意更改


  C、一個(gè)類(lèi)中可以沒(méi)有main()方法


  D、所有對(duì)象的創(chuàng)建都必須放在main()方法中



  17.關(guān)于main方法的說(shuō)法哪個(gè)正確?


  A、main方法只能放在公共類(lèi)中


  B、一個(gè)編譯單元中允許一個(gè)以上的類(lèi)具有主方法


  C、main方法的頭定義可以根據(jù)情況任意更改


  D、所有對(duì)象的創(chuàng)建都必須放在main方法中



  18.下列那個(gè)聲明是正確的?


A、 abstract final class Hh {} 


B、 abstract private move(){}


C、 protected private number; 


D、 public abstract class Car{}



  19.關(guān)于對(duì)象成員占用內(nèi)存的說(shuō)法哪個(gè)正確?


  A、同一個(gè)類(lèi)的對(duì)象共用同一段內(nèi)存


  B、同一個(gè)類(lèi)的對(duì)象是用不同的內(nèi)存段,但靜態(tài)成員共享相同的內(nèi)存空間


  C、對(duì)象的方法不占用內(nèi)存


  D、以上都不對(duì)



  20.關(guān)于this和super,下列說(shuō)法正確的是?


A、都可以在main()方法中使用 


B、都是指一個(gè)內(nèi)存地址


C、不能用在main()方法中 


D、意義相同



  21.關(guān)于方法的形參,下列說(shuō)法正確的是?


A、必須定義多個(gè)形參 


B、至少有一個(gè)


C、可以沒(méi)有 


D、只能是簡(jiǎn)單變量



  22.關(guān)于接口下列哪個(gè)說(shuō)法正確?


A、實(shí)現(xiàn)一個(gè)接口必須實(shí)現(xiàn)接口的所有方法 


B、一個(gè)類(lèi)只能實(shí)現(xiàn)一個(gè)借口


C、接口間不能有繼承關(guān)系 


D、接口和抽象類(lèi)是一回事



  23.關(guān)于接口下列哪個(gè)說(shuō)法正確?


  A、一個(gè)類(lèi)不能同時(shí)實(shí)現(xiàn)多個(gè)接口 


B、接口中只能有方法聲明,不能有數(shù)據(jù)成員


  C、接口間不能有繼承關(guān)系 


D、接口中的數(shù)據(jù)成員都是靜態(tài)常量



  24.有整型數(shù)組:int[] x={12,35,8,7,2};,則調(diào)用方法Arrays.sort(x)后,數(shù)組x中的元素值依次是?


  A、 2 7 8 12 35 


B、 12 35 8 7 2


  C、 35 12 8 7 2 


D、 8 7 12 35 2



  25.下列那個(gè)說(shuō)法正確?


  A、子類(lèi)即可以重載父類(lèi)的方法,又可以覆蓋父類(lèi)的方法


  B、子類(lèi)只能重載父類(lèi)的方法,而不能覆蓋


  C、子類(lèi)不能定義和父類(lèi)同名同形參的方法,否則,系統(tǒng)將不知道調(diào)用哪個(gè)方法


  D、子類(lèi)只能覆蓋父類(lèi)的方法,而不能重載



  26.下列那個(gè)說(shuō)法是正確的? (復(fù)選題)


  A、程序執(zhí)行到break語(yǔ)句時(shí)一定會(huì)結(jié)束所有的循環(huán)


  B、程序執(zhí)行到continue語(yǔ)句時(shí)會(huì)結(jié)束當(dāng)前循環(huán)


  C、break語(yǔ)句和continue語(yǔ)句都可以和標(biāo)簽協(xié)同使用


  D、continue語(yǔ)句和break語(yǔ)句的作用相同



  27.while循環(huán)和do-while循環(huán)的區(qū)別是?


  A、沒(méi)有區(qū)別,這兩個(gè)結(jié)構(gòu)在任何情況下效果一樣


  B、while循環(huán)比do-while循環(huán)執(zhí)行效率高


  C、while循環(huán)是先循環(huán)后判斷,所以循環(huán)體至少被執(zhí)行一次


  D、do-while循環(huán)是先循環(huán)后判斷,所以循環(huán)體至少被執(zhí)行一次



  28.關(guān)于類(lèi)和對(duì)象的描述正確的是(復(fù)選題)


  A、類(lèi)是對(duì)一組對(duì)象的抽象


  B、對(duì)象是現(xiàn)實(shí)世界的一個(gè)實(shí)體


  C、父類(lèi)的屬性包含子類(lèi)的屬性


  D、封裝是把過(guò)程和數(shù)據(jù)包圍起來(lái),外部對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)只能通過(guò)已定義的界面



  29.在Java中,基本的數(shù)據(jù)類(lèi)型是?


  A、String 


B、Byte 


C、Integer 


D、boolean



  3.下面說(shuō)法正確的是?


  A、當(dāng)運(yùn)行Javac命令對(duì)一個(gè)Java源程序(.java)進(jìn)行編譯時(shí),必須寫(xiě)出該源文件的完整的文件名,包括擴(kuò)展名.java


  B、當(dāng)運(yùn)行Javac命令對(duì)一個(gè)Java源程序(.java)進(jìn)行編譯時(shí),不必寫(xiě)出該源文件的擴(kuò)展名.java


  C、當(dāng)用Java命令解析運(yùn)行一個(gè)class文件時(shí),必須寫(xiě)出該class文件的擴(kuò)展名.class


  D、無(wú)論運(yùn)行Javac還是Java命令,后面的源文件都必須給出文件擴(kuò)展名



  31.下面的標(biāo)識(shí)符錯(cuò)誤的是?


  A.、$us 


B、 _b


  C、const 


D、jack



  32.下面關(guān)于C++和Java中char數(shù)據(jù)類(lèi)型的正確描述是:(復(fù)選題)


  A、C++和Java中char變量中都不能存放一個(gè)漢字


  B、C++和Java都采用unicode編碼


  C、在C++和Java中char變量中,變量ch和CH不是同一個(gè)變量


  D、C++和Java中char類(lèi)型都是基本類(lèi)型


  33.public class Foo{

  public static void main(String args[]){

  String s;

  System.out.println(?s=”+s);

  }

  }

  程序運(yùn)行的結(jié)果是?


  A、 s=s 


B、s=null


  C、 編譯錯(cuò)誤 


D、null



  34.public class Foo{public static void main(String args[]){

  try{return;}

  finally{ System.out.println(?Finally”);}

  }

  程序運(yùn)行的結(jié)果是?


  A、什么也沒(méi)有


  B、Finally


  C、編譯錯(cuò)誤



  35.下面那個(gè)變量聲明不正確的?


  A、IloveJava


  B、$2


  C、piggy@msl


  D、Hello_world



  36.下面關(guān)于JAVA的優(yōu)點(diǎn)說(shuō)法錯(cuò)誤的是?


  A、JAVA是純面向?qū)ο蟮恼Z(yǔ)句,還有眾多的API支持,所以JAVA開(kāi)發(fā)各種各樣的應(yīng)用程序變的非常容易且易于維護(hù)。


  B、JAVA使用的是Unicode作為標(biāo)準(zhǔn)字符,這使得JAVA程序在不同的語(yǔ)言平臺(tái)上都能被編譯和運(yùn)行。


  C、JAVA引進(jìn)來(lái)的EXCEPTION處理機(jī)制,使得JAVA程序更安全、更穩(wěn)定、更隨機(jī)應(yīng)變


  D、垃圾回收機(jī)制是JAVA的內(nèi)在特性,垃圾回收機(jī)制的調(diào)度是有程序員負(fù)責(zé)的



  37.下面關(guān)于JVM說(shuō)法不準(zhǔn)確的是?


  A、 JVM目前已有針對(duì)不同的平臺(tái)開(kāi)發(fā)了多個(gè)相應(yīng)的版本。


  B、所以的JAVA程序編譯成字節(jié)碼后都需要被調(diào)度到相應(yīng)版本的JVM中才能執(zhí)行。


  C、各個(gè)版本的JVM對(duì)內(nèi)存的管理都是通過(guò)GC機(jī)制實(shí)現(xiàn)的


  D、JVM機(jī)制的引入才使我們的程序很容易的動(dòng)態(tài)內(nèi)存管理及多線(xiàn)程、JavaBean等服務(wù)。



  38.下面關(guān)于JDK工具的說(shuō)法不正確的?(復(fù)選題)


  A、我們可以通過(guò)JAVAC工具實(shí)現(xiàn)對(duì)JAVA程序的編譯并能通過(guò)-d參數(shù)指定字節(jié)碼文件的位置。


  B、-classpath無(wú)論對(duì)java及javac工具都有引進(jìn)其它類(lèi)的作用。


  C、javadoc工具可以把我們程序用所有注釋部分自動(dòng)生成html文檔.


  D、appletview工具可以用來(lái)運(yùn)行我們的applet小程序。



  39.下面關(guān)于int在java程序中長(zhǎng)度的說(shuō)法精確的是?


  A、1 bytes


  B、2 bytes


  C、4 bytes


  D、8 bytes



  4.下面代碼中那一個(gè)不能夠創(chuàng)建一個(gè)數(shù)組?


  A 、float []f[] = new float[6][6];


  B 、float f[][] = new float[][6];


  C、float [][]f = new float[6][6];


  D、float [][]f = new float[6][];



  41.給出如下聲明?


  String s1=new String(“Hello”);


  String s2=new String(“there”);


  String s3=new String();


  下列選現(xiàn)中( )是合法的


  A、s3 = s1 + s2 


B、s3 = s1 – s2 


C、s3 = s1 & s2 


D、s3 = s1 && s2



  42.給出下面代碼段:


  boolean m = true;

  if(m = false)

  System.out.println(“False”);

  else

  System.out.println(“True”);

  運(yùn)行的結(jié)果是? ( )


A 、False 


B、True


C、 None 


D、 An error will occur when running



  43.下面的程序編譯運(yùn)行的結(jié)果是:


  public class Something {

  public static void main(String[] args) {

  Other o = new Other();

  new Something().addOne(o);

  }

  public void addOne(final Other o) {

  o.i++;

  }

  }

  class Other {

  public int i;

  }


  A、編譯時(shí)出錯(cuò)


  B、運(yùn)行時(shí)出錯(cuò)


  C、正確運(yùn)行



  44.下面代碼如何使成員變量m 被函數(shù)fun()直接訪(fǎng)問(wèn)?


  class Test{

  private int m;

  public static void fun() {

  // some code?

  }

  }


  A、將private int m 改為protected int m


  B、將private int m 改為 public int m


  C、將private int m 改為 static int m


  D、將private int m 改為 int m



  45.下面哪幾個(gè)函數(shù)是public void example(){?}的重載函數(shù)?(復(fù)選題)


  A、public void example( int m){?}


  B、public int example(){?}


  C、public void example2(){?}


  D、public int example ( int m, float f){?}



  46.下面的代碼段中,執(zhí)行之后i 和j 的值是什么?


  int i = 1;

  int j;

  j = i++;


  A、1, 1


  B、1, 2


  C、2, 1


  D、2, 2



  47.已知如下的命令執(zhí)行 java MyTest a b c請(qǐng)問(wèn)哪個(gè)語(yǔ)句是正確的?


  A、args[] = ?MyTest a b c”


  B、args[] = ?MyTest”


  C、args[] = ?a”


  D、args[1]= ‘b’



  48.class J_Test{

  public static void main(String args[])

  {

  int i= 99;

  mb_operate(i);

  System.out.print(i+1);

  } // End of method: main

  static void mb_operate(int i)

  {

  i+=1;

  } // End of method: mb_ operate

  } // End of class: J_Test

  上面程序的輸出是什么? ( )


  A、 99 


B、 199 


C、 299 


D、 991



  49.下面代碼運(yùn)行的結(jié)果是:

  String s = new String(?Bicycle”);

  int iBegin = 1;

  char iEnd = 3;

  System.out.println(s.substring(iBegin, iEnd));


  A、Bic


  B、ic


  C、icy


  D、error:no method matching substring(int,char)



  50.class J_StringBuffer{

  public static void main(String args[]){

  StringBuffer a = new StringBuffer(?A”);

  StringBuffer b = new StringBuffer(?B”);

  mb_operate(a, b);

  System.out.println(a + ?.” + b);

  } // End of method: main

  static void mb_operate(StringBuffer x, StringBuffer y){

  x.append(y);

  y=x;

  } // End of method: mb_operate

  } // End of class: J_StringBuffer

  上面程序的輸出是什么?


  A、A.B


  B、A.A


  C、AB.AB


  D、AB.B



  51.認(rèn)真閱讀下段例程,


  1) class Super{


  2) public float getNum(){return 3.f;}


  3) }


  4)


  5) public class Sub extends Super{


  6)


  7) }


  下面語(yǔ)句,哪句放在第6行會(huì)引起編譯錯(cuò)誤?


  A、public float getNum(){return 4.f;}


  B、public void getNum(){}


  C、public void getNum(double d){}


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



  52.在Q2_2類(lèi)哪個(gè)是合法的覆蓋(override)?


  public clsss Q2_1

  {

  public void method(int k){};

  }

  class Q2_2 extends Q2_1

  {

  }


  A、public void method(int i){};


  B、public void method(int j,int k){}


  C、public float method(int k){};


  D、private void method(int k){};



  53.在Q2_2類(lèi)中下面選項(xiàng)哪個(gè)沒(méi)有形成合法的覆蓋(override)? (復(fù)選題)


  public class Q2_1

  {

  protected void method(int k ,char c){};

  }

  class Q2_2 extends Q2_1

  {

  }


  A、public void method(int i,char c){}


  B、public void method(char c, long n){}


  C、public float method(int k,char c){return 3.2F;}


  D、protected void method(int k,char c){}



  54.下面的類(lèi)中,哪個(gè)不是合法的重載(overload)?


  public class Q1

  {

  public void method(int i){}

  }


  A、private void method(int i,int j){}


  B、public void method(int k){}


  C、private float method(float f){}


  D、public String method(int i,int j){}


  E、public float method(float f){}



  55.看下面的代碼,選擇正確的結(jié)論:

  class SuperClass

  {

  int i=8 ;

  SuperClass()

  {

  add(1);

  }

  void add(int j)

  {

  i=i+j;

  }

  }

  class SubClass extends SuperClass

  {

  int i=8;

  void add(int j)

  {

  i=i+2*j;

  }

  }

  public class MainClass

  {

  public static void main(String args[])

  {

  SuperClass a=new SubClass();

  System.out.println(a.i);

  }

  }


A 、編譯時(shí)出現(xiàn)錯(cuò)誤 


B、運(yùn)行時(shí)出現(xiàn)錯(cuò)誤


C、輸出 1 


D、輸出 8



  56.閱讀以下例程,

  int i=1,j=1;

  do{

  if(i++>–j) continue;

  }while(i<5);

  此段程序執(zhí)行后,i和j的值是:


  A、 i=6 j=5


  B、 i=5 j=5


  C、 i=6 j=4


  D、 i=5 j=6


  E、 i=6 j=6



  57.對(duì)垃圾回收機(jī)制敘述正確的是:(復(fù)選題)


  A、垃圾回收總是在程序結(jié)束時(shí)由虛擬機(jī)啟動(dòng)


  B、一個(gè)對(duì)象在沒(méi)有reference時(shí)會(huì)立即被回收


  C、垃圾回收時(shí)機(jī)是沒(méi)有保證的


  D、程序員不能主動(dòng)喚起垃圾回收



  58.以下語(yǔ)句中有語(yǔ)法錯(cuò)誤的是:


  A、 for(;;;);


  B、 for (int i=;i<1;i++){};


  C、 if (a<) a++;


  D、 ; ; ;



  59.選擇程序的標(biāo)準(zhǔn)輸出結(jié)果

  public class WhatIsX

  {

  public static void f(StringBuffer x)

  {

  x=x.append(x);

  }

  public static void main(String[] args)

  {

  StringBuffer x=new StringBuffer(?1″);

  f(x);

  System.out.println(x);

  }

  }


  A、1


  B、11


  C、2


 

  60.請(qǐng)問(wèn)下面程序代碼中,最后的a,b變量所存放的數(shù)值是什么?


  int x,a=5,b=3;


  x=a+++b–


  A、x=8,a=5,b=3


  B、x=8,a=6,b=2


  C、x=7,a=5,b=2


  D、x=9,a=6,b=3



  61.下面程序代碼運(yùn)行完畢后,變量值會(huì)多少?


  class A

  {

  public static void main(String args[])

  {

  int x=5;

  switch(x)

  {

  case 5: x++;

  System.out.println(x);

  case 2+4:

  System.out.println(x);

  default:

  x+=2;

  System.out.println(x);

  }

  }


  A、5


  B、6


  C、7


  D、5,6


  E、6,7


  F、6,6



  62.public class Test{

  public static void main(String[] args){

  String foo=args[1];

  String bar=args[2];

  String baz=args[3];

  }

  }

  java Test Red Green Blue

  baz的值是多少?


  A、baz has value of ?”


  B、baz has value of null


  C、baz has value of ?Red”


  D、baz has value of ?Blue”


  E、baz has value of ?Green”


  F、the code does not compile


  G、the program throw an exception



  63. int index=1;

  int foo[]=new int[3];

  int bar=foo[index];

  int baz=bar+index;

  結(jié)果是多少?


  A、baz has a value of


  B、baz has value of 1


  C、baz has value of 2


  D、an exception is thrown


  E、the code will not compile



  64.定義一個(gè)類(lèi)名為“MyClass”的類(lèi),并且該類(lèi)可被一個(gè)工程中的所有類(lèi)訪(fǎng)問(wèn),那么該類(lèi)的正確聲明應(yīng)為:


  A、private class MyClass extends Object


  B、class MyClass extends Object


  C、public class MyClass


  D、private class MyClass extends Object



上題答案如下:



Java面試題及答案

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。