java工程師基礎筆試題(一)-參考答案


一.選擇和填空  (不定項哦!)

1,如下是一份文件名為Test2.java的源文件,請問,編譯該文件之后會生成幾份字節碼文件

class Test{

class Inner{}

        static class hh{}

}

class Test1{

interface IInterface{}

}

enum Gender{

}

 

A 1   B 3   C 5  D 6

解析: D,一個java文件中的每個類\接口\枚舉都會編譯成class文件,如果class前加了public修飾,那么必須與文件名相同

 

 

 

2,下列代碼C.java

public class Hello{

/**

 *  只是一個測試類

 *  /**

 *     您好,java

 *  **/ 

 *  // 請仔細找茬喔,親!

 **/

 static public void main(String[] a){

 System.out.println('您好,java'); 

 }

}

 

請標出上面代碼錯誤的地方________________

 解析:

   /**
  錯誤1.  如果有public修飾類名應與文件名一致  
  錯誤2.  應該  public static void
  錯誤3.  參數 應該為  args
  錯誤4.   打印輸出的字符串 應該用雙引號
 */

3,下列哪些是java的關鍵字

A、default    //java中的權限修飾符

B、loop       //

C、do   // do  while結構

D、Class  // 只是一個類名稱

E、null    //空值

F、java   //

G、String   //只是一個類名稱

H、false   // 布爾值

解析:   A、C、E、H

 

4,下列哪些代碼符合java規范(編譯不會報錯):

Apublic static void main(){} 

Bpublic void method(){

private Integer num;    //局部變量不能添加權限修飾符

   }

Cpublic Method(){

        int num;     // 未初始化不能使用

System.out.println(num);

   } 

Dprivate $5person=5;   //沒有指定變量類型

Epublic int  5i = 100;    //變量名稱不能以數字開頭

 解析:  A

5,下列哪些變量的聲明是正確的?

    A、byte i=128;  //-128~127

    B、int i = 0220;   //  相當於 144

    C、boolean flag = Boolean.TRUE; //正確

    D、int number = 'A'; //  ascii 碼  65

    E、float y = 0x123; //  java中默認的是10進制數據,在數字前加0可以表示8進制的,加0x則可以表示16進制的

    F、long a = 0x123l; //  java中默認的是10進制數據,在數字前加0可以表示8進制的,加0x則可以表示16進制的

   解析:C

6,下列代碼運行結果是:

public static void main(String[] args){       

 boolean flag=false;

 int i=0;

     if(flag||i>100){

  System.out.println("step1");

         }else if(!!flag && i/0>8){

      System.out.println("step2");

         }else{

  System.out.println("step3");

         }

}

A、運行時報錯

B、打印step1

C、打印step2

D、打印step3

E、編譯時報錯

解析:  D

7,下面代碼的運行結果是:

public static void main(String[] args){

int i=1;

int j=++i;

if(j++>3){

++j;

}else{

i++;

int k=++j>4?j++:i++; 

System.out.println(i); 

}

A2

B3

C4

D、運行時報錯

解析:  C

8、下面的程序執行結果是:

public static void main(String[] args) {  

        int i = 0;  

        for (i++; i++ < 10; i++);  

        System.out.println(++i);  

}  

A、輸出0

B、輸出13

C、輸出1

D、輸出12

 解析: B

9,下面的程序輸出

public static void main(String[] args){

for(int i=0;i<3;i++){

switch(i){

case 1:

System.out.println("a");

break;

case 0:

System.out.println("b");

break;

default:

System.out.println("c");

case 2:

System.out.println("d");

 

}

}

}

請寫出執行的結果______________

解析:b a  d

10,下面哪些方法是void show(int a,char b,boolean c){}方法的重載?

A、void show(char b, int a, boolean c){}  //是

B、int show(boolean a,char c ,int b){}   //是

C、void show(int a,char b,double c){}  //是

D、void show(int x,char y,boolean z){}  //不是 參數類型 一樣

E、int show(int x,double y){}  // 是

F、int show(int x, char y,boolean z){}  //不 是

解析: A  B  C  E   重載的時候,方法名要一樣,但是參數類型和個數不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數的區分標准。

11,下面哪個聲明數組的方式是正確的?

A、int i[]=null;  

B、int[] j=new Integer[]();   //編譯報錯

C、int[] k=new int[]{1,2,3};

D、int[] L={1,2,3};

E、int[] m={}; 

F、String[] s=new String[]{"1",'2',"3"};   //不能放 '2' 類型的數據

G、String[] s=new String[3];

H、class A{}

public class B{

private A[] ={new A(),new A(),new A()};   // 卻少變量名稱  private A[]  arr ={new A(),new A(),new A()};

}

I、class A{}

public class B{

private A[] =new A[]{new A(),new A(),new A()};   //缺少變量名稱 

}

12下面哪一項說法是正確的?

A.在一個子類中一個方法不是public的就不能被重載     //錯誤

B.覆蓋一個方法只需要滿足相同的方法名和參數類型就可以了 //對 

C.覆蓋一個方法必須需要相同的方法名參數和返回類型   //錯

D.一個覆蓋的方法必須有相同的方法名、參數名和參數類型  //錯

 

13下面代碼的輸出結果是多少?___________

class A {

    public static void prt() {

        System.out.println("1");

    }

    public A() {

        System.out.println("A");

    }

}

public class B extends A {

    public static void prt() {

        System.out.println("2");

    }

    public B() {

        System.out.println("B");

    }

    public static void main(String[] args) {

        A a = new B();         

          a = new A();     

 }

}

解析: A   B   A

14下面代碼的輸出結果是多少?__________

class Parent {

protected String value = "123";

public String getValue() {

      return value;

}

}

public class Child extends Parent {

protected String value = "456";

public static void main(String[] args){

Child c=new Child(); 

System.out.println(c.getValue()); 

}

}

解析:123

15,表達式(0 > 0 || 0/0 == 0)結果為_____________;

解析: Exception in thread "main" java.lang.ArithmeticException: / by zero

二,主觀題

1,請簡要寫出搭建java開發環境的步驟和java跨平台原理。

2,intInteger都可以代表一個整數,這兩者在使用上有什么區別嗎?為什么JDK中要設計兩個數據類型來表示同一種數據?

3,談談你對面向對象特征的理解並舉例說明。

4,談談你對抽象類和接口的理解。

5,請說說方法覆寫和方法重載的區別

6,面向對象的基本特征,並簡單述之

7,多態的作用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM