アリjava面接経験(面接問題解析を含む)

6022 ワード

私は3年の开発経験、18年の年末から仕事を探して、インターネットの寒い冬の下でアリババ、今日のトップ、滴滴などの会社offerを手に入れることに成功して、ポストはJavaのバックエンドの开発で、最后にアリババに行きました.
多くの会社を面接しましたが、ほとんどの会社は考察の点が少ないと感じています.だから、自分の心得をメモして、仕事を探している友达や準備をしている友达に助けてほしいと思っています.また、現在アリでも面接官の仕事をしており、身分が求職者から面接官に変わっているため、問題を見る角度も異なることが多いので、以下に求職者の視点もあれば、面接官の視点もあります.
面接プロセス
まず面接の流れについてお話しします.一般的に大企業には3-4ラウンドの技術面、1ラウンドのHR面があります.アリにとって、私は全部で4ラウンドの技術面を経験して、前の2ラウンドは主に基礎とプロジェクトの実現を聞いて、第3ラウンドは交差面で、2人の面接官、主にプロジェクトの実現と開拓を聞いています.第4ラウンドは部門のボスで、主にいくつかのアーキテクチャ、技術と業務の理解、個人の発展の比較的抽象的なものを聞いた.
HR面は主にあなたと話をして、あなたの個人の安定性、価値観、主体性などを見て、普通のHRは人を掛けませんが、多くの人はHR面の後で掛けました.原因は実はあなたがHR面での表現が悪い(少数の場合を除く)のではなく、あなたの前のいくつかの面の表現が一般的で、60点より少し高い(だから前の面接で直接掛けなかった)ので、しかし80点にも達しず、この時会社はhc、人材比率、他の候補者との対比など複数の次元で考え、offerをあげるかどうかを最終的に決定します.
また、特に言えば、今日のトップ記事のアルゴリズムに対する考察は比較的に多く、私は4ラウンドの技術に直面して、1ラウンドごとに1~2つのアルゴリズムの問題を聞いて、leetcodeのeasyとmediumの難易度かもしれません.だからトップに行きたい人はまずleetcodeに行って問題を塗ったほうがいいです.
注意すべき点
履歴書は1~2ページがベストです.2~3ページ程度書くと悪くなりません.最も明るい項目を書かなければなりません.仕事の経歴の開始時間をはっきり書かなければなりません.また、大手企業は背調があります.短い仕事の経歴を合併したり省略したりしないでください.影響は今回の面接だけでなく、その後、この会社のブログに入ることができないかもしれません.良い文章はありません.githubは良い項目がなければ履歴書に書かないでください.
 面接官の質問に対して、よく考えてから答えます.必要な時間が長いと思ったら、面接官に私が考えている、考えを整理しているなどできないことがあったら、直接言わないでください.分からないふりをしないでください.
  确かな问题に遭遇するには、自信を持って、时には面接官がわざと疑いのニュアンスで面接の过程を考察する可能性があります.面接の過程で自信を持つことができますが、面接官と口論しないでください.面接が終わったら、直接面接結果を聞かないでください.
面接は自信を持って自慢しないで、ある候補にhashmapをよく知っていると聞いたことがあるが、hashmapの拡張を聞くとhashを再計算する必要があるかどうかを聞くと愚かになった.多くの人にとって、面接官はいつもあなたを聞く方法があります.面接のたびに、どのような答えの悪いところがあるのか、どのような知識点の盲区があるのかをまとめて、解決します.
なぜ転職したいのかと聞かれると、前の会社にツッコミを入れるのではなく、自分の発展などの観点から考えるべきです.また、就活中に素質のない面接官に出会ったこともあります.だから、面接官や将来面接官になる学生の皆さんも、面接の過程で基本的な礼儀と尊重を保つことができます.アリがよく言ったように、あなたが他の人を面接するとき、他の人もあなたを面接しています.
最も重要なのは、何度も面接に失敗したからといって、自分を疑い始めないで、面接の結果=実力+運を永遠に覚えておくことです.时にはあなたの得意なものは面接官が全然できないかもしれないので、彼は分からないことを聞くのに多くの时間を費やすことはできません.时には彼があなたに闻くことができるかもしれませんが、相手の质问の仕方、ニュアンスなどの原因で、答えがスムーズではありません.
次に技術に関する考察について述べる.
総じて言えば、技術関連の考察は主に2つの大きな塊に分けられ、1つは基礎であり、2つは経験である.
基礎にはjava基礎、データベース、ミドルウェアなどがあり、日常の蓄積や面接前の準備から来ています.
経験には、これまでに行われたプロジェクト、解決した問題、およびいくつかのシーン問題(例えば、あなたのプロジェクトが10倍になったら、どのように利用できるか)が含まれています.
本文は主に基礎を述べ,次の文章では経験を述べる.
基礎以下は面接でよく考察される知識点の整理だと思いますが、ほとんどがよくある面接問題です.
JAvaベース
しゅうごう
       :java.util           java.util.concurrent        。

