1. 程式人生 > >美圖2018秋招Java筆試題

美圖2018秋招Java筆試題

1、關於垃圾回收演算法G1,哪個說法是錯誤的( B  )。

A.  並行和併發,具有多執行緒操作能力

B.  不適用堆空間太大的場景

C.  G1停頓時間更加可預測

D.  不會對系統吞吐量產生較大影響

2、以下程式的執行結果是?( D  )  

  class Base{

        final public void show() {

        System.out.println("Base::show() called");

        }

    }

    class Derived extends Base{

         public void show(){

          System.out.println("Derived::show()called");

          }

    }

    class Main{

         public static void main(String[] args) {

          Base b = new Derived();

            b.show();

          }

    }

A.  Derived::show()被呼叫

B.  Base::show()被呼叫

C.  Runtime Error

D.  Compiler Error

3、多執行緒中棧與堆是公有的還是私有的(D)

A.  棧私有,堆私有

B.  棧公有,堆私有

C.  棧公有,堆私有

D.  棧私有,堆公有

4、在SQL資料庫一個班級表裡只記錄了100位同學的情況,那麼對該表建立索引檔案的描述正確的是(D)

A.  一定要,因為索引對於任何資料庫表都是必要的

B.  沒有必要,因為建立索引對任何資料庫的效能都沒有影響

C.  一定要,因為索引有助於加快搜索記錄的程序

D.  不適宜,因為對少量記錄的表進行索引實際上會產生不利的影響

5、Java垃圾回收演算法CMS執行的順序是( A  )

A.  初始標記->併發標記->併發預清理->重新標記->併發清理->併發重置

B.  初始標記->併發標記->重新標記->併發預清理->併發清理->併發重置

C.  初始標記->併發預清理->併發標記->重新標記->併發清理->併發重置

D.  初始標記->併發標記->重新標記->併發預清理->併發重置->併發清理

6、下列哪種情況會導致持久區jvm堆記憶體溢位(D) 

A.  迴圈上萬次的字串處理

B.  在一段程式碼申請上百M甚至上G的記憶體

C.  不斷建立物件

D.  使用CGLIB技術直接操作位元組碼執行,生成大量的動態類

7、java.util.Comparator體現的設計模式是( B )

A.  Decorator

B.  Strategy

C.  Interpreter

D.  Command

8、什麼樣的資料結構被使用在功能redo-undo上?( D ) 

A.  queue

B.  Tree

C.  Graph

D.  stack

9、以下程式的輸出是?( A  )

public class leftshift_operator {

      public static void main(String args[]){

        
          byte x = 64;

          int i;

          byte y;

          i = x<<2;

          y = (byte)(x<<2);

          System.out.print(i+ " " +y);

      }

}

A.  256  0

B.  0  256

C.  64  0

D.  0  64

10、以下程式的執行結果是( D )

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.  都不輸出

C.  pingpong和pongping都有可能

D.  Pongping

11、以下哪個協議將資料包拆分併發送到網路中的指定地址的?( D  )

A.  Proxy  Server

B.  DNS

C.  Socket

D.  TCIP/IP

12、以下說法正確的是( C  )

  class Base extends Exception{}

    class Derived extends Base{}

    public class Main {

    public static void main(String args[]){

    //some other stuff

    try {

    //some monitored code

       throw new Derived();

    } catch(Base b)  {

      System.out.println("Caught base class exception");

    } catch(Derived d){

      System.out.println("Caught derived class exception");

    }

    }

}

A.  捕獲base class exception

B.  Compiler Error因為derived不是異常類

C.  Compiler Error因為base class exception在derived class之前被捕捉

D.  捕捉derived class exception

13、下列程式的返回值是,其中arr[] = {9,12,2,11,2,2,10,9,12,10,9,11,2}且n為arr的大小?( B )

int fun(int arr[],int n){

        int x = arr[0];

        for(int i=1;i<n;i++)

            x = x^arr[i];

        return x;

    }

A.  12

B.  9

C.  0

D.  2

14、哪一個關鍵字keywords必須用在處理異常當中?( D )

A.  finally

B.  throw

C.  catch

D.  try

15、java中String是執行緒安全的嗎?( B )

A.  不是

B.  是

16、有如下程式:

  String  s1 = new String(“abc”);

  String  s2 = “abc”;

  String  s3 = “a” + “bc”;

下列哪項執行結果為false( C )

A.  S2 = S3

B.  S1.equals(s2)

C.  S1 = S2

D.  S1.compareTo(s3) ==0

17、下列程式完成什麼功能?( A )

