2017 實習筆試題目

2017.4 實習筆試題目

作了一下某大廠的筆試的題目java

1. 一個表, visit(cookie_id, area1, area2, date)數據庫

         給出各類查詢策略中, 哪種最好,每一條SQL語句大同小異, 幾乎看不出區別, 還有6,7個選項,同時字數很長。通常的SQL語句好像有根據查詢的嵌套順序來比較差別的,可是這道題反而沒有。反正蒙了一個。沒有數字可算,內心沒有底,應該證實了SQL語法可能會很大地影響查詢效率。編程

2.     安全

         給了幾個條件,判斷你的名次。又是球賽的問題,考查你的推理能力。cookie

3.網絡

         engineer的哈夫曼二進制編碼有幾位?多線程

         哈夫曼編碼原來是能夠構建在一個單詞上的。忘了。18位。分佈式

4.函數

         大頂二叉堆的插入後的調整。學過插入排序的話應該沒問題。學習

         只是表示的方式是字符串從左到右。

5.

         沒記住。

6.

         考查數據挖掘(或者常見的特徵提取)。SVD分解成A=USV­T後問相關的性質。

7.

         iOS和Android。沒學過它們, 內存管理,內存循環引用, Address Santizer, 都是什麼?

8.

         問了一個很複雜的文字遊戲,可是什麼內容都沒有。就是問p作了一個項目,分割成A, B,而後繞來繞去有矛盾了,要怎麼處理團隊關係。屬於那種毫無心義的只要看最後一句的題目。

9.

         一個原子整數類。AtomicInteger, 話說我學了這麼久沒見過這個東西啊?

         問測試代碼能實現線程安全嗎?

10.

         亂七八糟的Java輸出,經典的A,B繼承和構造的問題。反正構造和析構都會輸出。

         A* pa = new B;

         delete pa;

         B* pb = new B;

         delete pb;

11.

         STL容器。太簡單了。

12.

         一個可怕的softmax-0, softmax-1公式。沒具體學過。用來估計機率的。

13.

14.

         紙幣面值湊數問題。

15.

         抽取球的機率題。

16.

         C++。

17.

18.

數據庫的函數依賴和第三範式改寫。不難。

19.

Linux的kernel space和super space。

         不多接觸,除了操做系統內容知道了一些。

20.

         Java的回收機制。

 

附加題2道, 超過1小時。

         第一題是開獎方案,用dfs就知道總方案數了。上交。

         第二題是NLP,說實話不難,字符串長度<100000, 要過濾詞和統計詞頻,可是想到在40分鐘內徹底作出來應該不太可能,提早交卷。

         不知道該公司有沒有籤保密協定,好像是沒有的。因此這樣也沒事吧。

 

     此次筆試讓我回想起來的書和知識點:

    《Unix網絡編程》, 《STL 源碼剖析》,《Java核心技術》,《數學之美》,《鳥哥的Linux私房菜》,

    《數據庫系統概念》,還有那些沒有真正學習的:《iOS編程》,《第一行代碼》。

      事實上考得確實不難,並且還有相似編譯原理這種問題沒有問,多是擔憂某些學校並無開設這門課吧。  

 

2017.8 其餘題目

    其實多線程的題目挺有趣的,只是想了想目前遇到的問題並無太大的啓發性。我知道多線程在操做系統中的重要性,進而影響到分佈式系統、數據庫、安卓開發的學習,而有趣的是目前遇到的問題都是在JAVA語言下寫的。可能由於JAVA有原生多線程,寫法簡單。

 剛剛看了一下一道題,是作的筆試。問:運行以下的代碼,最可能輸出什麼?

import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;

public class MutexLockTest {
   private AtomicInteger counter = new AtomicInteger(0);
   ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
   public int mutexBiz() {
      try {
         if (!readWriteLock.writeLock().tryLock()) {
            return -1;
         }
         return counter.getAndIncrement();
      } finally {
         readWriteLock.writeLock().unlock();
      }
   }

   public static void main(String[] args) throws InterruptedException {
      final MutexLockTest lockTest = new MutexLockTest();
      for (int i = 0; i < 5; i++) {
         new Thread(new Runnable() {
            public void run() {
                try {
                   System.out.print(lockTest.mutexBiz());
                } catch (Exception e) {
                   System.out.print("-2");
                }
            }
         }).start();
      }
      Thread.sleep(5000);
   }
}

   例如結果是 -21023 或者是10324 或者是-210-2-2

   我沒辦法給出直接的答案。能夠想見這個東西應該是有一些套路的。可是顯然它的結果是不固定的。這個可能性對於實現互斥和同步來講有什麼用,我仍是不太清楚。

相關文章
相關標籤/搜索