List
ArrayList LinkedList      

Map
HashMap:       、hash      (      )、    、     rehash   

LinkedHashMap:      、     、      LRU

TreeMap:      、   key          Compare  、           

Set
Set         map  ,      

    
hashmap    hash  ,   hashmap           ?
hashmap         ?
jdk1.8      hashmap            ?
hashmap     entry       hash ?
hashmap            2  ?
   LinkedHashMap  LRU?
   TreeMap     hash?



スレッドセキュリティの集合
Collections.synchronized
       

CopyOnWriteArrayList
        、       、       ConcurrentArrayList

ConcurrentHashMap
      、       、 HashTable  。

BlockingQueue
  LinkedBlockingQueue、ArrayBlockingQueue、DelayQueue、SynchronousQueue

    
ConcurrentHashMap                 ?
ConcurrentHashMap             ?
LinkedBlockingQueue、DelayQueue      ?
CopyOnWriteArrayList          ?

同時
synchronized
     、    、             、   ReentrantLock   

CAS
  AtomicInteger    、CAS    、       

AQS
  AQS    、   AQS      ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier    

ThreadLocal
  ThreadLocal         

ThreadPoolExecutor
                     

    
synchronized ReentrantLock   ?
          ?
         ?
AQS           ?
ReentrantLock                ?
CountDownLatch CyclicBarrier   ?         ?
  ThreadLocal      ?       ?
                   ?
            ?
                 ?
      ?
    :

  Synchronized    --  (    )

  
  Java     、   、              

    
           
           
    :

Java        (    )
   
        

    
         ?
Tomcat classloader  
        classloader      
IO
  BIO NIO   、        

    
    、     、     ?

select、poll、eopll   ?

java NIO BIO   ?

reactor       ?

JVM
GC
        、             、    CMS( G1)         

    
   jvm     

    
CMS GC         ?        ?
CMS       ?
Concurrent Model Failure ParNew promotion failed        ?
CMS    ?
     GC  ?
              ?
          eden、survivor  ?
              ?
              、      
           ?      ?
         ?
jvm          ?
    : JVM      

   、  、      
Spring
bean     、      、spring cloud(       )、AOP   、spring    

    
java     cglib       (    spring          )

spring bean         ?

                     ?

Dubbo(   Rpc  )
      RPC   Dubbo   :    、  、    、    、    

    
Dubbo       ?
Dubbo       ?
Dubbo         ?
Dubbo         ?
RocketMq(        )
            RocketMq   :           、    、    、    、    、    

    
RocketMq        ?
RocketMq        ?
RocketMq        ?
RocketMq             ?
RocketMq         ?
RocketMq          ?    ?
RocketMq           ?     ?
RocketMq         ?
Consumer          ?
Redis(       )
redis    、redis   、redis      、redis          、    、    、    、       

    :《 Redis      》

    :

   Redis    -  

   Redis    -Sentinel

   Redis    -Clustor

    
redis      ?
    redis      cpu  ?
redis       ?
redis       ?
redis        ?
redis        ?
   key value       , redis          ?
    redis DB       ?
             ?
   redis      ?
Mysql
      、 、       、          、      、    (explain   )

    : http://hedengcheng.com/?p=771

https://tech.meituan.com/2014/06/30/mysql-index.html

http://hbasefly.com/2017/08/19/mysql-transaction/

    
Mysql(innondb   )           ?
               ?
mysql   、  、   、          ?
         ?
       ?
mysql        b+ tree   b tree、   
           
        ,            ?
zk
zk    (          Raft  )、zk      、zk   master  

    
   zk      , redis         
HBase(     )
HBase     、  、merge split、       。

    : http://hbasefly.com/2017/07/26/transaction-2/          

Storm(     )
Storm Map Reduce、Spark、Flink   。Storm   、  ack  

  
             ,        ,      , leetcode   100-200 easy medium  ,            ,      。