int fun(intx, inty){

       if(y == 0)

    return 0;

    }

A.  x*y

B.  x+y

C.  x^y

D.  x+x*y

18、新建一個流物件,下面哪個選項的程式碼是錯誤的?( C

19、 )

A.  new BufferedWrite(new FileWriter(“a.txt”));

B.  new ObjectlnputStream(new FilelnputStream(“a.dat”));

C.  new BufferedReader(new FilelnputStream(“a.dat”));

D.  new GZIPOutputStream(new FileOutputStream(“a.zip”));

19、JDK新生代垃圾回收機制預設採用的是複製演算法,影響該演算法最關鍵的因素是( A  )

A.  物件存活率

B.  建立新物件的頻率

C.  SurvivorRatio引數

D.  物件的大小

20、java.util.HashMap處理hash碰撞的方法是( A )

A.  拉鍊法

B.  線性探查法

C.  隨機探測

D.  線性補償探測法

多選題

1、以下哪些是執行時異常( ABCD )  

A.  java.lang.lndexOutOfBoundsException

B.  java.lang.NullPointerException

C.  java.util.ConcurrentModificationException

D.  java.time.format.DataTimeParseException

2、以下哪些能夠保證執行緒安全( BC  )

A.  單例模式

B.  java.util.Hashtable

C.  synchronized

D.  volatile

3、垃圾回收演算法CMS的缺點有哪些( ABC )

A.  需要更大的堆空間

B.  需要更多的CPU空間

C.  不會整理、壓縮堆空間

D.  增加了回收的停頓時間

4、以下哪些屬於工廠模式( ABC  )

A.  工廠方法模式

B.  簡單工廠模式

C.  抽象工廠模式

D.  組合工廠模式

5、以下哪些語句可以正常建立Lock物件?( ABD )

A.  Lock lock = new ReentrantLock(true);

B.  Lock lock = new ReentrantLock();

C.  Lock lock = new Lock();

D.  Lock lock = new ReentrantLock(false);

6、以下程式的輸出是( AC  )垃圾回收

public class Test {

    public static void main(String args[]) throws InterruptedException{

        Test t = new Test();

        //making t eligible for garbage collection

        t = null;

        //calling garbage collector

        System.gc();

        //waiting for gc to complete

        Thread.sleep(1000);

        System.out.println("end main");

        }

        @Override

        protected void finalize()

        {

        System.out.println("finalize method called");

        System.out.println(10/0);

        }

}

A.  end main

B.  其他所有

C.  finalize method called

D.  Throw java.lang.ArithmeticException:/by zero

7、哪些情況會觸發FULL GC( ABCD )

A.  老年代空間不足

B.  統計得到的Minor GC晉升到舊生代的平均大小大於舊生代的剩餘空間

C.  堆中分配很大的物件

D.  CMS GC時出現promotion failed和concurrent mode failure

8、以下哪些是spring的事物隔離級別:( ACD )

A.  PROPAGTION_SUPPORTS

B.  PROPAGATION_NESTED

C.  PROPAGATION_MANDATORY

D.  PROPAGATION_NEVER

9、下列關於java陣列論述,正確的是:( ABCD ) A.  int[] x = {0};與int[] x = new int[1];的結果是完全等價的。

B.  String[] x = {“o” ,”k” ,”ok”);所建立的陣列物件含有3個串物件。

C.  Int [] [] x = {{1},{1,2},{1,2,3},new int[1]};是正確語句。

D.  定義一個Java的多維陣列變數,實際上是定義了將會指向陣列物件的引用,該陣列物件所包含的元素又將是另一個數組物件的引用。

10、以下哪些資料隔離級別會產生幻讀( ABD )

A.  Read Uncommitted

B.  repeatable read

C.  Serializable

D.  read committed

程式設計題:

最長公共子串

時間限制:C/C++語言 1000MS;其他語言 3000MS記憶體限制:C/C++語言 65536KB;其他語言 589824KB

題目描述:

有兩個字串(可能包含空格),請找出其中最長的公共連續子串, 輸出其長度。

輸入

給定兩行字串

輸出

輸出這兩個字串的最長公共連續子串的長度

樣例輸入

abcde

bcd

樣例輸出

3

bit位數計算

時間限制:C/C++語言 1000MS;其他語言 3000MS記憶體限制:C/C++語言 65536KB;其他語言 589824KB

題目描述:

兩個int32整數m和n的二進位制表達,計算有多少個位(bit)不同?

輸入

一行中給定兩個數字

輸出

輸出這兩個數字中bit不同的個數

樣例輸入

15 8

樣例輸出

3